<SEC-DOCUMENT>0001558370-24-013635.txt : 20241024
<SEC-HEADER>0001558370-24-013635.hdr.sgml : 20241024
<ACCEPTANCE-DATETIME>20241024163900
ACCESSION NUMBER:		0001558370-24-013635
CONFORMED SUBMISSION TYPE:	10-Q
PUBLIC DOCUMENT COUNT:		69
CONFORMED PERIOD OF REPORT:	20240930
FILED AS OF DATE:		20241024
DATE AS OF CHANGE:		20241024

FILER:

	COMPANY DATA:	
		COMPANY CONFORMED NAME:			COMFORT SYSTEMS USA INC
		CENTRAL INDEX KEY:			0001035983
		STANDARD INDUSTRIAL CLASSIFICATION:	ELECTRICAL WORK [1731]
		ORGANIZATION NAME:           	05 Real Estate & Construction
		IRS NUMBER:				760526487
		FISCAL YEAR END:			1231

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

	BUSINESS ADDRESS:	
		STREET 1:		675 BERING DRIVE
		STREET 2:		SUITE 400
		CITY:			HOUSTON
		STATE:			TX
		ZIP:			77057
		BUSINESS PHONE:		7138309600

	MAIL ADDRESS:	
		STREET 1:		675 BERING DRIVE
		STREET 2:		SUITE 400
		CITY:			HOUSTON
		STATE:			TX
		ZIP:			77057
</SEC-HEADER>
<DOCUMENT>
<TYPE>10-Q
<SEQUENCE>1
<FILENAME>fix-20240930x10q.htm
<DESCRIPTION>10-Q
<TEXT>
<XBRL>
<?xml version='1.0' encoding='ASCII'?>
<!-- iXBRL document created with: Toppan Merrill Bridge iXBRL 10.8.0.95 -->
<!-- Based on: iXBRL 1.1 -->
<!-- Created on: 10/24/2024 8:25:03 PM -->
<!-- iXBRL Library version: 1.0.9027.2259 -->
<!-- iXBRL Service Job ID: 1157ef7c-170f-4875-a508-819afb568519 -->
<html xmlns:us-gaap="http://fasb.org/us-gaap/2024" xmlns:link="http://www.xbrl.org/2003/linkbase" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xbrldt="http://xbrl.org/2005/xbrldt" xmlns:ixt-sec="http://www.sec.gov/inlineXBRL/transformation/2015-08-31" xmlns:fix="http://www.comfortsystemsusa.com/20240930" xmlns:srt="http://fasb.org/srt/2024" xmlns:ix="http://www.xbrl.org/2013/inlineXBRL" xmlns:ref="http://www.xbrl.org/2006/ref" xmlns:xbrli="http://www.xbrl.org/2003/instance" xmlns:dei="http://xbrl.sec.gov/dei/2024" xmlns:iso4217="http://www.xbrl.org/2003/iso4217" xmlns="http://www.w3.org/1999/xhtml" xmlns:ecd="http://xbrl.sec.gov/ecd/2024" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xs="http://www.w3.org/2001/XMLSchema-instance" xmlns:ixt="http://www.xbrl.org/inlineXBRL/transformation/2015-02-26" xmlns:xbrldi="http://xbrl.org/2006/xbrldi"><head><meta content="text/html" http-equiv="content-type"/><title></title></head><body><div style="margin-top:30pt;"></div><div style="display:none;"><ix:header><ix:hidden><ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" xs:nil="true" contextRef="As_Of_9_30_2024_um13j0l3zk2ITGaiED1DFA" name="us-gaap:CommitmentsAndContingencies" id="Hidden_332C-31j8kO5D6fSkU_OTw"/><ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" xs:nil="true" contextRef="As_Of_12_31_2023_X7eqeHRTF0mRLJW7InVDdA" name="us-gaap:CommitmentsAndContingencies" id="Hidden_jW1TaqGstEyp0JeIfuHg3g"/><ix:nonFraction unitRef="Unit_Standard_shares_YK1c03HsOkOiDLLsAeYHoA" contextRef="As_Of_9_30_2024_um13j0l3zk2ITGaiED1DFA" decimals="INF" name="us-gaap:PreferredStockSharesOutstanding" id="Hidden_4nu7i7cSPUe6s0kwWofluw">0</ix:nonFraction><ix:nonFraction unitRef="Unit_Standard_shares_YK1c03HsOkOiDLLsAeYHoA" contextRef="As_Of_12_31_2023_X7eqeHRTF0mRLJW7InVDdA" decimals="INF" name="us-gaap:PreferredStockSharesOutstanding" id="Hidden_OqEbtRsdjk6_e80fj_R3Og">0</ix:nonFraction><ix:nonNumeric contextRef="As_Of_12_31_2023_X7eqeHRTF0mRLJW7InVDdA" name="us-gaap:OperatingLeaseLiabilityCurrentStatementOfFinancialPositionExtensibleList" id="Hidden_4Wn2EZmiNUmCOaimsxddTA">http://fasb.org/us-gaap/2024#OtherLiabilitiesCurrent</ix:nonNumeric><ix:nonNumeric contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ" name="dei:EntityCentralIndexKey" id="Tc_fIrUagexR0yoLWC8NdZtAg_2_1">0001035983</ix:nonNumeric><ix:nonNumeric contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ" name="dei:CurrentFiscalYearEndDate" id="Tc_Pe-DaxttVEu0YqGK0IjiVw_3_1">--12-31</ix:nonNumeric><ix:nonNumeric contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ" name="dei:DocumentFiscalYearFocus" id="Tc_t4wbx6Q_VEuPpce2OdtAsQ_4_1">2024</ix:nonNumeric><ix:nonNumeric contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ" name="dei:DocumentFiscalPeriodFocus" id="Tc_5EJbe856FUO4F-ac7xUxDg_5_1">Q3</ix:nonNumeric><ix:nonNumeric contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ" name="dei:AmendmentFlag" id="Tc_u4HYAg8u306OOjSvY7btWw_6_1">false</ix:nonNumeric><ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" xs:nil="true" contextRef="As_Of_9_30_2024_um13j0l3zk2ITGaiED1DFA" name="us-gaap:PreferredStockValue" id="Hidden_dBE1Ix-ZG0Ouzf6-oQIFZQ"/><ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" xs:nil="true" contextRef="As_Of_12_31_2023_X7eqeHRTF0mRLJW7InVDdA" name="us-gaap:PreferredStockValue" id="Hidden_NgV-IprYaEKY9cJKBMN6Sg"/><ix:nonNumeric contextRef="Duration_2_1_2024_To_2_1_2024_us-gaap_BusinessAcquisitionAxis_fix_SummitIndustrialConstructionLlcMember_us-gaap_FairValueByLiabilityClassAxis_fix_ContingentConsiderationObligationsMember_f8tsuUPK4kqkQgJ0yrrqjA" name="fix:BusinessCombinationTermOfEarningsMilestones" id="Hidden_D6Z90bw5WUGuPqOyL_t0uw">P47M</ix:nonNumeric><ix:nonNumeric contextRef="Duration_2_1_2024_To_2_1_2024_us-gaap_BusinessAcquisitionAxis_fix_JSMechanicalContractorsIncMember_us-gaap_FairValueByLiabilityClassAxis_fix_ContingentConsiderationObligationsMember_6ZRDO1yLaUmIrGvOOt3b2Q" name="fix:BusinessCombinationTermOfEarningsMilestones" id="Hidden_7S33M40-vka_9FZRu5HBlg">P35M</ix:nonNumeric><ix:nonNumeric contextRef="As_Of_9_30_2024_srt_RangeAxis_srt_MinimumMember_ClTBeXmHB06p7bDY9nYFkA" name="us-gaap:LesseeOperatingLeaseTermOfContract" id="Hidden_ObkJycMSt02VXygggL-EOg">P3Y</ix:nonNumeric><ix:nonNumeric contextRef="As_Of_9_30_2024_um13j0l3zk2ITGaiED1DFA" name="us-gaap:OperatingLeaseLiabilityCurrentStatementOfFinancialPositionExtensibleList" id="Hidden_CXTdk2oMZES1sCPvqd8w5w">http://fasb.org/us-gaap/2024#OtherLiabilitiesCurrent</ix:nonNumeric></ix:hidden><ix:references><link:schemaRef xlink:type="simple" xlink:href="fix-20240930.xsd"/></ix:references><ix:resources><xbrli:context id="Duration_1_1_2024_To_9_30_2024_srt_RangeAxis_srt_MaximumMember_us-gaap_PlanNameAxis_fix_StockRepurchaseProgram2007Member_Ov88TD7fr0q4sout0EvbgQ"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">fix:StockRepurchaseProgram2007Member</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-09-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_3_29_2007_To_9_30_2024_us-gaap_PlanNameAxis_fix_StockRepurchaseProgram2007Member_M1s8HVAzp0WW5UGq9xvC5w"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">fix:StockRepurchaseProgram2007Member</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2007-03-29</xbrli:startDate><xbrli:endDate>2024-09-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="As_Of_9_30_2024_us-gaap_StatementEquityComponentsAxis_us-gaap_TreasuryStockCommonMember_SF1yafOekU-tXEsRPH5BZA"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:TreasuryStockCommonMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-09-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_9_30_2024_us-gaap_StatementEquityComponentsAxis_us-gaap_RetainedEarningsMember_9Q60Oh9Ah0OkbWnQEVoujg"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-09-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_9_30_2024_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember_YSdubrY4XkOM19Wz565jjQ"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-09-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_6_30_2024_us-gaap_StatementEquityComponentsAxis_us-gaap_TreasuryStockCommonMember_rplrCduHPUKkd5ni2h63_Q"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:TreasuryStockCommonMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-06-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_6_30_2024_us-gaap_StatementEquityComponentsAxis_us-gaap_RetainedEarningsMember_1uRWP4PGY0CHlwtNC16vmg"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</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="As_Of_6_30_2024_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember_Esh6OYjwZUCcuWrfy0pzEA"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</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="As_Of_6_30_2024_SiyrixYS5kCDbEg8NlCx0g"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:instant>2024-06-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_3_31_2024_us-gaap_StatementEquityComponentsAxis_us-gaap_TreasuryStockCommonMember_u9WlFz_I7USmDHCYxAti0g"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:TreasuryStockCommonMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-03-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_3_31_2024_us-gaap_StatementEquityComponentsAxis_us-gaap_RetainedEarningsMember_Mf5SjU-Cp06KTb9FvCkxjg"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</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="As_Of_3_31_2024_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember_gusb316CFEq_VuQbOr8B1w"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</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="As_Of_3_31_2024_TuxXtlZ-cEeaT-E2a8UyqQ"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:instant>2024-03-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_12_31_2023_us-gaap_StatementEquityComponentsAxis_us-gaap_TreasuryStockCommonMember_WxG3JaTAz0C1Fg-OE_oPhQ"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:TreasuryStockCommonMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_12_31_2023_us-gaap_StatementEquityComponentsAxis_us-gaap_RetainedEarningsMember_p1H1eeBRGEW14HqP_cu3Tg"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</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="As_Of_12_31_2023_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember_Ew23JNCFwEeDRuV4V2E9SA"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</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="As_Of_9_30_2023_us-gaap_StatementEquityComponentsAxis_us-gaap_TreasuryStockCommonMember_PfWQst0sZkGVJo1TkRwV9A"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:TreasuryStockCommonMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-09-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_9_30_2023_us-gaap_StatementEquityComponentsAxis_us-gaap_RetainedEarningsMember_U3nCX3aNDEWCX8TCtyxD9Q"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-09-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_9_30_2023_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember_DTKQ77I2gE-QJ1KPR-Wqcg"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-09-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_6_30_2023_us-gaap_StatementEquityComponentsAxis_us-gaap_TreasuryStockCommonMember_7ZCIjuMwc0yqYTkNl5XEwg"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:TreasuryStockCommonMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-06-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_6_30_2023_us-gaap_StatementEquityComponentsAxis_us-gaap_RetainedEarningsMember_hWcGX1hQSk2wZm-obHvvlg"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</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="As_Of_6_30_2023_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember_eUOzUQVlskWz5TPjuCeKzA"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</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="As_Of_6_30_2023_1H6Df8Z6mk-jEaG-3RVOiw"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:instant>2023-06-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_3_31_2023_us-gaap_StatementEquityComponentsAxis_us-gaap_TreasuryStockCommonMember_MVSe43959kWoGkMdx8o3oA"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:TreasuryStockCommonMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-03-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_3_31_2023_us-gaap_StatementEquityComponentsAxis_us-gaap_RetainedEarningsMember_YHaH3GP0S0msvUbdJx9WYw"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</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="As_Of_3_31_2023_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember_0AeYUFRn1kGtjsTyvhxwgA"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</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="As_Of_3_31_2023_rI4kWnhsEUqWMYWZ0HR51g"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:instant>2023-03-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_12_31_2022_us-gaap_StatementEquityComponentsAxis_us-gaap_TreasuryStockCommonMember_0E-fjy0uWEKri5BSVKBJMA"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:TreasuryStockCommonMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_12_31_2022_us-gaap_StatementEquityComponentsAxis_us-gaap_RetainedEarningsMember_Ltidt_uNakiZoGFqd_UsYQ"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</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="As_Of_12_31_2022_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember_HxJsUy70f0eu-ec_UvDOcQ"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</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="Duration_1_1_2024_To_9_30_2024_us-gaap_DebtInstrumentAxis_fix_SubordinateDebtAndPromissoryNoteMember_qpkd_dEisUWksMOTrrt-ew"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">fix:SubordinateDebtAndPromissoryNoteMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-09-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_1_1_2024_To_9_30_2024_us-gaap_BusinessAcquisitionAxis_fix_SummitIndustrialConstructionLlcMember_CxZRbwSqy0yVRiIvUOAx4A"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">fix:SummitIndustrialConstructionLlcMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-09-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_1_1_2024_To_9_30_2024_us-gaap_BusinessAcquisitionAxis_fix_JSMechanicalContractorsIncMember_4Tqmm51vwU24UcfZGJNKoA"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">fix:JSMechanicalContractorsIncMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-09-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2024_To_9_30_2024_us-gaap_BusinessAcquisitionAxis_fix_SummitIndustrialConstructionLlcMember_XMYoI1-JrkOXifMp6DHBsg"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">fix:SummitIndustrialConstructionLlcMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-02-01</xbrli:startDate><xbrli:endDate>2024-09-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2024_To_9_30_2024_us-gaap_BusinessAcquisitionAxis_fix_JSMechanicalContractorsIncMember_iwZyJ5KkDkS-Op4hGo6UaQ"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">fix:JSMechanicalContractorsIncMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-02-01</xbrli:startDate><xbrli:endDate>2024-09-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="As_Of_9_30_2024_srt_RangeAxis_srt_MinimumMember_us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis_fix_cnst_date_20240401_KhHzX-P3hUuZ9un5V7uebg"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember><xbrldi:typedMember dimension="us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis"><us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis.domain>2024-04-01</us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis.domain></xbrldi:typedMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-09-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_9_30_2024_srt_RangeAxis_srt_MaximumMember_us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis_fix_cnst_date_20240401_BllO1xJM-EiQTJc1oaHdoQ"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember><xbrldi:typedMember dimension="us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis"><us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis.domain>2024-04-01</us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis.domain></xbrldi:typedMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-09-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_9_30_2024_us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis_fix_cnst_date_20240401_R4HBB7Adtki0cTpCVHmm3A"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:typedMember dimension="us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis"><us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis.domain>2024-04-01</us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis.domain></xbrldi:typedMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-09-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="Duration_1_1_2024_To_9_30_2024_us-gaap_PlanNameAxis_fix_StockRepurchaseProgram2007Member_uKGUpz4UMU-zuY1h4cUX2Q"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">fix:StockRepurchaseProgram2007Member</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-09-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="As_Of_9_30_2024_fix_DebtMaturityDateAxis_fix_MaturityYearTwoMember_us-gaap_DebtInstrumentAxis_fix_SubordinateDebtAndPromissoryNoteMember_skGkSkrrj0m22UCbee6nbg"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="fix:DebtMaturityDateAxis">fix:MaturityYearTwoMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">fix:SubordinateDebtAndPromissoryNoteMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-09-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_9_30_2024_fix_DebtMaturityDateAxis_fix_MaturityYearThreeMember_us-gaap_DebtInstrumentAxis_fix_SubordinateDebtAndPromissoryNoteMember_fwN5F61NGkugv8GyHLBReg"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="fix:DebtMaturityDateAxis">fix:MaturityYearThreeMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">fix:SubordinateDebtAndPromissoryNoteMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-09-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_12_31_2023_us-gaap_DebtInstrumentAxis_fix_SubordinateDebtAndPromissoryNoteMember_0FKP3iOUfECrhZe1nFqndw"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">fix:SubordinateDebtAndPromissoryNoteMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="Duration_1_1_2024_To_9_30_2024_srt_RangeAxis_srt_MinimumMember_us-gaap_CreditFacilityAxis_us-gaap_RevolvingCreditFacilityMember_9jwsIiTizkCuq9i4hkJodA"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:CreditFacilityAxis">us-gaap:RevolvingCreditFacilityMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-09-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_1_1_2024_To_9_30_2024_srt_RangeAxis_srt_MaximumMember_us-gaap_CreditFacilityAxis_us-gaap_RevolvingCreditFacilityMember_XE34UnVimU6RyWu3ZGxTzQ"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:CreditFacilityAxis">us-gaap:RevolvingCreditFacilityMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-09-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="As_Of_9_30_2024_us-gaap_CreditFacilityAxis_us-gaap_RevolvingCreditFacilityMember_us-gaap_DebtInstrumentAxis_us-gaap_LetterOfCreditMember_0w5GbMjA8EKON7jMWSL4iw"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:CreditFacilityAxis">us-gaap:RevolvingCreditFacilityMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">us-gaap:LetterOfCreditMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-09-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_9_30_2024_us-gaap_CreditFacilityAxis_us-gaap_RevolvingCreditFacilityMember_E6oVXDAxSE-DOVuvfsnYPQ"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:CreditFacilityAxis">us-gaap:RevolvingCreditFacilityMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-09-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_6_30_2024_us-gaap_CreditFacilityAxis_us-gaap_RevolvingCreditFacilityMember_-F87Z11Jpk6QmdRLV_C52g"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</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="As_Of_12_31_2023_us-gaap_CreditFacilityAxis_us-gaap_RevolvingCreditFacilityMember_lWML2av1jEuhx_9kBGRmkQ"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</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="As_Of_9_30_2024_us-gaap_CreditFacilityAxis_us-gaap_RevolvingCreditFacilityMember_us-gaap_DebtInstrumentAxis_fix_SeniorRevolvingCreditFacilityMember_U6rrLCv-g0eNhWu_TkXWLw"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:CreditFacilityAxis">us-gaap:RevolvingCreditFacilityMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">fix:SeniorRevolvingCreditFacilityMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-09-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_9_30_2024_srt_RangeAxis_srt_MinimumMember_ClTBeXmHB06p7bDY9nYFkA"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-09-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_9_30_2024_srt_RangeAxis_srt_MaximumMember_id1gXBxYjkO3jpdyCLZ7Aw"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-09-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="Duration_9_1_2023_To_9_30_2023_C6BTPqBxtkOfHGcvUcDV1g"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:startDate>2023-09-01</xbrli:startDate><xbrli:endDate>2023-09-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_7_1_2024_To_9_30_2024_srt_ConsolidationItemsAxis_us-gaap_OperatingSegmentsMember_us-gaap_StatementBusinessSegmentsAxis_fix_MechanicalSegmentMember_ipGvn2J_yUG_njJ09q4Lag"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ConsolidationItemsAxis">us-gaap:OperatingSegmentsMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">fix:MechanicalSegmentMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-07-01</xbrli:startDate><xbrli:endDate>2024-09-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_7_1_2024_To_9_30_2024_srt_ConsolidationItemsAxis_us-gaap_OperatingSegmentsMember_us-gaap_StatementBusinessSegmentsAxis_fix_ElectricalSegmentMember_oQ76muCgDEywAlwL2zQzkw"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ConsolidationItemsAxis">us-gaap:OperatingSegmentsMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">fix:ElectricalSegmentMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-07-01</xbrli:startDate><xbrli:endDate>2024-09-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_1_1_2024_To_9_30_2024_srt_ConsolidationItemsAxis_us-gaap_OperatingSegmentsMember_us-gaap_StatementBusinessSegmentsAxis_fix_MechanicalSegmentMember_AXOzBdIvRUiN5O9WEm4Teg"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ConsolidationItemsAxis">us-gaap:OperatingSegmentsMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">fix:MechanicalSegmentMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-09-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_1_1_2024_To_9_30_2024_srt_ConsolidationItemsAxis_us-gaap_OperatingSegmentsMember_us-gaap_StatementBusinessSegmentsAxis_fix_ElectricalSegmentMember_PRfP2cG01k6HY7-Zoc8duA"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ConsolidationItemsAxis">us-gaap:OperatingSegmentsMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">fix:ElectricalSegmentMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-09-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_7_1_2023_To_9_30_2023_srt_ConsolidationItemsAxis_us-gaap_OperatingSegmentsMember_us-gaap_StatementBusinessSegmentsAxis_fix_MechanicalSegmentMember_YShAl0xQB0KQs9SdK5emuw"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ConsolidationItemsAxis">us-gaap:OperatingSegmentsMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">fix:MechanicalSegmentMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-07-01</xbrli:startDate><xbrli:endDate>2023-09-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_7_1_2023_To_9_30_2023_srt_ConsolidationItemsAxis_us-gaap_OperatingSegmentsMember_us-gaap_StatementBusinessSegmentsAxis_fix_ElectricalSegmentMember_uyYACQYB90KayXA18v6uBQ"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ConsolidationItemsAxis">us-gaap:OperatingSegmentsMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">fix:ElectricalSegmentMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-07-01</xbrli:startDate><xbrli:endDate>2023-09-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_1_1_2023_To_9_30_2023_srt_ConsolidationItemsAxis_us-gaap_OperatingSegmentsMember_us-gaap_StatementBusinessSegmentsAxis_fix_MechanicalSegmentMember_SM13mUb_6EqmmKe2QkBVTA"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ConsolidationItemsAxis">us-gaap:OperatingSegmentsMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">fix:MechanicalSegmentMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-09-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_1_1_2023_To_9_30_2023_srt_ConsolidationItemsAxis_us-gaap_OperatingSegmentsMember_us-gaap_StatementBusinessSegmentsAxis_fix_ElectricalSegmentMember__3WjLNReXU2bdGGOMVYI3Q"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ConsolidationItemsAxis">us-gaap:OperatingSegmentsMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">fix:ElectricalSegmentMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-09-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_1_1_2024_To_9_30_2024_us-gaap_StatementBusinessSegmentsAxis_fix_MechanicalSegmentMember_V8JBIWI_BEON_oMqzNwwcQ"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">fix:MechanicalSegmentMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-09-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_1_1_2024_To_9_30_2024_us-gaap_StatementBusinessSegmentsAxis_fix_ElectricalSegmentMember_CPvGEZODSU23C4fWc01EEA"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">fix:ElectricalSegmentMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-09-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_1_1_2023_To_12_31_2023_us-gaap_StatementBusinessSegmentsAxis_fix_MechanicalSegmentMember_sIHEWlasEkWrIKV3BjH9Yg"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">fix:MechanicalSegmentMember</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="Duration_1_1_2023_To_12_31_2023_us-gaap_StatementBusinessSegmentsAxis_fix_ElectricalSegmentMember_OGp-N20eBkKNWuA9tDPA-A"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">fix:ElectricalSegmentMember</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="Duration_1_1_2023_To_12_31_2023_BLO39KDJ406SXE2fHbCX8Q"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</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="As_Of_9_30_2024_us-gaap_StatementBusinessSegmentsAxis_fix_MechanicalSegmentMember_gOl7vnNOE0Oa2WJW-H9y3w"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">fix:MechanicalSegmentMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-09-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_9_30_2024_us-gaap_StatementBusinessSegmentsAxis_fix_ElectricalSegmentMember_CMh8lOiUM0mkJyMFRKjiQw"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">fix:ElectricalSegmentMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-09-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_12_31_2023_us-gaap_StatementBusinessSegmentsAxis_fix_MechanicalSegmentMember_ZJFhNQD-0EukltC7W7dFWw"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">fix:MechanicalSegmentMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_12_31_2023_us-gaap_StatementBusinessSegmentsAxis_fix_ElectricalSegmentMember_Zmipb459G0WsxnuQZ3rZ7w"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">fix:ElectricalSegmentMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_12_31_2022_us-gaap_StatementBusinessSegmentsAxis_fix_MechanicalSegmentMember_-a4MCWI0AkC8_ejEkzppLA"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">fix:MechanicalSegmentMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_12_31_2022_us-gaap_StatementBusinessSegmentsAxis_fix_ElectricalSegmentMember_arrUsxZ46USNASy8oYXSFg"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">fix:ElectricalSegmentMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="Duration_1_1_2023_To_3_31_2023_us-gaap_IncomeStatementLocationAxis_us-gaap_SellingGeneralAndAdministrativeExpensesMember_us-gaap_LossContingenciesByNatureOfContingencyAxis_fix_DisputeWithCustomerMember_xrkRNEHpmE6z7qbWjo9S-A"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:SellingGeneralAndAdministrativeExpensesMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:LossContingenciesByNatureOfContingencyAxis">fix:DisputeWithCustomerMember</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="Duration_1_1_2023_To_3_31_2023_us-gaap_IncomeStatementLocationAxis_us-gaap_InterestIncomeMember_us-gaap_LossContingenciesByNatureOfContingencyAxis_fix_DisputeWithCustomerMember_fYWoQjLFtkuLvfPKSv0Eug"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:InterestIncomeMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:LossContingenciesByNatureOfContingencyAxis">fix:DisputeWithCustomerMember</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="Duration_1_1_2023_To_3_31_2023_us-gaap_IncomeStatementLocationAxis_fix_GrossProfitMember_us-gaap_LossContingenciesByNatureOfContingencyAxis_fix_DisputeWithCustomerMember_tF_jasNoLEOUH0zZxyqiUg"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">fix:GrossProfitMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:LossContingenciesByNatureOfContingencyAxis">fix:DisputeWithCustomerMember</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="Duration_1_1_2023_To_3_31_2023_us-gaap_IncomeStatementLocationAxis_fix_BusinessCombinationContingentConsiderationChangeInContingentConsiderationLiabilityMember_us-gaap_LossContingenciesByNatureOfContingencyAxis_fix_DisputeWithCustomerMember_W_Dvrlx8X0K4cRCKRmGtlQ"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">fix:BusinessCombinationContingentConsiderationChangeInContingentConsiderationLiabilityMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:LossContingenciesByNatureOfContingencyAxis">fix:DisputeWithCustomerMember</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="Duration_1_1_2023_To_3_31_2023_us-gaap_LossContingenciesByNatureOfContingencyAxis_fix_DisputeWithCustomerMember_bDYxGk5BM02TJTfRtOn_AA"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:LossContingenciesByNatureOfContingencyAxis">fix:DisputeWithCustomerMember</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="As_Of_9_30_2024_us-gaap_FairValueByFairValueHierarchyLevelAxis_us-gaap_FairValueInputsLevel3Member_us-gaap_FairValueByMeasurementFrequencyAxis_us-gaap_FairValueMeasurementsRecurringMember_5Yh2p4vMrE2MelwjCJo5zQ"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel3Member</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FairValueByMeasurementFrequencyAxis">us-gaap:FairValueMeasurementsRecurringMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-09-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_9_30_2024_us-gaap_FairValueByLiabilityClassAxis_fix_ContingentConsiderationObligationsMember_V6NueS9puE29mSfrqUvXog"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FairValueByLiabilityClassAxis">fix:ContingentConsiderationObligationsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-09-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_12_31_2023_us-gaap_FairValueByFairValueHierarchyLevelAxis_us-gaap_FairValueInputsLevel3Member_us-gaap_FairValueByMeasurementFrequencyAxis_us-gaap_FairValueMeasurementsRecurringMember_ixgQ0Wh_OUuXKIm8Z6RKuw"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel3Member</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FairValueByMeasurementFrequencyAxis">us-gaap:FairValueMeasurementsRecurringMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_12_31_2023_us-gaap_FairValueByLiabilityClassAxis_fix_ContingentConsiderationObligationsMember_QiEcwmJcfkyCJZA_OIAaqw"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FairValueByLiabilityClassAxis">fix:ContingentConsiderationObligationsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_12_31_2022_us-gaap_FairValueByLiabilityClassAxis_fix_ContingentConsiderationObligationsMember_l5io3FvirkunNcDFGrPWFg"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FairValueByLiabilityClassAxis">fix:ContingentConsiderationObligationsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="Duration_1_1_2024_To_9_30_2024_us-gaap_FairValueByLiabilityClassAxis_fix_ContingentConsiderationObligationsMember_lHT-Wg2JpUixTnvmQyoGPA"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FairValueByLiabilityClassAxis">fix:ContingentConsiderationObligationsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-09-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_1_1_2023_To_12_31_2023_us-gaap_FairValueByLiabilityClassAxis_fix_ContingentConsiderationObligationsMember_NUKD-aaodUafCY7RklyjKA"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FairValueByLiabilityClassAxis">fix:ContingentConsiderationObligationsMember</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="Duration_7_1_2024_To_9_30_2024_us-gaap_StatementEquityComponentsAxis_us-gaap_RetainedEarningsMember_b-0313COyUGZN-vuWAQxJw"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-07-01</xbrli:startDate><xbrli:endDate>2024-09-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_4_1_2024_To_6_30_2024_us-gaap_StatementEquityComponentsAxis_us-gaap_RetainedEarningsMember_MTAAMIW_sE-DxCrnUDth7g"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</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="Duration_1_1_2024_To_3_31_2024_us-gaap_StatementEquityComponentsAxis_us-gaap_RetainedEarningsMember_88WYf2_I1USg-VDBGWdW5A"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</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="Duration_7_1_2023_To_9_30_2023_us-gaap_StatementEquityComponentsAxis_us-gaap_RetainedEarningsMember_hh3TIbxMZkmJt5_HIPx80w"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-07-01</xbrli:startDate><xbrli:endDate>2023-09-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_4_1_2023_To_6_30_2023_us-gaap_StatementEquityComponentsAxis_us-gaap_RetainedEarningsMember_qajS3b2wo02nQqc4tAHFAg"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</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="Duration_1_1_2023_To_3_31_2023_us-gaap_StatementEquityComponentsAxis_us-gaap_RetainedEarningsMember_Aw1vox8rnUCTCSpKHgL90Q"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</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="As_Of_9_30_2024_fix_DebtMaturityDateAxis_fix_MaturityYearTwoMember_srt_RangeAxis_srt_MinimumMember_us-gaap_DebtInstrumentAxis_fix_SubordinateDebtAndPromissoryNoteMember_KojyVCN3cEmLx0QkqiRh8w"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="fix:DebtMaturityDateAxis">fix:MaturityYearTwoMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">fix:SubordinateDebtAndPromissoryNoteMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-09-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_9_30_2024_fix_DebtMaturityDateAxis_fix_MaturityYearTwoMember_srt_RangeAxis_srt_MaximumMember_us-gaap_DebtInstrumentAxis_fix_SubordinateDebtAndPromissoryNoteMember_Eql9x3iYsUqpttrRsDjGAw"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="fix:DebtMaturityDateAxis">fix:MaturityYearTwoMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">fix:SubordinateDebtAndPromissoryNoteMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-09-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_9_30_2024_fix_DebtMaturityDateAxis_fix_MaturityYearThreeMember_srt_RangeAxis_srt_MinimumMember_us-gaap_DebtInstrumentAxis_fix_SubordinateDebtAndPromissoryNoteMember_5PjgbMBB_Uia6vIHc4mrdA"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="fix:DebtMaturityDateAxis">fix:MaturityYearThreeMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">fix:SubordinateDebtAndPromissoryNoteMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-09-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_9_30_2024_fix_DebtMaturityDateAxis_fix_MaturityYearThreeMember_srt_RangeAxis_srt_MaximumMember_us-gaap_DebtInstrumentAxis_fix_SubordinateDebtAndPromissoryNoteMember_NBdJfeqzu0yjSKA-VJbqwg"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="fix:DebtMaturityDateAxis">fix:MaturityYearThreeMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">fix:SubordinateDebtAndPromissoryNoteMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-09-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_9_30_2024_fix_DebtMaturityDateAxis_fix_MaturityYearFourMember_us-gaap_DebtInstrumentAxis_fix_SubordinateDebtAndPromissoryNoteMember_mt7zqU7oSE2UCMwTRSK82g"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="fix:DebtMaturityDateAxis">fix:MaturityYearFourMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">fix:SubordinateDebtAndPromissoryNoteMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-09-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_9_30_2024_fix_DebtMaturityDateAxis_fix_MaturityYearFiveMember_us-gaap_DebtInstrumentAxis_fix_SubordinateDebtAndPromissoryNoteMember_KBZY_j_KFE-GwjSjJgLy8g"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="fix:DebtMaturityDateAxis">fix:MaturityYearFiveMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">fix:SubordinateDebtAndPromissoryNoteMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-09-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="Duration_1_1_2024_To_9_30_2024_fix_DebtCovenantRatioAxis_fix_DebtCovenantRatioRangeTwoMember_us-gaap_CreditFacilityAxis_us-gaap_RevolvingCreditFacilityMember_us-gaap_VariableRateAxis_us-gaap_SecuredOvernightFinancingRateSofrMember_piwyt78j20OZTYNyDxHCYA"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="fix:DebtCovenantRatioAxis">fix:DebtCovenantRatioRangeTwoMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:CreditFacilityAxis">us-gaap:RevolvingCreditFacilityMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:VariableRateAxis">us-gaap:SecuredOvernightFinancingRateSofrMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-09-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_1_1_2024_To_9_30_2024_fix_DebtCovenantRatioAxis_fix_DebtCovenantRatioRangeTwoMember_us-gaap_CreditFacilityAxis_us-gaap_RevolvingCreditFacilityMember_us-gaap_VariableRateAxis_us-gaap_BaseRateMember_dIavi5Tf7kK0AqbqTFpRCA"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="fix:DebtCovenantRatioAxis">fix:DebtCovenantRatioRangeTwoMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:CreditFacilityAxis">us-gaap:RevolvingCreditFacilityMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:VariableRateAxis">us-gaap:BaseRateMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-09-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_1_1_2024_To_9_30_2024_fix_DebtCovenantRatioAxis_fix_DebtCovenantRatioRangeThreeMember_us-gaap_CreditFacilityAxis_us-gaap_RevolvingCreditFacilityMember_us-gaap_VariableRateAxis_us-gaap_SecuredOvernightFinancingRateSofrMember_tBj9V7cBBUWwlrV1Pen_Xg"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="fix:DebtCovenantRatioAxis">fix:DebtCovenantRatioRangeThreeMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:CreditFacilityAxis">us-gaap:RevolvingCreditFacilityMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:VariableRateAxis">us-gaap:SecuredOvernightFinancingRateSofrMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-09-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_1_1_2024_To_9_30_2024_fix_DebtCovenantRatioAxis_fix_DebtCovenantRatioRangeThreeMember_us-gaap_CreditFacilityAxis_us-gaap_RevolvingCreditFacilityMember_us-gaap_VariableRateAxis_us-gaap_BaseRateMember_PxGRy-w8oUOGfS7CcwrYEQ"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="fix:DebtCovenantRatioAxis">fix:DebtCovenantRatioRangeThreeMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:CreditFacilityAxis">us-gaap:RevolvingCreditFacilityMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:VariableRateAxis">us-gaap:BaseRateMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-09-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_1_1_2024_To_9_30_2024_fix_DebtCovenantRatioAxis_fix_DebtCovenantRatioRangeOneMember_us-gaap_CreditFacilityAxis_us-gaap_RevolvingCreditFacilityMember_us-gaap_VariableRateAxis_us-gaap_SecuredOvernightFinancingRateSofrMember_4qAfbGq9YUS-CNDVj6lX_g"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="fix:DebtCovenantRatioAxis">fix:DebtCovenantRatioRangeOneMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:CreditFacilityAxis">us-gaap:RevolvingCreditFacilityMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:VariableRateAxis">us-gaap:SecuredOvernightFinancingRateSofrMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-09-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_1_1_2024_To_9_30_2024_fix_DebtCovenantRatioAxis_fix_DebtCovenantRatioRangeOneMember_us-gaap_CreditFacilityAxis_us-gaap_RevolvingCreditFacilityMember_us-gaap_VariableRateAxis_us-gaap_BaseRateMember_euITv3b3C0Cpyv9J0nPDUQ"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="fix:DebtCovenantRatioAxis">fix:DebtCovenantRatioRangeOneMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:CreditFacilityAxis">us-gaap:RevolvingCreditFacilityMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:VariableRateAxis">us-gaap:BaseRateMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-09-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_1_1_2024_To_9_30_2024_fix_DebtCovenantRatioAxis_fix_DebtCovenantRatioRangeFourMember_us-gaap_CreditFacilityAxis_us-gaap_RevolvingCreditFacilityMember_us-gaap_VariableRateAxis_us-gaap_SecuredOvernightFinancingRateSofrMember_7kOu2Za0hEqrgLFNy6oSZA"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="fix:DebtCovenantRatioAxis">fix:DebtCovenantRatioRangeFourMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:CreditFacilityAxis">us-gaap:RevolvingCreditFacilityMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:VariableRateAxis">us-gaap:SecuredOvernightFinancingRateSofrMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-09-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_1_1_2024_To_9_30_2024_fix_DebtCovenantRatioAxis_fix_DebtCovenantRatioRangeFourMember_us-gaap_CreditFacilityAxis_us-gaap_RevolvingCreditFacilityMember_us-gaap_VariableRateAxis_us-gaap_BaseRateMember_w32L56YUnEucGsNruJgppA"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="fix:DebtCovenantRatioAxis">fix:DebtCovenantRatioRangeFourMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:CreditFacilityAxis">us-gaap:RevolvingCreditFacilityMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:VariableRateAxis">us-gaap:BaseRateMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-09-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_1_1_2024_To_9_30_2024_fix_DebtCovenantRatioAxis_fix_DebtCovenantRatioRangeFiveMember_us-gaap_CreditFacilityAxis_us-gaap_RevolvingCreditFacilityMember_us-gaap_VariableRateAxis_us-gaap_SecuredOvernightFinancingRateSofrMember_s6sKxL1LTEupcC2UEz935A"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="fix:DebtCovenantRatioAxis">fix:DebtCovenantRatioRangeFiveMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:CreditFacilityAxis">us-gaap:RevolvingCreditFacilityMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:VariableRateAxis">us-gaap:SecuredOvernightFinancingRateSofrMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-09-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_1_1_2024_To_9_30_2024_fix_DebtCovenantRatioAxis_fix_DebtCovenantRatioRangeFiveMember_us-gaap_CreditFacilityAxis_us-gaap_RevolvingCreditFacilityMember_us-gaap_VariableRateAxis_us-gaap_BaseRateMember_2NZsBDbXOUOCqovL-tm5PA"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="fix:DebtCovenantRatioAxis">fix:DebtCovenantRatioRangeFiveMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:CreditFacilityAxis">us-gaap:RevolvingCreditFacilityMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:VariableRateAxis">us-gaap:BaseRateMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-09-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_1_1_2024_To_9_30_2024_srt_RangeAxis_srt_MinimumMember_us-gaap_DebtInstrumentAxis_us-gaap_LetterOfCreditMember_Sxjt1WXSdkS06xcBdFFXsw"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">us-gaap:LetterOfCreditMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-09-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_1_1_2024_To_9_30_2024_srt_RangeAxis_srt_MaximumMember_us-gaap_DebtInstrumentAxis_us-gaap_LetterOfCreditMember_sFO9_7LDT0-9J9IiMcimag"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">us-gaap:LetterOfCreditMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-09-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="As_Of_9_30_2024_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember_ooz0_FoGDUONfNpJABpC_A"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-09-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_6_30_2024_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember_FsF6nm3makmkjOm3DJrFOw"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</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="As_Of_3_31_2024_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember_faNjppyvAkG95Lo5lfEFQA"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</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="As_Of_12_31_2023_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember_T-GK8ughAU-Ymn8SjNyefQ"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</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="As_Of_9_30_2023_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember_goYxMkcD80mW87QWqQRQjA"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-09-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_6_30_2023_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember_bCsm-GJ2k0O8PvX-0xSefw"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</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="As_Of_3_31_2023_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember_GqQElVI120G_fnR-Wj6JEA"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</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="As_Of_12_31_2022_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember_jd1AYHA2ckyDgIPkOhtN4g"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</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="As_Of_12_31_2023_us-gaap_FairValueByFairValueHierarchyLevelAxis_us-gaap_FairValueInputsLevel2Member_us-gaap_FairValueByMeasurementFrequencyAxis_us-gaap_FairValueMeasurementsRecurringMember_f9bGEi2wcECLNMoSjsii6g"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel2Member</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FairValueByMeasurementFrequencyAxis">us-gaap:FairValueMeasurementsRecurringMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_12_31_2022_-q309bsKT0i3jZ5ZPwDgew"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:instant>2022-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_9_30_2024_us-gaap_FairValueByFairValueHierarchyLevelAxis_us-gaap_FairValueInputsLevel1Member_us-gaap_FairValueByMeasurementFrequencyAxis_us-gaap_FairValueMeasurementsRecurringMember_cYZklQkgzUO7e0HBwuxYsg"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel1Member</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FairValueByMeasurementFrequencyAxis">us-gaap:FairValueMeasurementsRecurringMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-09-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_9_30_2024_us-gaap_FairValueByMeasurementBasisAxis_us-gaap_EstimateOfFairValueFairValueDisclosureMember_us-gaap_FairValueByMeasurementFrequencyAxis_us-gaap_FairValueMeasurementsRecurringMember_mMGWK0XHXU-gmD_1-Ip02w"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FairValueByMeasurementBasisAxis">us-gaap:EstimateOfFairValueFairValueDisclosureMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FairValueByMeasurementFrequencyAxis">us-gaap:FairValueMeasurementsRecurringMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-09-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_12_31_2023_us-gaap_FairValueByFairValueHierarchyLevelAxis_us-gaap_FairValueInputsLevel1Member_us-gaap_FairValueByMeasurementFrequencyAxis_us-gaap_FairValueMeasurementsRecurringMember_Kd0jmytlNkq1QJcuaTF_Tw"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel1Member</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FairValueByMeasurementFrequencyAxis">us-gaap:FairValueMeasurementsRecurringMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_12_31_2023_us-gaap_FairValueByMeasurementBasisAxis_us-gaap_EstimateOfFairValueFairValueDisclosureMember_us-gaap_FairValueByMeasurementFrequencyAxis_us-gaap_FairValueMeasurementsRecurringMember_6lW7BwjU8UCeo0LTvup66g"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FairValueByMeasurementBasisAxis">us-gaap:EstimateOfFairValueFairValueDisclosureMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FairValueByMeasurementFrequencyAxis">us-gaap:FairValueMeasurementsRecurringMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_2_1_2024_us-gaap_BusinessAcquisitionAxis_fix_SummitIndustrialConstructionLlcMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TradeNamesMember_ZEDGijrvHEGoqpZCVa3O6Q"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">fix:SummitIndustrialConstructionLlcMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:TradeNamesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-02-01</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_2_1_2024_us-gaap_BusinessAcquisitionAxis_fix_SummitIndustrialConstructionLlcMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_OrderOrProductionBacklogMember_DG1vcGdP1E-NsKJirHxzmA"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">fix:SummitIndustrialConstructionLlcMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:OrderOrProductionBacklogMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-02-01</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_2_1_2024_us-gaap_BusinessAcquisitionAxis_fix_SummitIndustrialConstructionLlcMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_E_44aqF1GEeC-off1i3zFQ"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">fix:SummitIndustrialConstructionLlcMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:CustomerRelationshipsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-02-01</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_2_1_2024_us-gaap_BusinessAcquisitionAxis_fix_JSMechanicalContractorsIncMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TradeNamesMember_UbdNcFSzgE6eQY8Lq0nsUQ"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">fix:JSMechanicalContractorsIncMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:TradeNamesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-02-01</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_2_1_2024_us-gaap_BusinessAcquisitionAxis_fix_JSMechanicalContractorsIncMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_OrderOrProductionBacklogMember_e3s3Gydg70m4gr5DlLZ2jA"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">fix:JSMechanicalContractorsIncMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:OrderOrProductionBacklogMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-02-01</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_2_1_2024_us-gaap_BusinessAcquisitionAxis_fix_JSMechanicalContractorsIncMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_E5wMVmpO-EaMwtCFJaOzjg"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">fix:JSMechanicalContractorsIncMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:CustomerRelationshipsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-02-01</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="Duration_5_1_2024_To_5_1_2024_us-gaap_BusinessAcquisitionAxis_fix_MechanicalContractorNorthCarolinaMember_GFQfbwtaoU6aQ2eCa6Ydxg"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">fix:MechanicalContractorNorthCarolinaMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-05-01</xbrli:startDate><xbrli:endDate>2024-05-01</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_10_2_2023_To_10_2_2023_us-gaap_BusinessAcquisitionAxis_fix_DeccoIncMember_Dx8j_lCNK0GxxJ_7YlmX8g"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">fix:DeccoIncMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-10-02</xbrli:startDate><xbrli:endDate>2023-10-02</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2023_To_2_1_2023_us-gaap_BusinessAcquisitionAxis_fix_EldecoincMember_yjnrZ-2c_E2gP329DQLXDQ"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">fix:EldecoincMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-02-01</xbrli:startDate><xbrli:endDate>2023-02-01</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_7_1_2024_To_9_30_2024_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember_GC_A98EUY0OVhREw-KFEtQ"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-07-01</xbrli:startDate><xbrli:endDate>2024-09-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_4_1_2024_To_6_30_2024_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember_Vg2IkYLjME2M1RDpLQhp_w"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</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="Duration_1_1_2024_To_3_31_2024_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember_Vpc_7DhSLkuyQLld5NTf2w"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</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="Duration_7_1_2023_To_9_30_2023_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember_204q6j4d9U2AZI6d8ovCvw"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-07-01</xbrli:startDate><xbrli:endDate>2023-09-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_4_1_2023_To_6_30_2023_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember_OOET7gOWT0i386w9VvqgSw"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</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="Duration_1_1_2023_To_3_31_2023_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember_w92MrZLl80KReq7fJha7BA"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</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="Duration_7_1_2024_To_9_30_2024_us-gaap_StatementEquityComponentsAxis_us-gaap_TreasuryStockCommonMember_OHlyn-cLJE6WED7jje2D4g"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:TreasuryStockCommonMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-07-01</xbrli:startDate><xbrli:endDate>2024-09-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_4_1_2024_To_6_30_2024_us-gaap_StatementEquityComponentsAxis_us-gaap_TreasuryStockCommonMember_iuV_4b6WkESZTYOaWSSz5g"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:TreasuryStockCommonMember</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="Duration_4_1_2024_To_6_30_2024_sROrhhIG1EWJb6sdFVCV5A"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</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="Duration_1_1_2024_To_3_31_2024_us-gaap_StatementEquityComponentsAxis_us-gaap_TreasuryStockCommonMember_n0WWCqlMIEi_Xifgk4ElyA"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:TreasuryStockCommonMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-03-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_1_1_2024_To_3_31_2024_3eDLXeHQHUqwFFCeVkNekQ"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</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="Duration_7_1_2023_To_9_30_2023_us-gaap_StatementEquityComponentsAxis_us-gaap_TreasuryStockCommonMember_y_DckiuCiUukzdxoeufHBQ"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:TreasuryStockCommonMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-07-01</xbrli:startDate><xbrli:endDate>2023-09-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_4_1_2023_To_6_30_2023_us-gaap_StatementEquityComponentsAxis_us-gaap_TreasuryStockCommonMember_0KM7HwwZUUSAEOBlTGDKCA"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:TreasuryStockCommonMember</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="Duration_4_1_2023_To_6_30_2023__ElO6pinZkqcX7BvHZvATw"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</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="Duration_1_1_2023_To_3_31_2023_us-gaap_StatementEquityComponentsAxis_us-gaap_TreasuryStockCommonMember_g9f-nDzbck2YIepY4G-9GQ"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:TreasuryStockCommonMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-03-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_1_1_2023_To_3_31_2023_H23KnShKiEqNJR3rELr9eA"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</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="Duration_2_1_2024_To_2_1_2024_us-gaap_BusinessAcquisitionAxis_fix_SummitIndustrialConstructionLlcMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TradeNamesMember_lgAhxWYVXEu_Bz9p8cz9pg"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">fix:SummitIndustrialConstructionLlcMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:TradeNamesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-02-01</xbrli:startDate><xbrli:endDate>2024-02-01</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2024_To_2_1_2024_us-gaap_BusinessAcquisitionAxis_fix_SummitIndustrialConstructionLlcMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_OrderOrProductionBacklogMember_XY4c7Vh_f0Wib7AmjNTmVQ"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">fix:SummitIndustrialConstructionLlcMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:OrderOrProductionBacklogMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-02-01</xbrli:startDate><xbrli:endDate>2024-02-01</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2024_To_2_1_2024_us-gaap_BusinessAcquisitionAxis_fix_SummitIndustrialConstructionLlcMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_SR-BbGaHQU6crVtFm4Hs3A"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">fix:SummitIndustrialConstructionLlcMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:CustomerRelationshipsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-02-01</xbrli:startDate><xbrli:endDate>2024-02-01</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2024_To_2_1_2024_us-gaap_BusinessAcquisitionAxis_fix_JSMechanicalContractorsIncMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TradeNamesMember_fM79lywvg0u8_5fg8WgnBg"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">fix:JSMechanicalContractorsIncMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:TradeNamesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-02-01</xbrli:startDate><xbrli:endDate>2024-02-01</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2024_To_2_1_2024_us-gaap_BusinessAcquisitionAxis_fix_JSMechanicalContractorsIncMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_OrderOrProductionBacklogMember_J4SGwOYkg0erGQ6tMtF4oQ"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">fix:JSMechanicalContractorsIncMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:OrderOrProductionBacklogMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-02-01</xbrli:startDate><xbrli:endDate>2024-02-01</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2024_To_2_1_2024_us-gaap_BusinessAcquisitionAxis_fix_JSMechanicalContractorsIncMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_DCSiQ8QzcESU4zRgTrHB3A"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">fix:JSMechanicalContractorsIncMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:CustomerRelationshipsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-02-01</xbrli:startDate><xbrli:endDate>2024-02-01</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="As_Of_9_30_2024_us-gaap_PlanNameAxis_fix_StockRepurchaseProgram2007Member_v-c1j9gAuk-TEjUkrEyayg"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">fix:StockRepurchaseProgram2007Member</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-09-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_8_7_2024_us-gaap_PlanNameAxis_fix_StockRepurchaseProgram2007Member_zuupYSp1G0-EXbeu-NSt3g"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">fix:StockRepurchaseProgram2007Member</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-08-07</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_3_29_2007_us-gaap_PlanNameAxis_fix_StockRepurchaseProgram2007Member_IxnfDnQA_k-o75uXlRzSfQ"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">fix:StockRepurchaseProgram2007Member</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2007-03-29</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="Duration_1_1_2024_To_9_30_2024_srt_RangeAxis_srt_MaximumMember_S1BDn2duy0GGVVQoyxtpBA"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-09-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_7_1_2024_To_9_30_2024_srt_MajorCustomersAxis_us-gaap_OtherCustomerMember_ooxekhUnHkC59OhygvzcEg"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:MajorCustomersAxis">us-gaap:OtherCustomerMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-07-01</xbrli:startDate><xbrli:endDate>2024-09-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_7_1_2024_To_9_30_2024_srt_MajorCustomersAxis_fix_TechnologyMember_KsDxF3geU0unObVLWO98Dg"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:MajorCustomersAxis">fix:TechnologyMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-07-01</xbrli:startDate><xbrli:endDate>2024-09-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_7_1_2024_To_9_30_2024_us-gaap_StatementBusinessSegmentsAxis_fix_ServiceProjectsMember_v1xTvZU3H0O-NNEJG5Wuag"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">fix:ServiceProjectsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-07-01</xbrli:startDate><xbrli:endDate>2024-09-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_7_1_2024_To_9_30_2024_us-gaap_StatementBusinessSegmentsAxis_fix_ServiceCallsMaintenanceAndMonitoringMember_nRP3Zz-B5UeD5mhLWvsftg"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">fix:ServiceCallsMaintenanceAndMonitoringMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-07-01</xbrli:startDate><xbrli:endDate>2024-09-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_7_1_2024_To_9_30_2024_srt_MajorCustomersAxis_fix_RetailRestaurantsAndEntertainmentMember_FdEm-EcqqEOqEpuOJGXGqQ"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:MajorCustomersAxis">fix:RetailRestaurantsAndEntertainmentMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-07-01</xbrli:startDate><xbrli:endDate>2024-09-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_7_1_2024_To_9_30_2024_srt_MajorCustomersAxis_fix_OfficeBuildingCustomerMember_jctX_m442UmvBsXqlaT9Yg"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:MajorCustomersAxis">fix:OfficeBuildingCustomerMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-07-01</xbrli:startDate><xbrli:endDate>2024-09-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_7_1_2024_To_9_30_2024_us-gaap_StatementBusinessSegmentsAxis_fix_NewConstructionMember_TPRoRp0_rkeI19wbVGoUiw"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">fix:NewConstructionMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-07-01</xbrli:startDate><xbrli:endDate>2024-09-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_7_1_2024_To_9_30_2024_srt_MajorCustomersAxis_fix_MultiFamilyAndResidentialMember_yHQoZtxDMUS7uq8YgHlu8g"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:MajorCustomersAxis">fix:MultiFamilyAndResidentialMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-07-01</xbrli:startDate><xbrli:endDate>2024-09-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_7_1_2024_To_9_30_2024_srt_ProductOrServiceAxis_fix_MechanicalSegmentMember_zSjBPjtYwUi_X1HFKHPBRA"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">fix:MechanicalSegmentMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-07-01</xbrli:startDate><xbrli:endDate>2024-09-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_7_1_2024_To_9_30_2024_srt_MajorCustomersAxis_fix_ManufacturingCustomerMember_DlSkW78ckESme-WbVK0ifw"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:MajorCustomersAxis">fix:ManufacturingCustomerMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-07-01</xbrli:startDate><xbrli:endDate>2024-09-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_7_1_2024_To_9_30_2024_srt_MajorCustomersAxis_fix_HealthcareSectorCustomerMember_iM7xuXrB1UGGGYT2NTTnKw"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:MajorCustomersAxis">fix:HealthcareSectorCustomerMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-07-01</xbrli:startDate><xbrli:endDate>2024-09-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_7_1_2024_To_9_30_2024_srt_MajorCustomersAxis_fix_GovernmentCustomerMember_6rJ0v9NfEkehmj1jbsxjTA"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:MajorCustomersAxis">fix:GovernmentCustomerMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-07-01</xbrli:startDate><xbrli:endDate>2024-09-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_7_1_2024_To_9_30_2024_us-gaap_StatementBusinessSegmentsAxis_fix_ExistingBuildingConstructionMember_xsHcU1o_pk6S278XapX_zw"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">fix:ExistingBuildingConstructionMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-07-01</xbrli:startDate><xbrli:endDate>2024-09-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_7_1_2024_To_9_30_2024_srt_ProductOrServiceAxis_fix_ElectricalSegmentMember_x3CnBCq-ukmmkcOLyaXSzw"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">fix:ElectricalSegmentMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-07-01</xbrli:startDate><xbrli:endDate>2024-09-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_7_1_2024_To_9_30_2024_srt_MajorCustomersAxis_fix_EducationMember_3s_WeWJeO02h2rX6ci5CYA"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:MajorCustomersAxis">fix:EducationMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-07-01</xbrli:startDate><xbrli:endDate>2024-09-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_1_1_2024_To_9_30_2024_srt_MajorCustomersAxis_us-gaap_OtherCustomerMember_3oz8P6zHak-9HhcCONsscQ"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:MajorCustomersAxis">us-gaap:OtherCustomerMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-09-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_1_1_2024_To_9_30_2024_srt_MajorCustomersAxis_fix_TechnologyMember_8Ha7PafjlUqeoARzwkE3eg"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:MajorCustomersAxis">fix:TechnologyMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-09-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_1_1_2024_To_9_30_2024_us-gaap_StatementBusinessSegmentsAxis_fix_ServiceProjectsMember_UXRSMj4jZEaQfly5_6v8FA"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">fix:ServiceProjectsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-09-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_1_1_2024_To_9_30_2024_us-gaap_StatementBusinessSegmentsAxis_fix_ServiceCallsMaintenanceAndMonitoringMember_g7dgBZVClUiBSjvSBcXJLA"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">fix:ServiceCallsMaintenanceAndMonitoringMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-09-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_1_1_2024_To_9_30_2024_srt_MajorCustomersAxis_fix_RetailRestaurantsAndEntertainmentMember_mSxxcWu0iEGriS1GvinPXg"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:MajorCustomersAxis">fix:RetailRestaurantsAndEntertainmentMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-09-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_1_1_2024_To_9_30_2024_srt_MajorCustomersAxis_fix_OfficeBuildingCustomerMember_BcP-IXTgNUGzTH6kcfg3Zw"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:MajorCustomersAxis">fix:OfficeBuildingCustomerMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-09-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_1_1_2024_To_9_30_2024_us-gaap_StatementBusinessSegmentsAxis_fix_NewConstructionMember_1OFwKv6p1E-T4eLsC_JEsg"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">fix:NewConstructionMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-09-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_1_1_2024_To_9_30_2024_srt_MajorCustomersAxis_fix_MultiFamilyAndResidentialMember__QFzND4WM0qZXRCC48RVPg"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:MajorCustomersAxis">fix:MultiFamilyAndResidentialMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-09-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_1_1_2024_To_9_30_2024_srt_ProductOrServiceAxis_fix_MechanicalSegmentMember_dvUOkdhSUkekmtE7VK9W8Q"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">fix:MechanicalSegmentMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-09-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_1_1_2024_To_9_30_2024_srt_MajorCustomersAxis_fix_ManufacturingCustomerMember_at5IYry25U-KfN2L9AzS_Q"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:MajorCustomersAxis">fix:ManufacturingCustomerMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-09-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_1_1_2024_To_9_30_2024_srt_MajorCustomersAxis_fix_HealthcareSectorCustomerMember_qD7fXzmzKkm_9Q_7qkwq4A"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:MajorCustomersAxis">fix:HealthcareSectorCustomerMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-09-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_1_1_2024_To_9_30_2024_srt_MajorCustomersAxis_fix_GovernmentCustomerMember_Bn5B0HvRvkyNvOiVoQwe-A"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:MajorCustomersAxis">fix:GovernmentCustomerMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-09-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_1_1_2024_To_9_30_2024_us-gaap_StatementBusinessSegmentsAxis_fix_ExistingBuildingConstructionMember_kFgT68z3yEm6YFsca1c4sQ"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">fix:ExistingBuildingConstructionMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-09-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_1_1_2024_To_9_30_2024_srt_ProductOrServiceAxis_fix_ElectricalSegmentMember_o0t0pUlXiUyaiEyLXjNLqg"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">fix:ElectricalSegmentMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-09-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_1_1_2024_To_9_30_2024_srt_MajorCustomersAxis_fix_EducationMember_7MnM8jwS_Umjv2UlYVMfxQ"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:MajorCustomersAxis">fix:EducationMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-09-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_7_1_2023_To_9_30_2023_srt_MajorCustomersAxis_us-gaap_OtherCustomerMember_VGlfj-1TzEmnVzKTrmKWiQ"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:MajorCustomersAxis">us-gaap:OtherCustomerMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-07-01</xbrli:startDate><xbrli:endDate>2023-09-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_7_1_2023_To_9_30_2023_srt_MajorCustomersAxis_fix_TechnologyMember_f_AWks4nDUO_PVuPOxT2Ug"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:MajorCustomersAxis">fix:TechnologyMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-07-01</xbrli:startDate><xbrli:endDate>2023-09-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_7_1_2023_To_9_30_2023_us-gaap_StatementBusinessSegmentsAxis_fix_ServiceProjectsMember_BIAAdohKR0KkRoxqv355pQ"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">fix:ServiceProjectsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-07-01</xbrli:startDate><xbrli:endDate>2023-09-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_7_1_2023_To_9_30_2023_us-gaap_StatementBusinessSegmentsAxis_fix_ServiceCallsMaintenanceAndMonitoringMember_NQSFRlXpkEGM1kjrMGGdkg"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">fix:ServiceCallsMaintenanceAndMonitoringMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-07-01</xbrli:startDate><xbrli:endDate>2023-09-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_7_1_2023_To_9_30_2023_srt_MajorCustomersAxis_fix_RetailRestaurantsAndEntertainmentMember_jGe7tXzCSUazhQentwBi6g"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:MajorCustomersAxis">fix:RetailRestaurantsAndEntertainmentMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-07-01</xbrli:startDate><xbrli:endDate>2023-09-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_7_1_2023_To_9_30_2023_srt_MajorCustomersAxis_fix_OfficeBuildingCustomerMember_pHSah2Q_ZkafnHa1Q7RhOg"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:MajorCustomersAxis">fix:OfficeBuildingCustomerMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-07-01</xbrli:startDate><xbrli:endDate>2023-09-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_7_1_2023_To_9_30_2023_us-gaap_StatementBusinessSegmentsAxis_fix_NewConstructionMember_X-8Qi_Gr-EqavravxT4Tmw"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">fix:NewConstructionMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-07-01</xbrli:startDate><xbrli:endDate>2023-09-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_7_1_2023_To_9_30_2023_srt_MajorCustomersAxis_fix_MultiFamilyAndResidentialMember_lXNLSArRmEWGe3DLspPuEQ"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:MajorCustomersAxis">fix:MultiFamilyAndResidentialMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-07-01</xbrli:startDate><xbrli:endDate>2023-09-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_7_1_2023_To_9_30_2023_srt_ProductOrServiceAxis_fix_MechanicalSegmentMember_ERE56cXrDkqqTstR-ZqOmw"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">fix:MechanicalSegmentMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-07-01</xbrli:startDate><xbrli:endDate>2023-09-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_7_1_2023_To_9_30_2023_srt_MajorCustomersAxis_fix_ManufacturingCustomerMember_d8LstyS2_0eYmjU47uflpA"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:MajorCustomersAxis">fix:ManufacturingCustomerMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-07-01</xbrli:startDate><xbrli:endDate>2023-09-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_7_1_2023_To_9_30_2023_srt_MajorCustomersAxis_fix_HealthcareSectorCustomerMember_98MrGE2fNEW16lWzpetk6A"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:MajorCustomersAxis">fix:HealthcareSectorCustomerMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-07-01</xbrli:startDate><xbrli:endDate>2023-09-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_7_1_2023_To_9_30_2023_srt_MajorCustomersAxis_fix_GovernmentCustomerMember_lu4XhCrd50S4x-cEsGLwMA"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:MajorCustomersAxis">fix:GovernmentCustomerMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-07-01</xbrli:startDate><xbrli:endDate>2023-09-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_7_1_2023_To_9_30_2023_us-gaap_StatementBusinessSegmentsAxis_fix_ExistingBuildingConstructionMember_FXRjqCbVgEKB2tybWB0X-g"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">fix:ExistingBuildingConstructionMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-07-01</xbrli:startDate><xbrli:endDate>2023-09-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_7_1_2023_To_9_30_2023_srt_ProductOrServiceAxis_fix_ElectricalSegmentMember_EhM9QnB9q0KvmMWYVDF6Zg"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">fix:ElectricalSegmentMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-07-01</xbrli:startDate><xbrli:endDate>2023-09-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_7_1_2023_To_9_30_2023_srt_MajorCustomersAxis_fix_EducationMember_IXPI4j2t1EuVO_835l-ROg"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:MajorCustomersAxis">fix:EducationMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-07-01</xbrli:startDate><xbrli:endDate>2023-09-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_1_1_2023_To_9_30_2023_srt_MajorCustomersAxis_us-gaap_OtherCustomerMember_1dZZBF2VrkuIAaJtkjLDMw"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:MajorCustomersAxis">us-gaap:OtherCustomerMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-09-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_1_1_2023_To_9_30_2023_srt_MajorCustomersAxis_fix_TechnologyMember_gsMI6hHvYEeyed_Plm-HmA"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:MajorCustomersAxis">fix:TechnologyMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-09-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_1_1_2023_To_9_30_2023_us-gaap_StatementBusinessSegmentsAxis_fix_ServiceProjectsMember_haGwYoQcvUCiGoQWZ1VG1w"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">fix:ServiceProjectsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-09-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_1_1_2023_To_9_30_2023_us-gaap_StatementBusinessSegmentsAxis_fix_ServiceCallsMaintenanceAndMonitoringMember_8McghxnrdUmSrStHl4sMXQ"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">fix:ServiceCallsMaintenanceAndMonitoringMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-09-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_1_1_2023_To_9_30_2023_srt_MajorCustomersAxis_fix_RetailRestaurantsAndEntertainmentMember_iRcGOwE8BkqMimheyifr0Q"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:MajorCustomersAxis">fix:RetailRestaurantsAndEntertainmentMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-09-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_1_1_2023_To_9_30_2023_srt_MajorCustomersAxis_fix_OfficeBuildingCustomerMember_5ck-_ey1iEmhLHtML0T7Qw"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:MajorCustomersAxis">fix:OfficeBuildingCustomerMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-09-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_1_1_2023_To_9_30_2023_us-gaap_StatementBusinessSegmentsAxis_fix_NewConstructionMember_vZyk2ScSaUWum8ZsO7KiAw"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">fix:NewConstructionMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-09-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_1_1_2023_To_9_30_2023_srt_MajorCustomersAxis_fix_MultiFamilyAndResidentialMember_gt6wgJzRZEayKVY24Ip8yQ"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:MajorCustomersAxis">fix:MultiFamilyAndResidentialMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-09-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_1_1_2023_To_9_30_2023_srt_ProductOrServiceAxis_fix_MechanicalSegmentMember_5Zvwx1aGcUmEmUz8Y0iq0g"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">fix:MechanicalSegmentMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-09-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_1_1_2023_To_9_30_2023_srt_MajorCustomersAxis_fix_ManufacturingCustomerMember_1ntFAqiRBU-LgOlfAwP-XQ"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:MajorCustomersAxis">fix:ManufacturingCustomerMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-09-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_1_1_2023_To_9_30_2023_srt_MajorCustomersAxis_fix_HealthcareSectorCustomerMember_DQuFCD0170O_Pg1jeSAQdQ"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:MajorCustomersAxis">fix:HealthcareSectorCustomerMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-09-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_1_1_2023_To_9_30_2023_srt_MajorCustomersAxis_fix_GovernmentCustomerMember_KZybkavxEES6_Y1Ef66T9w"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:MajorCustomersAxis">fix:GovernmentCustomerMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-09-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_1_1_2023_To_9_30_2023_us-gaap_StatementBusinessSegmentsAxis_fix_ExistingBuildingConstructionMember_n_MbMVArkEyX3wbyy5U5Rw"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">fix:ExistingBuildingConstructionMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-09-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_1_1_2023_To_9_30_2023_srt_ProductOrServiceAxis_fix_ElectricalSegmentMember_2uWX4c1lfk6w485DVAhWOQ"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">fix:ElectricalSegmentMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-09-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_1_1_2023_To_9_30_2023_srt_MajorCustomersAxis_fix_EducationMember_RzrHrhvZOEqM88oaj1mOWw"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:MajorCustomersAxis">fix:EducationMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-09-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_1_1_2024_To_9_30_2024_srt_RangeAxis_srt_MinimumMember_us-gaap_LossContingenciesByNatureOfContingencyAxis_us-gaap_SuretyBondMember_u-DTSuPKZ0yIEXxgdm3JPA"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:LossContingenciesByNatureOfContingencyAxis">us-gaap:SuretyBondMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-09-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_1_1_2024_To_9_30_2024_srt_RangeAxis_srt_MaximumMember_us-gaap_LossContingenciesByNatureOfContingencyAxis_us-gaap_SuretyBondMember_vo8hvaWZp0aEPxrNNFY3Dw"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:LossContingenciesByNatureOfContingencyAxis">us-gaap:SuretyBondMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-09-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_1_1_2024_To_9_30_2024_srt_RangeAxis_srt_MinimumMember_3wO7ciKypUqVRHiqsG5ULA"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><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-09-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="As_Of_9_30_2023_Cz0YiFrEwkyvL950Hk4Vxw"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:instant>2023-09-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_9_30_2024_srt_RangeAxis_srt_MaximumMember_us-gaap_CreditFacilityAxis_us-gaap_RevolvingCreditFacilityMember_us-gaap_DebtInstrumentAxis_fix_SeniorRevolvingCreditFacilityMember_Vx-A-TxtU06VSg1tAhtGXA"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:CreditFacilityAxis">us-gaap:RevolvingCreditFacilityMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">fix:SeniorRevolvingCreditFacilityMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-09-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_12_31_2023_X7eqeHRTF0mRLJW7InVDdA"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_9_30_2024_um13j0l3zk2ITGaiED1DFA"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:instant>2024-09-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_9_30_2024_us-gaap_DebtInstrumentAxis_fix_SubordinateDebtAndPromissoryNoteMember_XSQD6UqffkiEduCjJs-FPQ"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">fix:SubordinateDebtAndPromissoryNoteMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-09-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="Duration_7_1_2023_To_9_30_2023_S4fUa5HYuk6ZPxhUrn5m5w"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:startDate>2023-07-01</xbrli:startDate><xbrli:endDate>2023-09-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_1_1_2023_To_9_30_2023_0vpBpKZIxEC_KY5z5G8rKA"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-09-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2024_To_2_1_2024_srt_RangeAxis_srt_MinimumMember_us-gaap_BusinessAcquisitionAxis_fix_SummitIndustrialConstructionLlcMember_us-gaap_FairValueByLiabilityClassAxis_fix_ContingentConsiderationObligationsMember_us-gaap_MeasurementInputTypeAxis_us-gaap_MeasurementInputInceptionDiscountRateMember_omOpY3LNbk21p0z2y9Cidw"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">fix:SummitIndustrialConstructionLlcMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FairValueByLiabilityClassAxis">fix:ContingentConsiderationObligationsMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:MeasurementInputTypeAxis">us-gaap:MeasurementInputInceptionDiscountRateMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-02-01</xbrli:startDate><xbrli:endDate>2024-02-01</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2024_To_2_1_2024_srt_RangeAxis_srt_MinimumMember_us-gaap_BusinessAcquisitionAxis_fix_JSMechanicalContractorsIncMember_us-gaap_FairValueByLiabilityClassAxis_fix_ContingentConsiderationObligationsMember_us-gaap_MeasurementInputTypeAxis_us-gaap_MeasurementInputInceptionDiscountRateMember_Z4PzYqr85UuHGkurckYlsA"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">fix:JSMechanicalContractorsIncMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FairValueByLiabilityClassAxis">fix:ContingentConsiderationObligationsMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:MeasurementInputTypeAxis">us-gaap:MeasurementInputInceptionDiscountRateMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-02-01</xbrli:startDate><xbrli:endDate>2024-02-01</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2024_To_2_1_2024_srt_RangeAxis_srt_MaximumMember_us-gaap_BusinessAcquisitionAxis_fix_SummitIndustrialConstructionLlcMember_us-gaap_FairValueByLiabilityClassAxis_fix_ContingentConsiderationObligationsMember_us-gaap_MeasurementInputTypeAxis_us-gaap_MeasurementInputInceptionDiscountRateMember_dhJ80I6zTE-y2GJjn5aLWQ"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">fix:SummitIndustrialConstructionLlcMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FairValueByLiabilityClassAxis">fix:ContingentConsiderationObligationsMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:MeasurementInputTypeAxis">us-gaap:MeasurementInputInceptionDiscountRateMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-02-01</xbrli:startDate><xbrli:endDate>2024-02-01</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2024_To_2_1_2024_srt_RangeAxis_srt_MaximumMember_us-gaap_BusinessAcquisitionAxis_fix_JSMechanicalContractorsIncMember_us-gaap_FairValueByLiabilityClassAxis_fix_ContingentConsiderationObligationsMember_us-gaap_MeasurementInputTypeAxis_us-gaap_MeasurementInputInceptionDiscountRateMember_1iGhRmFgn0SNe3F9sRA-Hw"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">fix:JSMechanicalContractorsIncMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FairValueByLiabilityClassAxis">fix:ContingentConsiderationObligationsMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:MeasurementInputTypeAxis">us-gaap:MeasurementInputInceptionDiscountRateMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-02-01</xbrli:startDate><xbrli:endDate>2024-02-01</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2024_To_2_1_2024_srt_RangeAxis_srt_MinimumMember_us-gaap_BusinessAcquisitionAxis_fix_SummitIndustrialConstructionLlcMember_us-gaap_MeasurementInputTypeAxis_us-gaap_MeasurementInputInceptionDiscountRateMember_jsSEzNLlEE-Ex4s5gpzSkA"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">fix:SummitIndustrialConstructionLlcMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:MeasurementInputTypeAxis">us-gaap:MeasurementInputInceptionDiscountRateMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-02-01</xbrli:startDate><xbrli:endDate>2024-02-01</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2024_To_2_1_2024_srt_RangeAxis_srt_MinimumMember_us-gaap_BusinessAcquisitionAxis_fix_JSMechanicalContractorsIncMember_us-gaap_MeasurementInputTypeAxis_us-gaap_MeasurementInputInceptionDiscountRateMember_E08FgkC7SU-_6ToMlCXhxQ"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">fix:JSMechanicalContractorsIncMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:MeasurementInputTypeAxis">us-gaap:MeasurementInputInceptionDiscountRateMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-02-01</xbrli:startDate><xbrli:endDate>2024-02-01</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2024_To_2_1_2024_srt_RangeAxis_srt_MaximumMember_us-gaap_BusinessAcquisitionAxis_fix_SummitIndustrialConstructionLlcMember_us-gaap_MeasurementInputTypeAxis_us-gaap_MeasurementInputInceptionDiscountRateMember_9jhFskDynU-Bp3RZFmcmmg"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">fix:SummitIndustrialConstructionLlcMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:MeasurementInputTypeAxis">us-gaap:MeasurementInputInceptionDiscountRateMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-02-01</xbrli:startDate><xbrli:endDate>2024-02-01</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2024_To_2_1_2024_srt_RangeAxis_srt_MaximumMember_us-gaap_BusinessAcquisitionAxis_fix_JSMechanicalContractorsIncMember_us-gaap_MeasurementInputTypeAxis_us-gaap_MeasurementInputInceptionDiscountRateMember_3_7veEW0vUGYAhsysIAMDg"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">fix:JSMechanicalContractorsIncMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:MeasurementInputTypeAxis">us-gaap:MeasurementInputInceptionDiscountRateMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-02-01</xbrli:startDate><xbrli:endDate>2024-02-01</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2024_To_2_1_2024_us-gaap_BusinessAcquisitionAxis_fix_SummitIndustrialConstructionLlcMember_us-gaap_FairValueByLiabilityClassAxis_fix_ContingentConsiderationObligationsMember_f8tsuUPK4kqkQgJ0yrrqjA"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">fix:SummitIndustrialConstructionLlcMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FairValueByLiabilityClassAxis">fix:ContingentConsiderationObligationsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-02-01</xbrli:startDate><xbrli:endDate>2024-02-01</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2024_To_2_1_2024_us-gaap_BusinessAcquisitionAxis_fix_JSMechanicalContractorsIncMember_us-gaap_FairValueByLiabilityClassAxis_fix_ContingentConsiderationObligationsMember_6ZRDO1yLaUmIrGvOOt3b2Q"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">fix:JSMechanicalContractorsIncMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FairValueByLiabilityClassAxis">fix:ContingentConsiderationObligationsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-02-01</xbrli:startDate><xbrli:endDate>2024-02-01</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="As_Of_2_1_2024_us-gaap_BusinessAcquisitionAxis_fix_SummitIndustrialConstructionLlcMember_4nZLiHoQek-94UQ4yBtSSQ"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">fix:SummitIndustrialConstructionLlcMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-02-01</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_2_1_2024_us-gaap_BusinessAcquisitionAxis_fix_JSMechanicalContractorsIncMember_-UFNMak94EiLKWp3uwuxKA"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">fix:JSMechanicalContractorsIncMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-02-01</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_2_1_2024_us-gaap_BusinessAcquisitionAxis_fix_SummitIndustrialConstructionLlcMember_us-gaap_FairValueByLiabilityClassAxis_fix_ContingentConsiderationObligationsMember_6iSMnKlf-ESVMUiNLAe0RQ"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">fix:SummitIndustrialConstructionLlcMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FairValueByLiabilityClassAxis">fix:ContingentConsiderationObligationsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-02-01</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_2_1_2024_us-gaap_BusinessAcquisitionAxis_fix_JSMechanicalContractorsIncMember_us-gaap_FairValueByLiabilityClassAxis_fix_ContingentConsiderationObligationsMember_elY5K7I58U6YVrlQHSZljw"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">fix:JSMechanicalContractorsIncMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FairValueByLiabilityClassAxis">fix:ContingentConsiderationObligationsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-02-01</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2024_To_2_1_2024_us-gaap_BusinessAcquisitionAxis_fix_SummitIndustrialConstructionLlcMember_S5n0ZNTvS0KLqs4fzBJX1A"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">fix:SummitIndustrialConstructionLlcMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-02-01</xbrli:startDate><xbrli:endDate>2024-02-01</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2024_To_2_1_2024_us-gaap_BusinessAcquisitionAxis_fix_JSMechanicalContractorsIncMember_vbpAmjpzQ0i17zj1l6LoZQ"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">fix:JSMechanicalContractorsIncMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-02-01</xbrli:startDate><xbrli:endDate>2024-02-01</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_7_1_2024_To_9_30_2024_XquWrHsdeEmkK9F8qXf6qA"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:startDate>2024-07-01</xbrli:startDate><xbrli:endDate>2024-09-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="As_Of_10_18_2024_efSZE3afwUWQ72isHwphYg"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:instant>2024-10-18</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-09-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:unit id="Unit_Standard_segment_3_qs4qRnNUKHCam52rVs-g"><xbrli:measure>fix:segment</xbrli:measure></xbrli:unit><xbrli:unit id="Unit_Standard_shares_YK1c03HsOkOiDLLsAeYHoA"><xbrli:measure>xbrli:shares</xbrli:measure></xbrli:unit><xbrli:unit id="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ"><xbrli:measure>iso4217:USD</xbrli:measure></xbrli:unit><xbrli:unit id="Unit_Standard_Milestone_OLalA_yQ5Um-7AHW7XVHqw"><xbrli:measure>fix:Milestone</xbrli:measure></xbrli:unit><xbrli:unit id="Unit_Standard_pure_0GIr2wv4rk-T38a8Lz0A5w"><xbrli:measure>xbrli:pure</xbrli:measure></xbrli:unit><xbrli:unit id="Unit_Standard_item_PbUC2ubErUqwW8N_vj70-g"><xbrli:measure>fix:item</xbrli:measure></xbrli:unit><xbrli:unit id="Unit_Standard_employee_4_T_xVXJeUGRyiTsD-I_ag"><xbrli:measure>fix:employee</xbrli:measure></xbrli:unit><xbrli:unit id="Unit_Standard_lease_U5sIX0HP0UOmAQUpJ4dJYg"><xbrli:measure>fix:lease</xbrli:measure></xbrli:unit><xbrli:unit id="Unit_Standard_Option_qbxE96-DSUeFUvu6RD_SkA"><xbrli:measure>fix:Option</xbrli:measure></xbrli:unit><xbrli:unit id="Unit_Divide_USD_shares_0ZfRDiWNfk6kp61F6IdjQA"><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:resources></ix:header></div><div style="max-width:100%;padding-left:10.35%;padding-right:10.35%;position:relative;"><div style="margin-top:21.6pt;min-height:41.75pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 30pt 0pt;"><a href="#Toc"><span style="font-style:normal;font-weight:normal;">Table of Contents</span></a></p></div><div style="clear:both;margin-left:-10.0pt;margin-right:-10.0pt;max-width:100%;position:relative;width:calc(100% + 20.0pt);"><div style="padding-left:10pt;padding-right:10pt;position:relative;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1pt;padding-bottom:1pt;padding-top:1pt;border-bottom:1.0pt solid #000000;border-top:3.0pt solid #000000;margin:0pt;"><span style="font-size:1pt;visibility:hidden;background:#00ff00;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-size:3pt;visibility:hidden;">&#8203;</span></p><a id="_a597068a_fc5d_4ee8_8c84_3130ca8a9ebe"></a><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><b style="font-size:16pt;font-weight:bold;">UNITED STATES</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><b style="font-size:16pt;font-weight:bold;">SECURITIES AND EXCHANGE COMMISSION</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 6pt 0pt;"><b style="font-weight:bold;">Washington, D.C. 20549</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:16pt;text-align:center;margin:0pt 0pt 6pt 0pt;"><b style="font-weight:bold;">Form&#160;</b><ix:nonNumeric contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ" name="dei:DocumentType" id="Narr_hbDeE2seY02npXhfP-C3iw"><b style="font-weight:bold;">10-Q</b></ix:nonNumeric></p><a id="_3b5e803e_17a0_4c2e_a0b8_9ae281f0b050"></a><a id="Tc_rJewDnFQQkyWsWRXlpivWw_1_0"></a><a id="Tc_02gZ8b7srkGfW_RifTdBDg_2_1"></a><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:3.6pt;padding-right:3.6pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:top;width:13.42%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="position:absolute;top:0pt;width:100%;"></div></div></td><td style="vertical-align:bottom;width:86.57%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:top;width:13.42%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:10pt;text-align:center;text-indent:-10pt;margin:0pt;"><b style="font-weight:bold;">(Mark One)</b></p></td><td style="vertical-align:bottom;width:86.57%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:top;width:13.42%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:10pt;text-align:center;text-indent:-10pt;margin:0pt;"><ix:nonNumeric format="ixt-sec:boolballotbox" contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ" name="dei:DocumentQuarterlyReport" id="Tc_bW3nZixqMEiZrEK5rImMLQ_2_0"><span style="font-family:'Segoe UI Symbol';">&#9746;</span></ix:nonNumeric></p></td><td style="vertical-align:top;width:86.57%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">QUARTERLY REPORT PURSUANT TO SECTION&#160;13 OR 15(d) OF THE SECURITIES EXCHANGE ACT OF&#160;1934</b></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">For the quarterly period ended </b><ix:nonNumeric format="ixt:datemonthdayyearen" contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ" name="dei:DocumentPeriodEndDate" id="Narr_sy_VR4u0Xk-kCt_8Ug9n8Q"><b style="font-weight:bold;">September 30, 2024</b></ix:nonNumeric></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">OR</b></p><a id="_a0ad65ca_4bc6_4a2a_a093_e4d3389ed370"></a><a id="Tc_beGgKbKKfUmAcKrfcwypkQ_1_1"></a><a id="Tc_3Eyn34kUXkWfpCPJ32apAQ_2_0"></a><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:3.6pt;padding-right:3.6pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:top;width:13.42%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="position:absolute;top:0pt;width:100%;"></div></div></td><td style="vertical-align:top;width:86.57%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="position:absolute;top:0pt;width:100%;"></div></div></td></tr><tr><td style="vertical-align:top;width:13.42%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:10pt;text-align:center;text-indent:-10pt;margin:0pt;"><ix:nonNumeric format="ixt-sec:boolballotbox" contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ" name="dei:DocumentTransitionReport" id="Tc_ghC5n0w9KUObbgamgA--Qg_1_0"><span style="font-family:'Segoe UI Symbol';">&#9744;</span></ix:nonNumeric></p></td><td style="vertical-align:top;width:86.57%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">TRANSITION REPORT PURSUANT TO SECTION&#160;13 OR 15(d) OF THE SECURITIES EXCHANGE ACT OF&#160;1934</b></p></td></tr><tr><td colspan="2" style="vertical-align:top;width:100%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:10pt;text-align:center;text-indent:-10pt;margin:0pt;"><b style="font-weight:bold;white-space:pre-wrap;">For the transition period from              to             </b></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:3pt 0pt 6pt 0pt;"><b style="font-weight:bold;">Commission file number: </b><ix:nonNumeric contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ" name="dei:EntityFileNumber" id="Narr_b3_6kNnnokaqhUw8SQn4_A"><b style="font-weight:bold;">1-13011</b></ix:nonNumeric></p><p style="font-family:'Times New Roman','Times','serif';font-size:16pt;text-align:center;margin:0pt;"><ix:nonNumeric contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ" name="dei:EntityRegistrantName" id="Narr_3saosc9bNEqOtzq32Nng8w"><b style="font-weight:bold;">COMFORT SYSTEMS USA,&#160;INC.</b></ix:nonNumeric></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 6pt 0pt;">(Exact name of registrant as specified in its charter)</p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:3.6pt;padding-right:3.6pt;width:100%;"><tr><td style="vertical-align:top;width:50%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:10pt;text-align:center;text-indent:-10pt;margin:0pt;"><ix:nonNumeric format="ixt-sec:stateprovnameen" contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ" name="dei:EntityIncorporationStateCountryCode" id="Narr_FnpdTJIxqkKy7VQBTQ0mkg"><b style="font-weight:bold;">Delaware</b></ix:nonNumeric><br/>(State or other jurisdiction of<br/>Incorporation or Organization)</p></td><td style="vertical-align:top;width:50%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><ix:nonNumeric contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ" name="dei:EntityTaxIdentificationNumber" id="Narr_t7UKFZ6VSEek8lOCU0TeSw"><b style="font-weight:bold;">76-0526487</b></ix:nonNumeric><br/>(I.R.S. Employer<br/>Identification No.)</p></td></tr><tr><td colspan="2" style="vertical-align:top;width:100%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:10pt;text-align:center;text-indent:-10pt;margin:0pt;"><ix:nonNumeric contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ" name="dei:EntityAddressAddressLine1" id="Narr_UPyA7bszbU6sdM25gUDHLw"><b style="font-weight:bold;">675 Bering Drive</b></ix:nonNumeric><b style="font-weight:bold;"><br/></b><ix:nonNumeric contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ" name="dei:EntityAddressAddressLine2" id="Narr_aesAkmGTL0ih6tw2nsoeGw"><b style="font-weight:bold;">Suite&#160;400</b></ix:nonNumeric><b style="font-weight:bold;"><br/></b><ix:nonNumeric contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ" name="dei:EntityAddressCityOrTown" id="Narr_NN4N0ALM1kWRr1SneD4-xA"><b style="font-weight:bold;">Houston</b></ix:nonNumeric><b style="font-weight:bold;">, </b><ix:nonNumeric format="ixt-sec:stateprovnameen" contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ" name="dei:EntityAddressStateOrProvince" id="Narr_kZ-gIAM5vEKgqAGM3U5CxA"><b style="font-weight:bold;">Texas</b></ix:nonNumeric><b style="font-weight:bold;"> </b><ix:nonNumeric contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ" name="dei:EntityAddressPostalZipCode" id="Narr_3fmMZ5DxvEOld76z1H0ZHA"><b style="font-weight:bold;">77057</b></ix:nonNumeric><b style="font-weight:bold;"><br/></b>(Address of Principal Executive Offices) (Zip Code)</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:6pt 0pt 6pt 0pt;">Registrant&#8217;s telephone number, including area code: <b style="font-weight:bold;">(</b><ix:nonNumeric contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ" name="dei:CityAreaCode" id="Narr_h1Xj6wOR1E2M2sUNJGoonw"><b style="font-weight:bold;">713</b></ix:nonNumeric><b style="font-weight:bold;">)&#160;</b><ix:nonNumeric contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ" name="dei:LocalPhoneNumber" id="Narr_HLh1xsBX8UumvVn-XyiH3A"><b style="font-weight:bold;">830-9600</b></ix:nonNumeric></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">Securities registered pursuant to Section 12(b) of the Act:</p><a id="_47ebd5c6_bfb7_433e_a007_2c70d8ac1a9e"></a><div style="padding-left:17.75pt;"><a id="Tc_32A9loCYtUO0C2pWeKqAKQ_1_0"></a><a id="Tc_zWaTrIekVUSD8gX2ohfa6w_1_1"></a><a id="Tc_xUaLY3mnn0am18ovY_aqDQ_1_2"></a><table style="border-collapse:collapse;font-size:16pt;height:max-content;width:92.71%;"><tr style="height:1pt;"><td style="vertical-align:top;width:31.99%;margin:0pt;padding:0pt 5.4pt 0pt 5.4pt;"/><td style="vertical-align:top;width:21%;margin:0pt;padding:0pt 5.4pt 0pt 5.4pt;"/><td style="vertical-align:top;width:47%;margin:0pt;padding:0pt 5.4pt 0pt 5.4pt;"/></tr><tr><td style="vertical-align:top;width:31.99%;border-bottom:1px solid #000000;border-left:1px solid #000000;border-right:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt 5.15pt 0pt 5.15pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:11pt;text-align:center;margin:0pt;"><b style="font-size:10pt;font-weight:bold;">Title of each class</b></p></td><td style="vertical-align:top;width:21%;border-bottom:1px solid #000000;border-left:1px solid #000000;border-right:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt 5.15pt 0pt 5.15pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:11pt;text-align:center;margin:0pt;"><b style="font-size:10pt;font-weight:bold;">Trading Symbol(s)</b></p></td><td style="vertical-align:top;width:47%;border-bottom:1px solid #000000;border-left:1px solid #000000;border-right:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt 5.15pt 0pt 5.15pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:11pt;text-align:center;margin:0pt;"><b style="font-size:10pt;font-weight:bold;">Name of each exchange on which registered</b></p></td></tr><tr><td style="vertical-align:top;width:31.99%;border-bottom:1px solid #000000;border-left:1px solid #000000;border-right:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt 5.15pt 0pt 5.15pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:11pt;text-align:center;margin:0pt;"><ix:nonNumeric contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ" name="dei:Security12bTitle" id="Tc_SDd532gi-kSJLyNnAQRwSA_2_0"><span style="font-size:10pt;">Common Stock, $0.01 par value</span></ix:nonNumeric></p></td><td style="vertical-align:top;width:21%;border-bottom:1px solid #000000;border-left:1px solid #000000;border-right:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt 5.15pt 0pt 5.15pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:11pt;text-align:center;margin:0pt;"><ix:nonNumeric contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ" name="dei:TradingSymbol" id="Tc_oGEBvoMbp0WioJkk0tKqeA_2_1"><span style="font-size:10pt;">FIX</span></ix:nonNumeric></p></td><td style="vertical-align:top;width:47%;border-bottom:1px solid #000000;border-left:1px solid #000000;border-right:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt 5.15pt 0pt 5.15pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:11pt;text-align:center;margin:0pt;"><ix:nonNumeric format="ixt-sec:exchnameen" contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ" name="dei:SecurityExchangeName" id="Tc_i9ttUrDnSEq5PFK_SofAHA_2_2"><span style="font-size:10pt;">New York Stock Exchange</span></ix:nonNumeric></p></td></tr></table></div><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:5pt;visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 6pt 0pt;">Indicate by check mark whether the registrant (1)&#160;has filed all reports required to be filed by Section&#160;13 or 15(d) of the Securities Exchange Act of 1934 during the preceding 12&#160;months (or for such shorter period that the registrant was required to file such reports), and (2)&#160;has been subject to such filing requirements for the past 90&#160;days.&#160;<ix:nonNumeric contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ" name="dei:EntityCurrentReportingStatus" id="Narr_eZmk-nGY702HETuP-UehEw">Yes</ix:nonNumeric>&#160;<span style="font-family:'Times New Roman';">&#8999;</span><span style="white-space:pre-wrap;">  No&#160;</span><span style="font-family:'Times New Roman';">&#9723;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 6pt 0pt;">Indicate by check mark whether the registrant has submitted electronically every Interactive Data File required to be submitted pursuant to Rule&#160;405 of Regulation&#160;S-T (Section&#160;232.405 of this chapter) during the preceding 12&#160;months (or for such shorter period that the registrant was required to submit such files).&#160;<ix:nonNumeric contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ" name="dei:EntityInteractiveDataCurrent" id="Narr_0oQlBw-tBUOJEzEDTeqjZw">Yes</ix:nonNumeric>&#160;<span style="font-family:'Times New Roman';">&#8999;</span><span style="white-space:pre-wrap;">  No&#160;</span><span style="font-family:'Times New Roman';">&#9723;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 6pt 0pt;">Indicate by check mark whether the registrant is a large accelerated filer, an accelerated filer, a non-accelerated filer, a smaller reporting company, or an emerging growth company. See the definitions of &#8220;large accelerated filer,&#8221; &#8220;accelerated filer,&#8221; &#8220;smaller reporting company,&#8221; and &#8220;emerging growth company&#8221; in Rule 12b-2 of the Exchange Act.</p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:3.6pt;padding-right:3.6pt;width:100%;"><tr><td style="vertical-align:top;width:20.82%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:10pt;text-align:center;text-indent:-10pt;margin:0pt;"><ix:nonNumeric format="ixt-sec:entityfilercategoryen" contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ" name="dei:EntityFilerCategory" id="Narr_02Szcr2JeEa2K5lw2u_5XA"><span style="font-size:9pt;">Large&#160;accelerated&#160;filer</span></ix:nonNumeric><span style="font-size:9pt;">&#160;</span><span style="font-family:'Times New Roman';">&#8999;</span></p></td><td style="vertical-align:top;width:16.65%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:center;margin:0pt;">Accelerated filer&#160;<span style="font-family:'Times New Roman';font-size:10pt;">&#9723;</span></p></td><td style="vertical-align:top;width:19.63%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:center;margin:0pt;">Non-accelerated filer&#160;<span style="font-family:'Times New Roman';font-size:10pt;">&#9723;</span></p></td><td style="vertical-align:top;width:21.46%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-size:9pt;">Smaller reporting company&#160;</span><ix:nonNumeric format="ixt-sec:boolballotbox" contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ" name="dei:EntitySmallBusiness" id="Narr_gE0F0m0c5EKE0gvCa1GXbQ"><span style="font-family:'Segoe UI Symbol';font-size:9pt;">&#9744;</span></ix:nonNumeric><span style="font-size:9pt;"> </span></p></td><td style="vertical-align:top;width:21.41%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-size:9pt;">Emerging growth company&#160;</span><ix:nonNumeric format="ixt-sec:boolballotbox" contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ" name="dei:EntityEmergingGrowthCompany" id="Narr_FMRj-RPxYUWwFqqqU3EZvQ"><span style="font-family:'Segoe UI Symbol';font-size:9pt;">&#9744;</span></ix:nonNumeric><span style="font-size:9pt;"> </span></p></td></tr><tr><td style="vertical-align:top;width:20.82%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:10pt;text-align:center;text-indent:-10pt;margin:0pt;"><span style="font-size:5pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:top;width:16.65%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-size:5pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:top;width:19.63%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-size:5pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:top;width:21.46%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-size:5pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:top;width:21.41%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-size:5pt;visibility:hidden;">&#8203;</span></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 6pt 0pt;">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. <span style="font-family:'Times New Roman';">&#9723;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 6pt 0pt;">Indicate by check mark whether the registrant is a shell company (as defined in Exchange Act Rule&#160;12b-2).&#160;Yes&#160;<ix:nonNumeric format="ixt-sec:boolballotbox" contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ" name="dei:EntityShellCompany" id="Narr_538edh0BOUK2AORenED-YA"><span style="font-family:'Segoe UI Symbol';">&#9744;</span></ix:nonNumeric><span style="white-space:pre-wrap;">  No&#160;</span><span style="font-family:'Times New Roman';">&#8999;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">The number of shares outstanding of the issuer&#8217;s common stock as of October 18, 2024 was <ix:nonFraction unitRef="Unit_Standard_shares_YK1c03HsOkOiDLLsAeYHoA" format="ixt:numdotdecimal" scale="0" contextRef="As_Of_10_18_2024_efSZE3afwUWQ72isHwphYg" decimals="INF" name="dei:EntityCommonStockSharesOutstanding" id="Narr_Ls4OdFV9UkafpDWjhWr41g">35,592,558</ix:nonFraction> (excluding treasury shares of 5,530,807). </p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:3pt;visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1pt;padding-bottom:1pt;padding-top:1pt;border-bottom:3.0pt solid #000000;border-top:1px solid #000000;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 12pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p><p style="display:none;line-height:0pt;text-align:center;margin:0pt;"><span style="font-family:'Times New Roman','Times','serif';font-size:0pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></div></div></div>
<div style="background-color:#000000;clear:both;height:2pt;page-break-after:always;width:79.3%;border:0;margin:30pt 10.35% 30pt 10.35%;"></div><div style="max-width:100%;padding-left:10.29%;padding-right:10.29%;position:relative;"><div style="margin-top:21.6pt;min-height:41.4pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 30pt 0pt;"><a href="#Toc"><span style="font-style:normal;font-weight:normal;">Table of Contents</span></a></p></div><div style="clear:both;margin-left:-10.0pt;margin-right:-10.0pt;max-width:100%;position:relative;width:calc(100% + 20.0pt);"><div style="padding-left:10pt;padding-right:10pt;position:relative;width:100%;"><a id="_d798c3ad_11c1_42fb_80a9_28f5eb9fb51f"></a><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">COMFORT SYSTEMS USA, INC.</b></p><a id="Toc"></a><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">INDEX TO FORM 10-Q</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">FOR THE QUARTER ENDED SEPTEMBER 30, 2024</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:92.86%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:top;width:1.77%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="position:absolute;top:0pt;width:100%;"></div></div></td><td style="vertical-align:bottom;width:5.36%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"></div></div></td></tr><tr><td style="vertical-align:bottom;width:92.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;margin:0pt 0pt 1pt 0pt;"><span style="font-size:9pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:top;width:1.77%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;line-height:1.27;text-align:center;margin:0pt 0pt 1pt 0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;width:5.36%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;line-height:1.27;text-align:center;margin:0pt 0pt 1pt 0pt;"><b style="font-weight:bold;">Page</b></p></td></tr><tr><td style="vertical-align:top;width:92.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;padding-left:10pt;text-indent:-10pt;margin:0pt;"><a href="#PARTIFINANCIALINFORMATION_22365"><span style="font-style:normal;font-weight:normal;">Part&#160;I&#8212;Financial Information</span></a></p></td><td style="vertical-align:top;width:1.77%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;text-align:right;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;width:5.36%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;text-align:right;margin:0pt;">2</p></td></tr><tr><td style="vertical-align:top;width:92.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;padding-left:10pt;text-indent:-10pt;margin:0pt 0pt 0pt 10pt;"><a href="#Item1FinancialStatements_828498"><span style="font-style:normal;font-weight:normal;">Item&#160;1&#8212;Financial Statements</span></a></p></td><td style="vertical-align:top;width:1.77%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;text-align:right;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;width:5.36%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;text-align:right;margin:0pt;">2</p></td></tr><tr><td style="vertical-align:top;width:92.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;padding-left:10pt;text-indent:-10pt;margin:0pt 0pt 0pt 20pt;"><a href="#CONSOLIDATEDBALANCESHEETS_635296"><span style="font-style:normal;font-weight:normal;">Consolidated Balance Sheets</span></a></p></td><td style="vertical-align:top;width:1.77%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;text-align:right;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.36%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;text-align:right;margin:0pt;">2</p></td></tr><tr><td style="vertical-align:top;width:92.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;padding-left:10pt;text-indent:-10pt;margin:0pt 0pt 0pt 20pt;"><a href="#CONSOLIDATEDSTATEMENTSOFOPERATIONS_54357"><span style="font-style:normal;font-weight:normal;">Consolidated Statements of Operations</span></a></p></td><td style="vertical-align:top;width:1.77%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;text-align:right;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.36%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;text-align:right;margin:0pt;">3</p></td></tr><tr><td style="vertical-align:top;width:92.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;padding-left:10pt;text-indent:-10pt;margin:0pt 0pt 0pt 20pt;"><a href="#STATEMENTSOFSTOCKHOLDERSEQUITY_584218"><span style="font-style:normal;font-weight:normal;">Consolidated Statements of Stockholders&#8217; Equity</span></a></p></td><td style="vertical-align:top;width:1.77%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;text-align:right;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.36%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;text-align:right;margin:0pt;">4</p></td></tr><tr><td style="vertical-align:top;width:92.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;padding-left:10pt;text-indent:-10pt;margin:0pt 0pt 0pt 20pt;"><a href="#CONSOLIDATEDSTATEMENTSOFCASHFLOWS_486675"><span style="font-style:normal;font-weight:normal;">Consolidated Statements of Cash Flows</span></a></p></td><td style="vertical-align:top;width:1.77%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;text-align:right;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.36%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;text-align:right;margin:0pt;">6</p></td></tr><tr><td style="vertical-align:top;width:92.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;padding-left:10pt;text-indent:-10pt;margin:0pt 0pt 0pt 20pt;"><a href="#CONDENSEDNOTESTOCONSOLIDATEDFINANCIALSTA"><span style="font-style:normal;font-weight:normal;">Condensed Notes to Consolidated Financial Statements</span></a></p></td><td style="vertical-align:top;width:1.77%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;text-align:right;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.36%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;text-align:right;margin:0pt;">7</p></td></tr><tr><td style="vertical-align:top;width:92.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;padding-left:10pt;text-indent:-10pt;margin:0pt 0pt 0pt 10pt;"><a href="#Item2ManagementsDiscussionandAnalysisofF"><span style="font-style:normal;font-weight:normal;">Item&#160;2&#8212;Management&#8217;s Discussion and Analysis of Financial Condition and Results of Operations</span></a></p></td><td style="vertical-align:top;width:1.77%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;text-align:right;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.36%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;text-align:right;margin:0pt;">23</p></td></tr><tr><td style="vertical-align:top;width:92.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;padding-left:10pt;text-indent:-10pt;margin:0pt 0pt 0pt 10pt;"><a href="#Item3QuantitativeandQualitativeDisclosur"><span style="font-style:normal;font-weight:normal;">Item&#160;3&#8212;Quantitative and Qualitative Disclosures about Market Risk</span></a></p></td><td style="vertical-align:top;width:1.77%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;text-align:right;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.36%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;text-align:right;margin:0pt;">34</p></td></tr><tr><td style="vertical-align:top;width:92.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;padding-left:10pt;text-indent:-10pt;margin:0pt 0pt 0pt 10pt;"><a href="#Item4ControlsandProcedures_993069"><span style="font-style:normal;font-weight:normal;">Item&#160;4&#8212;Controls and Procedures</span></a></p></td><td style="vertical-align:top;width:1.77%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;text-align:right;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.36%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;text-align:right;margin:0pt;">34</p></td></tr><tr><td style="vertical-align:top;width:92.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;padding-left:10pt;text-indent:-10pt;margin:0pt;"><a href="#PARTIIOTHERINFORMATION_876059"><span style="font-style:normal;font-weight:normal;">Part&#160;II&#8212;Other Information</span></a></p></td><td style="vertical-align:top;width:1.77%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;text-align:right;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;width:5.36%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;text-align:right;margin:0pt;">35</p></td></tr><tr><td style="vertical-align:top;width:92.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;padding-left:10pt;text-indent:-10pt;margin:0pt 0pt 0pt 10pt;"><a href="#Item1LegalProceedings_592048"><span style="font-style:normal;font-weight:normal;">Item&#160;1&#8212;Legal Proceedings</span></a></p></td><td style="vertical-align:top;width:1.77%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;text-align:right;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.36%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;text-align:right;margin:0pt;">35</p></td></tr><tr><td style="vertical-align:top;width:92.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;padding-left:10pt;text-indent:-10pt;margin:0pt 0pt 0pt 10pt;"><a href="#Item1ARiskFactors_3757"><span style="font-style:normal;font-weight:normal;">Item&#160;1A&#8212;Risk Factors</span></a></p></td><td style="vertical-align:top;width:1.77%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;text-align:right;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.36%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;text-align:right;margin:0pt;">35</p></td></tr><tr><td style="vertical-align:top;width:92.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;padding-left:10pt;text-indent:-10pt;margin:0pt 0pt 0pt 10pt;"><a href="#Item2UnregisteredSalesofEquitySecurities"><span style="font-style:normal;font-weight:normal;">Item&#160;2&#8212;Unregistered Sales of Equity Securities and Use of Proceeds</span></a></p></td><td style="vertical-align:top;width:1.77%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;text-align:right;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.36%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;text-align:right;margin:0pt;">35</p></td></tr><tr><td style="vertical-align:top;width:92.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;padding-left:10pt;text-indent:-10pt;margin:0pt 0pt 0pt 10pt;"><a href="#Other_Information"><span style="font-style:normal;font-weight:normal;">Item 5&#8212;Other Information</span></a></p></td><td style="vertical-align:top;width:1.77%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;text-align:right;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.36%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;text-align:right;margin:0pt;">36</p></td></tr><tr><td style="vertical-align:top;width:92.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;padding-left:10pt;text-indent:-10pt;margin:0pt 0pt 0pt 10pt;"><a href="#Item6Exhibits_786371"><span style="font-style:normal;font-weight:normal;">Item&#160;6&#8212;Exhibits</span></a></p></td><td style="vertical-align:top;width:1.77%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;text-align:right;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.36%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;text-align:right;margin:0pt;">37</p></td></tr><tr><td style="vertical-align:top;width:92.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;padding-left:10pt;text-indent:-10pt;margin:0pt 0pt 0pt 10pt;"><a href="#SIGNATURES_727857"><span style="font-style:normal;font-weight:normal;">Signatures</span></a></p></td><td style="vertical-align:top;width:1.77%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;text-align:right;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.36%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;text-align:right;margin:0pt;">38</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="display:none;line-height:0pt;margin:0pt;"><span style="font-family:'Times New Roman','Times','serif';font-size:0pt;visibility:hidden;">&#8203;</span></p></div></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:24pt 0pt 0pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></div></div>
<div style="background-color:#000000;clear:both;height:2pt;page-break-after:always;width:79.41%;border:0;margin:30pt 10.29% 30pt 10.29%;"></div><div style="max-width:100%;padding-left:10.29%;padding-right:10.29%;position:relative;"><div style="margin-top:21.6pt;min-height:41.4pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 30pt 0pt;"><a href="#Toc"><span style="font-style:normal;font-weight:normal;">Table of Contents</span></a></p></div><div style="clear:both;margin-left:-10.0pt;margin-right:-10.0pt;max-width:100%;position:relative;width:calc(100% + 20.0pt);"><div style="padding-left:10pt;padding-right:10pt;position:relative;width:100%;"><a id="_6e63610c_186c_4234_a2aa_c99d6e328654"></a><a id="PARTIFINANCIALINFORMATION_22365"></a><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">PART I&#8212;FINANCIAL INFORMATION</b></p><a id="Item1FinancialStatements_828498"></a><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;white-space:pre-wrap;">Item 1.  </b><span style="font-style:italic;font-weight:bold;">Financial Statements</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 12pt 0pt;"><b style="font-weight:bold;">COMFORT SYSTEMS USA,&#160;INC.</b></p><a id="CONSOLIDATEDBALANCESHEETS_635296"></a><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 12pt 0pt;"><b style="font-weight:bold;">CONSOLIDATED BALANCE SHEETS</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">(In Thousands, Except Share Amounts)</b></p><a id="_06a45c18_6e63_4e33_9112_606482aea4b0"></a><a id="Tc_qrH-KypyhEabvLBNRUrNwQ_1_2"></a><a id="Tc_uyG5f6brpESOrZmy5zxgeQ_1_5"></a><a id="Tc_S4IsS9mzTEKkuPBLdOVCHQ_2_2"></a><a id="Tc_Dai4i8j7DUOy3miBsR239w_2_5"></a><a id="Tc_5ooTZyxEgkm46daTlNfHng_3_2"></a><a id="Tc_8gQ8y8rCJ0u-H0M94Ovtuw_4_0"></a><a id="Tc_4nvq8AcmikCaIfqVYd219A_5_0"></a><a id="Tc_QSjhG3JDWECC7yE87UE8nQ_6_0"></a><a id="Tc_7UrWfRermEK-uG2TV3NPqQ_6_2"></a><a id="Tc_gawmFdrPaE2X1LlkWAPkMg_6_5"></a><a id="Tc_tnM5ztRr4kOvlWouZkSF5Q_7_0"></a><a id="Tc_6PLJtbKZqkGNR3lOSTjA9A_8_0"></a><a id="Tc_ybEYdCSxtE-cm3g4i0GeKA_9_0"></a><a id="Tc_jzDAanvk7Ue8EOLuC-n5Dg_10_0"></a><a id="Tc_q4BcGOY8C06ccZbtvKCzxg_11_0"></a><a id="Tc_BEtOH9jAMkqLCnEG1wVWaQ_12_0"></a><a id="Tc_iahP3V9Bn0GUU9s8UW5xXA_13_0"></a><a id="Tc_LmpGaOzUaEGm9Fh4zNvpWg_14_0"></a><a id="Tc_SzydSfOwDU-5vq-eKsXf8g_15_0"></a><a id="Tc_1f71kcgtD0K51rwvFvnqrw_16_0"></a><a id="Tc_7GKPejKdgEGk8i3Vt8InOQ_17_0"></a><a id="Tc_2f1DH1lpdUunStogi32xhg_18_0"></a><a id="Tc_VwWV6fQUUU2YBUsZHVDtZQ_19_0"></a><a id="Tc_Lx3BIKPFhkqh0cqn3vcz3g_20_0"></a><a id="Tc_2blkaKeZ906-XaOVsGp8fw_20_2"></a><a id="Tc_iiJQxOUNHkq0QeCC8rDOSQ_20_5"></a><a id="Tc__jt2LNz3ukK5Uz16LlpDUQ_21_0"></a><a id="Tc_0fk-8Vb6PEuaKzJqMaBXuA_22_0"></a><a id="Tc_36cXvXNCJ0-3LMvwutKLzQ_23_0"></a><a id="Tc_-DI5Vz5lTkeiIiHsSZRGnA_23_2"></a><a id="Tc_k3PA4UHKQEGprUmmIMVvAw_23_5"></a><a id="Tc_WoMSMoIMBU6L9fCGTYO7mg_24_0"></a><a id="Tc_LvMq9PfsCU6SFq_pFfg1uA_25_0"></a><a id="Tc_31pBrJB_Ak2aQ8yBAMwJLw_26_0"></a><a id="Tc_0ihb-LmFvUyf98V-b9Fxig_27_0"></a><a id="Tc_eE2b3n-VSU6sNTUdnD29KA_28_0"></a><a id="Tc_S6iQHBwrW02CnIdEzp0ABg_29_0"></a><a id="Tc_M0LPVTbcVEi9rkL7osgYjg_30_0"></a><a id="Tc_jRoOK6cc-0yfQHRWVZ4xHg_31_0"></a><a id="Tc_X9nY9MbIDkuilwxtgan32g_32_0"></a><a id="Tc_OBpRlVDYVUqYcI6lk0EowA_33_0"></a><a id="Tc_7h-3q0LpfUqYEZzLM6T_Jg_34_0"></a><a id="Tc_YEa4JbKL7EOIgt6ebxAxpA_35_0"></a><a id="Tc_ESUp-cX3rkSNDCsUgORr3Q_36_0"></a><a id="Tc_g8ezRJGDL06WmncXGV2Ixg_37_0"></a><a id="_2c61e48e_64b7_45d8_ae80_edffd2819577"></a><a id="_2c61e48e_64b7_45d8_ae80_edffd2819577_2"></a><a id="_2c61e48e_64b7_45d8_ae80_edffd2819577_3"></a><a id="Tc_h5dVrBnk60qSY8_yYkDWUw_38_0"></a><a id="Tc_IWdZMGsvnECVWuBpdKQvjg_39_0"></a><a id="Tc_oGcbfkxSGkmSUKTzTm6ERw_40_0"></a><a id="Tc_uhUr6cJyUUO4csehFZCp4g_41_0"></a><a id="Tc_UmhlZ6PdKEyobxtHVST2kA_42_0"></a><a id="Tc_LhryAf6sl0S6HPx7cO8Yww_43_0"></a><a id="Tc_C24tni3ZYku2vesjkunk4A_43_2"></a><a id="Tc_thgTCYSCsEeidMu8QVZAWw_43_5"></a><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:-0.5709877%;padding-left:0pt;padding-right:0pt;width:101.14%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:70.61%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.89%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:13.32%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.89%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.82%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:70.61%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:14.51%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">September 30, </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.01%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">December 31, </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:70.61%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:14.51%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2024</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.01%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2023</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td></tr><tr><td style="vertical-align:bottom;width:70.61%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:14.51%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">(Unaudited)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:70.61%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:center;margin:0pt;"><b style="font-size:9.5pt;font-weight:bold;">ASSETS</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9.5pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-size:9.5pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-size:9.5pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9.5pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9.5pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9.5pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:70.61%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-size:9.5pt;">CURRENT ASSETS:</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9.5pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9.5pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9.5pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9.5pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9.5pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9.5pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:70.61%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0pt 12pt;"><span style="font-size:9.5pt;">Cash and cash equivalents</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9.5pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-size:9.5pt;">$</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><span style="font-size:9.5pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="As_Of_9_30_2024_um13j0l3zk2ITGaiED1DFA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:CashAndCashEquivalentsAtCarryingValue" scale="3" id="Tc_qRQFVfXqSEeA571mewIZkA_6_3">415,583</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9.5pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-size:9.5pt;">$</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><span style="font-size:9.5pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="As_Of_12_31_2023_X7eqeHRTF0mRLJW7InVDdA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:CashAndCashEquivalentsAtCarryingValue" scale="3" id="Tc_jKdRiCata0un_vL4IiHSsQ_6_6">205,150</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:70.61%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0pt 12pt;"><span style="font-size:9.5pt;">Billed accounts receivable, less allowance for credit losses of </span><span style="font-size:9.5pt;">$<ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="As_Of_9_30_2024_um13j0l3zk2ITGaiED1DFA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AllowanceForDoubtfulAccountsReceivableCurrent" scale="3" id="Narr_AyKsat11V0KiTvH93YdXbg">15,280</ix:nonFraction></span><span style="font-size:9.5pt;"> and </span><span style="font-size:9.5pt;">$<ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="As_Of_12_31_2023_X7eqeHRTF0mRLJW7InVDdA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AllowanceForDoubtfulAccountsReceivableCurrent" scale="3" id="Narr_4rf--LH2O0yfidT5Ej0kqQ">11,926</ix:nonFraction></span><span style="font-size:9.5pt;">, respectively</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9.5pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-size:9.5pt;">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><span style="font-size:9.5pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="As_Of_9_30_2024_um13j0l3zk2ITGaiED1DFA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BilledContractReceivables" scale="3" id="Tc_VqlfYR-mM0GYJiX5qqz86Q_7_3">1,730,960</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9.5pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-size:9.5pt;">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><span style="font-size:9.5pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="As_Of_12_31_2023_X7eqeHRTF0mRLJW7InVDdA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BilledContractReceivables" scale="3" id="Tc_x5dNKp3mE06bKEMzPh0wbw_7_6">1,318,926</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:70.61%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0pt 12pt;"><span style="font-size:9.5pt;">Unbilled accounts receivable, less allowance for credit losses of </span><span style="font-size:9.5pt;">$<ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="As_Of_9_30_2024_um13j0l3zk2ITGaiED1DFA" decimals="-3" format="ixt:numdotdecimal" name="fix:UnbilledAccountsReceivableAllowanceForCreditLoss" scale="3" id="Narr_AayZu5EZjkilrep8zkIJYg">953</ix:nonFraction></span><span style="font-size:9.5pt;"> and </span><span style="font-size:9.5pt;">$<ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="As_Of_12_31_2023_X7eqeHRTF0mRLJW7InVDdA" decimals="-3" format="ixt:numdotdecimal" name="fix:UnbilledAccountsReceivableAllowanceForCreditLoss" scale="3" id="Narr_b2_t6sKtRkiGReqQIUDsKg">850</ix:nonFraction></span><span style="font-size:9.5pt;">, respectively</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9.5pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-size:9.5pt;">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><span style="font-size:9.5pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="As_Of_9_30_2024_um13j0l3zk2ITGaiED1DFA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:UnbilledContractsReceivable" scale="3" id="Tc_LE0Zf-ZD8UiskkO-L6F9LA_8_3">89,332</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9.5pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-size:9.5pt;">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><span style="font-size:9.5pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="As_Of_12_31_2023_X7eqeHRTF0mRLJW7InVDdA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:UnbilledContractsReceivable" scale="3" id="Tc_7bPdyd_Jv0u_YSMX6ijGhw_8_6">72,774</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:70.61%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0pt 12pt;"><span style="font-size:9.5pt;">Other receivables, less allowance for credit losses of </span><span style="font-size:9.5pt;">$<ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="As_Of_9_30_2024_um13j0l3zk2ITGaiED1DFA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AllowanceForDoubtfulOtherReceivablesCurrent" scale="3" id="Narr_ZWB623gd_kuw-3Ot6j3qJQ">515</ix:nonFraction></span><span style="font-size:9.5pt;"> and </span><span style="font-size:9.5pt;">$<ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="As_Of_12_31_2023_X7eqeHRTF0mRLJW7InVDdA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AllowanceForDoubtfulOtherReceivablesCurrent" scale="3" id="Narr_L_9ODhwHTEyFH2VGyzusUQ">522</ix:nonFraction></span><span style="font-size:9.5pt;">, respectively</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9.5pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-size:9.5pt;">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><span style="font-size:9.5pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="As_Of_9_30_2024_um13j0l3zk2ITGaiED1DFA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:NontradeReceivablesCurrent" scale="3" id="Tc_OBEnjlV0_EKHhS-_aElmfQ_9_3">135,323</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9.5pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-size:9.5pt;">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><span style="font-size:9.5pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="As_Of_12_31_2023_X7eqeHRTF0mRLJW7InVDdA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:NontradeReceivablesCurrent" scale="3" id="Tc_yOHO8-cs_0SgOEcnrenDAA_9_6">166,319</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:70.61%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0pt 12pt;"><span style="font-size:9.5pt;">Inventories</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9.5pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-size:9.5pt;">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><span style="font-size:9.5pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="As_Of_9_30_2024_um13j0l3zk2ITGaiED1DFA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:InventoryNet" scale="3" id="Tc_JdFUII14Z0OEZPbxhc8HPg_10_3">55,680</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9.5pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-size:9.5pt;">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><span style="font-size:9.5pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="As_Of_12_31_2023_X7eqeHRTF0mRLJW7InVDdA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:InventoryNet" scale="3" id="Tc_Ddz3oFdPi0iS7G-N95vJaQ_10_6">65,538</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:70.61%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0pt 12pt;"><span style="font-size:9.5pt;">Prepaid expenses and other</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9.5pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-size:9.5pt;">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><span style="font-size:9.5pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="As_Of_9_30_2024_um13j0l3zk2ITGaiED1DFA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:PrepaidExpenseAndOtherAssetsCurrent" scale="3" id="Tc_XktR5Ih19kKhSSKwgRqUuQ_11_3">36,087</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9.5pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-size:9.5pt;">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><span style="font-size:9.5pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="As_Of_12_31_2023_X7eqeHRTF0mRLJW7InVDdA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:PrepaidExpenseAndOtherAssetsCurrent" scale="3" id="Tc_N4APSQRfpESPcI0fyJBx5A_11_6">54,309</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:70.61%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0pt 12pt;"><span style="font-size:9.5pt;">Costs and estimated earnings in excess of billings, less allowance for credit losses of </span><span style="font-size:9.5pt;">$<ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="As_Of_9_30_2024_um13j0l3zk2ITGaiED1DFA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:ContractWithCustomerAssetAccumulatedAllowanceForCreditLossCurrent" scale="3" id="Narr_Mk5Af-zHMEORr-D-JTzGHQ">200</ix:nonFraction></span><span style="font-size:9.5pt;"> and </span><span style="font-size:9.5pt;">$<ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="As_Of_12_31_2023_X7eqeHRTF0mRLJW7InVDdA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:ContractWithCustomerAssetAccumulatedAllowanceForCreditLossCurrent" scale="3" id="Narr_Rg1YmbA-K0mW0U2I9WZlYA">79</ix:nonFraction></span><span style="font-size:9.5pt;">, respectively</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9.5pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-size:9.5pt;">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.32%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><span style="font-size:9.5pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="As_Of_9_30_2024_um13j0l3zk2ITGaiED1DFA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:ContractWithCustomerAssetNetCurrent" scale="3" id="Tc_Or05twPqhk-Q5WdS2TyFhw_12_3">73,934</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9.5pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-size:9.5pt;">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.82%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><span style="font-size:9.5pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="As_Of_12_31_2023_X7eqeHRTF0mRLJW7InVDdA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:ContractWithCustomerAssetNetCurrent" scale="3" id="Tc_HJ9WXaXm7EietZTEuHHsPg_12_6">28,084</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:70.61%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0pt 18pt;"><span style="font-size:9.5pt;">Total current assets</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9.5pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-size:9.5pt;">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><span style="font-size:9.5pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="As_Of_9_30_2024_um13j0l3zk2ITGaiED1DFA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AssetsCurrent" scale="3" id="Tc_HVWcKATbTUeYVUzvyQZXDg_13_3">2,536,899</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9.5pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-size:9.5pt;">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><span style="font-size:9.5pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="As_Of_12_31_2023_X7eqeHRTF0mRLJW7InVDdA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AssetsCurrent" scale="3" id="Tc_jxHJ3Hev9km0DkJeSaOvgA_13_6">1,911,100</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:70.61%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-size:9.5pt;">PROPERTY AND EQUIPMENT, NET</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9.5pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-size:9.5pt;">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><span style="font-size:9.5pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="As_Of_9_30_2024_um13j0l3zk2ITGaiED1DFA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:PropertyPlantAndEquipmentNet" scale="3" id="Tc_Zkj6kNbVxUuyn_Zq2CzqKg_14_3">250,150</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9.5pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-size:9.5pt;">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><span style="font-size:9.5pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="As_Of_12_31_2023_X7eqeHRTF0mRLJW7InVDdA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:PropertyPlantAndEquipmentNet" scale="3" id="Tc_oBtNKYl6NEWMaiGARvzACA_14_6">208,568</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:70.61%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-size:9.5pt;">LEASE RIGHT-OF-USE ASSET</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9.5pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9.5pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><span style="font-size:9.5pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="As_Of_9_30_2024_um13j0l3zk2ITGaiED1DFA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OperatingLeaseRightOfUseAsset" scale="3" id="Tc_qT-ThHBcEUSVOLBgA9s8pQ_15_3">225,301</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9.5pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9.5pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><span style="font-size:9.5pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="As_Of_12_31_2023_X7eqeHRTF0mRLJW7InVDdA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OperatingLeaseRightOfUseAsset" scale="3" id="Tc_6GadePNGr0Crb0RwhLn1TA_15_6">205,712</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:70.61%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-size:9.5pt;">GOODWILL</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9.5pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-size:9.5pt;">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><span style="font-size:9.5pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="As_Of_9_30_2024_um13j0l3zk2ITGaiED1DFA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:Goodwill" scale="3" id="Tc_Qz9dUHJUOE6ad-tjQiDF1A_16_3">875,193</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9.5pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-size:9.5pt;">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><span style="font-size:9.5pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="As_Of_12_31_2023_X7eqeHRTF0mRLJW7InVDdA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:Goodwill" scale="3" id="Tc_dEd6W9K4mEK_6VT44u1Gbg_16_6">666,834</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:70.61%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-size:9.5pt;">IDENTIFIABLE INTANGIBLE ASSETS, NET</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9.5pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-size:9.5pt;">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><span style="font-size:9.5pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="As_Of_9_30_2024_um13j0l3zk2ITGaiED1DFA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IntangibleAssetsNetExcludingGoodwill" scale="3" id="Tc_fSvpawpEfkG3h7xTjqOIaw_17_3">456,459</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9.5pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-size:9.5pt;">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><span style="font-size:9.5pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="As_Of_12_31_2023_X7eqeHRTF0mRLJW7InVDdA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IntangibleAssetsNetExcludingGoodwill" scale="3" id="Tc_o8YmZ4VD1UKB2KxSUp1e5Q_17_6">280,397</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:70.61%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-size:9.5pt;">DEFERRED TAX ASSETS</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9.5pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9.5pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><span style="font-size:9.5pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="As_Of_9_30_2024_um13j0l3zk2ITGaiED1DFA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DeferredIncomeTaxAssetsNet" scale="3" id="Tc_OD2E2KRPjUOUb-gSY63-WQ_18_3">50,234</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9.5pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9.5pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><span style="font-size:9.5pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="As_Of_12_31_2023_X7eqeHRTF0mRLJW7InVDdA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DeferredIncomeTaxAssetsNet" scale="3" id="Tc_Rv3xkr1lMUacYIzGp0E8iQ_18_6">17,723</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:70.61%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-size:9.5pt;">OTHER NONCURRENT ASSETS</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9.5pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-size:9.5pt;">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.32%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><span style="font-size:9.5pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="As_Of_9_30_2024_um13j0l3zk2ITGaiED1DFA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OtherAssetsNoncurrent" scale="3" id="Tc_pQpTxjVZhUeOpWp-04fn5w_19_3">18,529</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9.5pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-size:9.5pt;">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.82%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><span style="font-size:9.5pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="As_Of_12_31_2023_X7eqeHRTF0mRLJW7InVDdA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OtherAssetsNoncurrent" scale="3" id="Tc_kbimVpyw9UGDhQnnwNnUZg_19_6">15,245</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:70.61%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0pt 18pt;"><span style="font-size:9.5pt;">Total assets</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9.5pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-size:9.5pt;">$</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.32%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><span style="font-size:9.5pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="As_Of_9_30_2024_um13j0l3zk2ITGaiED1DFA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:Assets" scale="3" id="Tc_Nb35sOwNQkmF3s1uSnkwPw_20_3">4,412,765</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9.5pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-size:9.5pt;">$</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.82%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><span style="font-size:9.5pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="As_Of_12_31_2023_X7eqeHRTF0mRLJW7InVDdA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:Assets" scale="3" id="Tc_8xxWxH7iakStZQFtM0wu7g_20_6">3,305,579</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:70.61%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:center;margin:0pt;"><b style="font-size:9.5pt;font-weight:bold;">LIABILITIES AND STOCKHOLDERS&#8217; EQUITY</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9.5pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9.5pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9.5pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9.5pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9.5pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9.5pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:70.61%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-size:9.5pt;">CURRENT LIABILITIES:</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9.5pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9.5pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9.5pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9.5pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9.5pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9.5pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:70.61%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0pt 12pt;"><span style="font-size:9.5pt;">Current maturities of long-term debt</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9.5pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-size:9.5pt;">$</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><span style="font-size:9.5pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="As_Of_9_30_2024_um13j0l3zk2ITGaiED1DFA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:LongTermDebtCurrent" scale="3" id="Tc_hmPDUtw2J0utL8RAqlzK_A_23_3">6,046</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9.5pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-size:9.5pt;">$</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><span style="font-size:9.5pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="As_Of_12_31_2023_X7eqeHRTF0mRLJW7InVDdA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:LongTermDebtCurrent" scale="3" id="Tc_h1DuT72ujUGuIaYFmtfhCQ_23_6">4,867</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:70.61%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0pt 12pt;"><span style="font-size:9.5pt;">Accounts payable</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9.5pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9.5pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><span style="font-size:9.5pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="As_Of_9_30_2024_um13j0l3zk2ITGaiED1DFA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AccountsPayableCurrent" scale="3" id="Tc_2RG-AJHIGkOjLAmYD7R_cA_24_3">603,546</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9.5pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9.5pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><span style="font-size:9.5pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="As_Of_12_31_2023_X7eqeHRTF0mRLJW7InVDdA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AccountsPayableCurrent" scale="3" id="Tc_am4p2lbLikqWFyUUCzO1eQ_24_6">419,962</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:70.61%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0pt 12pt;"><span style="font-size:9.5pt;">Accrued compensation and benefits</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9.5pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-size:9.5pt;">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><span style="font-size:9.5pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="As_Of_9_30_2024_um13j0l3zk2ITGaiED1DFA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:EmployeeRelatedLiabilitiesCurrent" scale="3" id="Tc_WtogoJ1jvECS_lmZcHHAwg_25_3">258,174</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9.5pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-size:9.5pt;">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><span style="font-size:9.5pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="As_Of_12_31_2023_X7eqeHRTF0mRLJW7InVDdA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:EmployeeRelatedLiabilitiesCurrent" scale="3" id="Tc_1naCcq_Iq0SZzTryewdRKQ_25_6">169,136</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:70.61%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0pt 12pt;"><span style="font-size:9.5pt;">Billings in excess of costs and estimated earnings and deferred revenue</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9.5pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-size:9.5pt;">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><span style="font-size:9.5pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="As_Of_9_30_2024_um13j0l3zk2ITGaiED1DFA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:ContractWithCustomerLiabilityCurrent" scale="3" id="Tc_HgKTXWyETUyfM-qtMS6VIA_26_3">1,197,532</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9.5pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-size:9.5pt;">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><span style="font-size:9.5pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="As_Of_12_31_2023_X7eqeHRTF0mRLJW7InVDdA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:ContractWithCustomerLiabilityCurrent" scale="3" id="Tc_tUWdSIsTr0SIu2mt_ewCUA_26_6">909,538</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:70.61%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0pt 12pt;"><span style="font-size:9.5pt;">Accrued self-insurance</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9.5pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-size:9.5pt;">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><span style="font-size:9.5pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="As_Of_9_30_2024_um13j0l3zk2ITGaiED1DFA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:SelfInsuranceReserveCurrent" scale="3" id="Tc_O7ptFaO-GEaxqwitaUOikg_27_3">36,924</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9.5pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-size:9.5pt;">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><span style="font-size:9.5pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="As_Of_12_31_2023_X7eqeHRTF0mRLJW7InVDdA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:SelfInsuranceReserveCurrent" scale="3" id="Tc_WHu1FE8Rfk6Lc58KzRvw5Q_27_6">27,774</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:70.61%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0pt 12pt;"><span style="font-size:9.5pt;">Other current liabilities</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9.5pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-size:9.5pt;">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.32%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><span style="font-size:9.5pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="As_Of_9_30_2024_um13j0l3zk2ITGaiED1DFA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OtherLiabilitiesCurrent" scale="3" id="Tc_hWjX-Dqmmk6FxQx_V8XKog_28_3">326,921</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9.5pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-size:9.5pt;">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.82%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><span style="font-size:9.5pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="As_Of_12_31_2023_X7eqeHRTF0mRLJW7InVDdA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OtherLiabilitiesCurrent" scale="3" id="Tc_YO6UkLRb2kaLJAxteQ2ZXQ_28_6">189,928</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:70.61%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0pt 18pt;"><span style="font-size:9.5pt;">Total current liabilities</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9.5pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-size:9.5pt;">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><span style="font-size:9.5pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="As_Of_9_30_2024_um13j0l3zk2ITGaiED1DFA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:LiabilitiesCurrent" scale="3" id="Tc_OmjOhdhus0uIorPCeNs3aw_29_3">2,429,143</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9.5pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-size:9.5pt;">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><span style="font-size:9.5pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="As_Of_12_31_2023_X7eqeHRTF0mRLJW7InVDdA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:LiabilitiesCurrent" scale="3" id="Tc_Vj071CWRo0i-ITEUq9ArVg_29_6">1,721,205</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:70.61%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-size:9.5pt;">LONG-TERM DEBT</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9.5pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-size:9.5pt;">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><span style="font-size:9.5pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="As_Of_9_30_2024_um13j0l3zk2ITGaiED1DFA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:LongTermDebtNoncurrent" scale="3" id="Tc_Qo6Qlxbax0qZvEruUBHNMA_30_3">62,315</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9.5pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-size:9.5pt;">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><span style="font-size:9.5pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="As_Of_12_31_2023_X7eqeHRTF0mRLJW7InVDdA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:LongTermDebtNoncurrent" scale="3" id="Tc_jmrO_-dYxkOE9feyNnMaIA_30_6">39,345</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:70.61%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-size:9.5pt;">LEASE LIABILITIES</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9.5pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9.5pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><span style="font-size:9.5pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="As_Of_9_30_2024_um13j0l3zk2ITGaiED1DFA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OperatingLeaseLiabilityNoncurrent" scale="3" id="Tc_XPCxNtVGuU-64Bw-2wZZ7g_31_3">208,268</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9.5pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-size:9.5pt;">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><span style="font-size:9.5pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="As_Of_12_31_2023_X7eqeHRTF0mRLJW7InVDdA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OperatingLeaseLiabilityNoncurrent" scale="3" id="Tc_ofTPe0-VGE6Bkji3feQSzg_31_6">188,136</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:70.61%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-size:9.5pt;">DEFERRED TAX LIABILITIES</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9.5pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-size:9.5pt;">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><span style="font-size:9.5pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="As_Of_9_30_2024_um13j0l3zk2ITGaiED1DFA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DeferredIncomeTaxLiabilitiesNet" scale="3" id="Tc_8ll4olHGLUyvW7ThNGimqw_32_3">1,120</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9.5pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-size:9.5pt;">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><span style="font-size:9.5pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="As_Of_12_31_2023_X7eqeHRTF0mRLJW7InVDdA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DeferredIncomeTaxLiabilitiesNet" scale="3" id="Tc_GwqWSTKZUE24e92cz5xOMg_32_6">1,120</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:70.61%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-size:9.5pt;">OTHER LONG-TERM LIABILITIES</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9.5pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-size:9.5pt;">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.32%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><span style="font-size:9.5pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="As_Of_9_30_2024_um13j0l3zk2ITGaiED1DFA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OtherLiabilitiesNoncurrent" scale="3" id="Tc_LTJjXVmP8U-4Hz54iLC7xg_33_3">124,197</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9.5pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-size:9.5pt;">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.82%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><span style="font-size:9.5pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="As_Of_12_31_2023_X7eqeHRTF0mRLJW7InVDdA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OtherLiabilitiesNoncurrent" scale="3" id="Tc_wXouJtBFOUyLShq1BU_8ZA_33_6">77,944</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:70.61%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0pt 18pt;"><span style="font-size:9.5pt;">Total liabilities</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9.5pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-size:9.5pt;">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><span style="font-size:9.5pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="As_Of_9_30_2024_um13j0l3zk2ITGaiED1DFA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:Liabilities" scale="3" id="Tc_HWrsSQ8kBEeMTxi8NYgUEw_34_3">2,825,043</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9.5pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-size:9.5pt;">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><span style="font-size:9.5pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="As_Of_12_31_2023_X7eqeHRTF0mRLJW7InVDdA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:Liabilities" scale="3" id="Tc_9evTBq4jqku3PnR-6hFOEQ_34_6">2,027,750</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:70.61%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-size:9.5pt;">COMMITMENTS AND CONTINGENCIES</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9.5pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9.5pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9.5pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9.5pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9.5pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9.5pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:70.61%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-size:9.5pt;">STOCKHOLDERS&#8217; EQUITY:</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9.5pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9.5pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9.5pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9.5pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9.5pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9.5pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:70.61%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0pt 12pt;"><span style="font-size:9.5pt;">Preferred stock, </span><span style="font-size:9.5pt;">$<ix:nonFraction unitRef="Unit_Divide_USD_shares_0ZfRDiWNfk6kp61F6IdjQA" contextRef="As_Of_9_30_2024_um13j0l3zk2ITGaiED1DFA" decimals="2" name="us-gaap:PreferredStockParOrStatedValuePerShare" scale="0" id="Narr_acNGdClI90SLmrUmZm8pGQ"><ix:nonFraction unitRef="Unit_Divide_USD_shares_0ZfRDiWNfk6kp61F6IdjQA" contextRef="As_Of_12_31_2023_X7eqeHRTF0mRLJW7InVDdA" decimals="2" name="us-gaap:PreferredStockParOrStatedValuePerShare" scale="0" id="Narr_KFZeZ7ITXU2YIF6KscePGQ">.01</ix:nonFraction></ix:nonFraction></span><span style="font-size:9.5pt;"> par, </span><span style="font-size:9.5pt;"><ix:nonFraction unitRef="Unit_Standard_shares_YK1c03HsOkOiDLLsAeYHoA" contextRef="As_Of_9_30_2024_um13j0l3zk2ITGaiED1DFA" decimals="INF" format="ixt:numdotdecimal" name="us-gaap:PreferredStockSharesAuthorized" scale="0" id="Narr_vDVxXgDXqkqLlqvxiGzalw"><ix:nonFraction unitRef="Unit_Standard_shares_YK1c03HsOkOiDLLsAeYHoA" contextRef="As_Of_12_31_2023_X7eqeHRTF0mRLJW7InVDdA" decimals="INF" format="ixt:numdotdecimal" name="us-gaap:PreferredStockSharesAuthorized" scale="0" id="Narr_uDVSs4pBg0e6a9mkHmVd_w">5,000,000</ix:nonFraction></ix:nonFraction></span><span style="font-size:9.5pt;"> shares authorized, </span><span style="font-size:9.5pt;"><ix:nonFraction unitRef="Unit_Standard_shares_YK1c03HsOkOiDLLsAeYHoA" contextRef="As_Of_9_30_2024_um13j0l3zk2ITGaiED1DFA" decimals="INF" format="ixt-sec:numwordsen" name="us-gaap:PreferredStockSharesIssued" scale="0" id="Narr_vXl45j0kUUK9jauBTsefug"><ix:nonFraction unitRef="Unit_Standard_shares_YK1c03HsOkOiDLLsAeYHoA" contextRef="As_Of_12_31_2023_X7eqeHRTF0mRLJW7InVDdA" decimals="INF" format="ixt-sec:numwordsen" name="us-gaap:PreferredStockSharesIssued" scale="0" id="Narr_aZLwPT-05kSfxUb2HP_PLw">none</ix:nonFraction></ix:nonFraction></span><span style="font-size:9.5pt;"> issued and </span><span style="font-size:9.5pt;">outstanding</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9.5pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-size:9.5pt;">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><span style="-sec-ix-hidden:Hidden_dBE1Ix-ZG0Ouzf6-oQIFZQ;"><span style="font-family:'Times New Roman','Times','serif';font-size:9.5pt;font-style:normal;font-weight:normal;"> &#8212;</span></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9.5pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-size:9.5pt;">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><span style="-sec-ix-hidden:Hidden_NgV-IprYaEKY9cJKBMN6Sg;"><span style="font-family:'Times New Roman','Times','serif';font-size:9.5pt;font-style:normal;font-weight:normal;"> &#8212;</span></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:70.61%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0pt 12pt;"><span style="font-size:9.5pt;">Common stock, </span><span style="font-size:9.5pt;">$<ix:nonFraction unitRef="Unit_Divide_USD_shares_0ZfRDiWNfk6kp61F6IdjQA" contextRef="As_Of_9_30_2024_um13j0l3zk2ITGaiED1DFA" decimals="2" name="us-gaap:CommonStockParOrStatedValuePerShare" scale="0" id="Narr_Yrnqe-VVyEenWesS-ta0Hg"><ix:nonFraction unitRef="Unit_Divide_USD_shares_0ZfRDiWNfk6kp61F6IdjQA" contextRef="As_Of_12_31_2023_X7eqeHRTF0mRLJW7InVDdA" decimals="2" name="us-gaap:CommonStockParOrStatedValuePerShare" scale="0" id="Narr_KRkm4AQivkGh-Ym7xKE1eA">.01</ix:nonFraction></ix:nonFraction></span><span style="font-size:9.5pt;"> par, </span><span style="font-size:9.5pt;"><ix:nonFraction unitRef="Unit_Standard_shares_YK1c03HsOkOiDLLsAeYHoA" contextRef="As_Of_9_30_2024_um13j0l3zk2ITGaiED1DFA" decimals="INF" format="ixt:numdotdecimal" name="us-gaap:CommonStockSharesAuthorized" scale="0" id="Narr_1WpXL97hGk6PmXSQf5HxNA"><ix:nonFraction unitRef="Unit_Standard_shares_YK1c03HsOkOiDLLsAeYHoA" contextRef="As_Of_12_31_2023_X7eqeHRTF0mRLJW7InVDdA" decimals="INF" format="ixt:numdotdecimal" name="us-gaap:CommonStockSharesAuthorized" scale="0" id="Narr_vjPu1pcswEaWMaWvDeFa8Q">102,969,912</ix:nonFraction></ix:nonFraction></span><span style="font-size:9.5pt;"> shares authorized, </span><span style="font-size:9.5pt;"><ix:nonFraction unitRef="Unit_Standard_shares_YK1c03HsOkOiDLLsAeYHoA" contextRef="As_Of_9_30_2024_um13j0l3zk2ITGaiED1DFA" decimals="INF" format="ixt:numdotdecimal" name="us-gaap:CommonStockSharesIssued" scale="0" id="Narr_kYtYU3yuikaO6Sz6jJo2_w">41,123,365</ix:nonFraction></span><span style="font-size:9.5pt;"> and </span><span style="font-size:9.5pt;"><ix:nonFraction unitRef="Unit_Standard_shares_YK1c03HsOkOiDLLsAeYHoA" contextRef="As_Of_12_31_2023_X7eqeHRTF0mRLJW7InVDdA" decimals="INF" format="ixt:numdotdecimal" name="us-gaap:CommonStockSharesIssued" scale="0" id="Narr_a0n2t8b3KEqGF5qbQrjJQw">41,123,365</ix:nonFraction></span><span style="font-size:9.5pt;"> shares issued, respectively</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9.5pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-size:9.5pt;">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><span style="font-size:9.5pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="As_Of_9_30_2024_um13j0l3zk2ITGaiED1DFA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:CommonStockValue" scale="3" id="Tc_1njD9sxl0k2eOsRfTBFPXA_38_3">411</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9.5pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-size:9.5pt;">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><span style="font-size:9.5pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="As_Of_12_31_2023_X7eqeHRTF0mRLJW7InVDdA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:CommonStockValue" scale="3" id="Tc_wjWfftf_QkG78QxBF-xmpw_38_6">411</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:70.61%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0pt 12pt;"><span style="font-size:9.5pt;">Treasury stock, at cost, </span><span style="font-size:9.5pt;"><ix:nonFraction unitRef="Unit_Standard_shares_YK1c03HsOkOiDLLsAeYHoA" contextRef="As_Of_9_30_2024_um13j0l3zk2ITGaiED1DFA" decimals="INF" format="ixt:numdotdecimal" name="us-gaap:TreasuryStockCommonShares" scale="0" id="Narr_Z0Ya4RQZiEKTR-V3ocs5HQ">5,530,807</ix:nonFraction></span><span style="font-size:9.5pt;"> and </span><span style="font-size:9.5pt;"><ix:nonFraction unitRef="Unit_Standard_shares_YK1c03HsOkOiDLLsAeYHoA" contextRef="As_Of_12_31_2023_X7eqeHRTF0mRLJW7InVDdA" decimals="INF" format="ixt:numdotdecimal" name="us-gaap:TreasuryStockCommonShares" scale="0" id="Narr_asHC-AGRNESYgHH5xBla7Q">5,438,625</ix:nonFraction></span><span style="font-size:9.5pt;"> shares, respectively</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9.5pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-size:9.5pt;">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"><span style="font-size:9.5pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="As_Of_9_30_2024_um13j0l3zk2ITGaiED1DFA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:TreasuryStockValue" scale="3" id="Tc_tO0FFXA8jkGoWQKtPs74Ng_39_3">256,775</ix:nonFraction>)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9.5pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-size:9.5pt;">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"><span style="font-size:9.5pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="As_Of_12_31_2023_X7eqeHRTF0mRLJW7InVDdA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:TreasuryStockValue" scale="3" id="Tc_nH6sAiweTEe_7c7wUNIsfg_39_6">209,807</ix:nonFraction>)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:70.61%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0pt 12pt;"><span style="font-size:9.5pt;">Additional paid-in capital</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9.5pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-size:9.5pt;">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><span style="font-size:9.5pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="As_Of_9_30_2024_um13j0l3zk2ITGaiED1DFA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AdditionalPaidInCapitalCommonStock" scale="3" id="Tc_MJ2yPf8OOUOVfjpb2Qfjng_40_3">350,182</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9.5pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-size:9.5pt;">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><span style="font-size:9.5pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="As_Of_12_31_2023_X7eqeHRTF0mRLJW7InVDdA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AdditionalPaidInCapitalCommonStock" scale="3" id="Tc_1IgcVF-um0iaRhE2xL76Cw_40_6">339,562</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:70.61%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0pt 12pt;"><span style="font-size:9.5pt;">Retained earnings</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9.5pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-size:9.5pt;">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.32%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><span style="font-size:9.5pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="As_Of_9_30_2024_um13j0l3zk2ITGaiED1DFA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:RetainedEarningsAccumulatedDeficit" scale="3" id="Tc_uWnpZy8TWEmcro4PV1Z55A_41_3">1,493,904</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9.5pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-size:9.5pt;">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.82%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><span style="font-size:9.5pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="As_Of_12_31_2023_X7eqeHRTF0mRLJW7InVDdA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:RetainedEarningsAccumulatedDeficit" scale="3" id="Tc_3EOgUOvgbEGVhTDmNo8yZg_41_6">1,147,663</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:70.61%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0pt 18pt;"><span style="font-size:9.5pt;">Total stockholders&#8217; equity</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9.5pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-size:9.5pt;">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.32%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><span style="font-size:9.5pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="As_Of_9_30_2024_um13j0l3zk2ITGaiED1DFA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:StockholdersEquity" scale="3" id="Tc_9vvOeq6_skOEHAeYjsv5fA_42_3">1,587,722</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9.5pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-size:9.5pt;">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.82%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><span style="font-size:9.5pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="As_Of_12_31_2023_X7eqeHRTF0mRLJW7InVDdA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:StockholdersEquity" scale="3" id="Tc_eG3QFYwnuUuThCRu42p63A_42_6">1,277,829</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:70.61%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0pt 18pt;"><span style="font-size:9.5pt;">Total liabilities and stockholders&#8217; equity</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9.5pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-size:9.5pt;">$</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.32%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><span style="font-size:9.5pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="As_Of_9_30_2024_um13j0l3zk2ITGaiED1DFA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:LiabilitiesAndStockholdersEquity" scale="3" id="Tc_4Yyc_zUTmkCUgeajyk4QhQ_43_3">4,412,765</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9.5pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-size:9.5pt;">$</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.82%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><span style="font-size:9.5pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="As_Of_12_31_2023_X7eqeHRTF0mRLJW7InVDdA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:LiabilitiesAndStockholdersEquity" scale="3" id="Tc_y-zwHYa_OkiIu-_QtZlwfg_43_6">3,305,579</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;">The accompanying notes are an integral part of these consolidated financial statements.</p></div></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:12pt 0pt 0pt 0pt;">2</p></div></div>
<div style="background-color:#000000;clear:both;height:2pt;page-break-after:always;width:79.41%;border:0;margin:30pt 10.29% 30pt 10.29%;"></div><div style="max-width:100%;padding-left:10.29%;padding-right:10.29%;position:relative;"><div style="margin-top:21.6pt;min-height:41.4pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 30pt 0pt;"><a href="#Toc"><span style="font-style:normal;font-weight:normal;">Table of Contents</span></a></p></div><div style="clear:both;margin-left:-10.0pt;margin-right:-10.0pt;max-width:100%;position:relative;width:calc(100% + 20.0pt);"><div style="padding-left:10pt;padding-right:10pt;position:relative;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:5pt;font-weight:bold;visibility:hidden;">&#8203;</span></p><a id="_8b520856_7aae_442a_990f_dac09003d7ed"></a><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 10pt 0pt;"><b style="font-weight:bold;">COMFORT SYSTEMS USA,&#160;INC.</b></p><a id="CONSOLIDATEDSTATEMENTSOFOPERATIONS_54357"></a><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 10pt 0pt;"><b style="font-weight:bold;">CONSOLIDATED STATEMENTS OF OPERATIONS</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 10pt 0pt;"><b style="font-weight:bold;">(In Thousands, Except Per Share Data)</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 10pt 0pt;"><b style="font-weight:bold;">(Unaudited)</b></p><a id="_4043589a_27c8_4b4f_aa47_1d2537520a32"></a><a id="Tc_PmrOQ_TJFEeLOu5ci_lghQ_1_2"></a><a id="Tc_-rSPAlOG4USvFmXLoNfwGg_1_8"></a><a id="Tc_BZ8FEcI4RkqE0g3sUczPpQ_2_2"></a><a id="Tc_cVV2uz-XbkqwINlrSaFnQg_2_8"></a><a id="Tc_zZKMHjF7bk6tOofltT549g_3_2"></a><a id="Tc_wakR66n2L0GnmS-J8UNGLg_3_5"></a><a id="Tc_IYVtXvNQwEWsv_he58iMKg_3_8"></a><a id="Tc_Md8gJIw4O0uc3CVlSBw0XQ_3_11"></a><a id="Tc_lD5wycVce0ev6n7_-q_aiQ_4_0"></a><a id="Tc_E6goBla3dEy6vLm3uROTNw_4_2"></a><a id="Tc_uOSw_JDFHk6ebjHti7YwjA_4_5"></a><a id="Tc_aiEKmDwDmUCzf_8YYs7l_A_4_8"></a><a id="Tc_jurwRqk7EUmuy9GCqc0teg_4_11"></a><a id="Tc_l36SOffbVU6GtLPRmWg45Q_5_0"></a><a id="Tc_tPBfcd6WjEO7qyeqFJ-iwg_6_0"></a><a id="Tc_435sCkynyEiM3pq_8jjI6g_7_0"></a><a id="Tc_BNaBTsUDu0iYoxH8gWwyVg_8_0"></a><a id="Tc_wen9Tc8WBUSuwfDb4C8Stw_9_0"></a><a id="Tc_C_SJFQtu7Ue6_-Y0bMDaIw_10_0"></a><a id="Tc_FdwaskM2yE-WUTMKrRIM_A_11_0"></a><a id="Tc_VMxZWdEs2UaAhnIfGJhPAQ_12_0"></a><a id="Tc_X50p-Kz1hkiOesYZ0MM1iQ_13_0"></a><a id="Tc_KZMzjZ-JvkqybnBoUgkwbg_14_0"></a><a id="Tc_C5xynGxrk0yFFB3w0BOO2A_15_0"></a><a id="Tc_NB2dQWOykU-T7OSXt56JJQ_16_0"></a><a id="Tc_-f26HvYhl0ShnpU9F1JmXw_17_0"></a><a id="Tc_IPdwoMtmmE6K2xFDZeRe_Q_18_0"></a><a id="Tc_lmYJJw_YKEqf1oRBfhoflg_18_2"></a><a id="Tc_2NCzf9_VBkqrgCvjpO4eFQ_18_5"></a><a id="Tc_FYENw85h-EaFWVJfVsEdrw_18_8"></a><a id="Tc_PISwx_VTU0OsJqF9c790AQ_18_11"></a><a id="Tc_kXqO70USy0CggYJRaDAazw_20_0"></a><a id="Tc_PwDNzGhPsUqKuIiygVYnHw_21_0"></a><a id="Tc_xPgsvGckfESBWY_2F3zo5w_21_2"></a><a id="Tc_RGKecKF0mEGbgOxL_fjA1w_21_5"></a><a id="Tc_xjzdz_SBXUS5UqIZGpyV_w_21_8"></a><a id="Tc_lm2BQwSQAk6_w-BIbtaD_g_21_11"></a><a id="Tc_yqLBQ6omB0ilw1IEWi46WQ_22_0"></a><a id="Tc_OXZvi8BL2k21uAramrOXOw_22_2"></a><a id="Tc_4pgpj-wF80ak_D4pdOUq8g_22_5"></a><a id="Tc_E8MiJw79OEmbg2TShD8N_g_22_8"></a><a id="Tc_sx9KNESKI0mmvMGQ3lMnTQ_22_11"></a><a id="Tc_L2zbljFyPUajRgITzpMO8Q_24_0"></a><a id="Tc_Vn2_xIWXXUaeTym3P5BwwQ_25_0"></a><a id="Tc_eqf2NruiQECdQDXNowc34A_26_0"></a><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:51.44%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.36%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.36%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.36%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.36%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:0.41%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:51.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;"> </b><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="5" style="vertical-align:bottom;white-space:nowrap;width:22.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Three Months Ended </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="5" style="vertical-align:bottom;white-space:nowrap;width:22.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Nine Months Ended </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:51.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="5" style="vertical-align:bottom;white-space:nowrap;width:22.42%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">September 30, </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="5" style="vertical-align:bottom;white-space:nowrap;width:22.42%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">September 30, </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:51.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.39%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2024</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.39%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2023</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.39%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2024</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.39%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2023</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td></tr><tr><td style="vertical-align:bottom;width:51.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">REVENUE</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_7_1_2024_To_9_30_2024_XquWrHsdeEmkK9F8qXf6qA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:Revenues" scale="3" id="Tc_NV0M0Z4DkUyo1_C6JJ1_1A_4_3">1,812,366</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_7_1_2023_To_9_30_2023_S4fUa5HYuk6ZPxhUrn5m5w" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:Revenues" scale="3" id="Tc_rieRTCG1lEOecoxTc06IfA_4_6">1,378,124</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:Revenues" scale="3" id="Tc_C2HDdIJydEaGyiM29PrgZQ_4_9">5,159,672</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_1_1_2023_To_9_30_2023_0vpBpKZIxEC_KY5z5G8rKA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:Revenues" scale="3" id="Tc_rn1lZYsjcUCDs-gFwMwaMQ_4_12">3,849,194</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.41%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:51.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">COST OF SERVICES</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.36%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_7_1_2024_To_9_30_2024_XquWrHsdeEmkK9F8qXf6qA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:CostOfRevenue" scale="3" id="Tc_GDrknSuiV0yAUQGoHKkn-w_5_3">1,430,652</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.36%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_7_1_2023_To_9_30_2023_S4fUa5HYuk6ZPxhUrn5m5w" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:CostOfRevenue" scale="3" id="Tc_1McyMGudZUW0XgIFb-4Vow_5_6">1,100,625</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.36%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:CostOfRevenue" scale="3" id="Tc_YqLw5JROHEGuvkBW-7zBGw_5_9">4,116,999</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.36%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_1_1_2023_To_9_30_2023_0vpBpKZIxEC_KY5z5G8rKA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:CostOfRevenue" scale="3" id="Tc_iMAAJWpxeUiydoCh6ijyHQ_5_12">3,138,370</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:51.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 24pt;">Gross profit</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_7_1_2024_To_9_30_2024_XquWrHsdeEmkK9F8qXf6qA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:GrossProfit" scale="3" id="Tc_XL6odu_4OUWrBebS5k_dwQ_6_3">381,714</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_7_1_2023_To_9_30_2023_S4fUa5HYuk6ZPxhUrn5m5w" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:GrossProfit" scale="3" id="Tc_Jymo5g0DMEeo3bNyg2zJdA_6_6">277,499</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:GrossProfit" scale="3" id="Tc_xkeuazQQYkOCEYlrpVMBug_6_9">1,042,673</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_1_1_2023_To_9_30_2023_0vpBpKZIxEC_KY5z5G8rKA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:GrossProfit" scale="3" id="Tc_-qRWLdPjZU61Z7oByFRJBQ_6_12">710,824</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.41%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:51.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">SELLING, GENERAL AND ADMINISTRATIVE EXPENSES</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.36%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_7_1_2024_To_9_30_2024_XquWrHsdeEmkK9F8qXf6qA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:SellingGeneralAndAdministrativeExpense" scale="3" id="Tc_x_D991sdoUW3stgJJgQr9A_7_3">180,177</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.36%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_7_1_2023_To_9_30_2023_S4fUa5HYuk6ZPxhUrn5m5w" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:SellingGeneralAndAdministrativeExpense" scale="3" id="Tc_b9RWeRQZlE-xTrV4Q-qaVw_7_6">142,935</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.36%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:SellingGeneralAndAdministrativeExpense" scale="3" id="Tc_O7lGQ7kFA0izpHfnhCfmGw_7_9">522,437</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.36%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_1_1_2023_To_9_30_2023_0vpBpKZIxEC_KY5z5G8rKA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:SellingGeneralAndAdministrativeExpense" scale="3" id="Tc_TIqwk3VQ20aIeKbeueTFWw_7_12">414,397</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:51.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">GAIN ON SALE OF ASSETS</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.36%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_7_1_2024_To_9_30_2024_XquWrHsdeEmkK9F8qXf6qA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:GainLossOnDispositionOfAssets" scale="3" id="Tc_KHjhozZHdkqZbfbkm7zApQ_8_3">1,347</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.36%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_7_1_2023_To_9_30_2023_S4fUa5HYuk6ZPxhUrn5m5w" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:GainLossOnDispositionOfAssets" scale="3" id="Tc_lSKXq_0AD0eNzt_VAuxgBg_8_6">579</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.36%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:GainLossOnDispositionOfAssets" scale="3" id="Tc_xhXwHcoKLkyrvUQZ1eDUng_8_9">2,778</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.36%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_1_1_2023_To_9_30_2023_0vpBpKZIxEC_KY5z5G8rKA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:GainLossOnDispositionOfAssets" scale="3" id="Tc_iM668JMPn0i4kH4ACXdSwg_8_12">1,683</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.41%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:51.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 24pt;">Operating income</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.36%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_7_1_2024_To_9_30_2024_XquWrHsdeEmkK9F8qXf6qA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OperatingIncomeLoss" scale="3" id="Tc_1eAIKcuIVESbL-iGvO0y7g_9_3">202,884</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.36%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_7_1_2023_To_9_30_2023_S4fUa5HYuk6ZPxhUrn5m5w" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OperatingIncomeLoss" scale="3" id="Tc_M8o7b3w58U-igqJJMqWnTQ_9_6">135,143</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.36%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OperatingIncomeLoss" scale="3" id="Tc_1gHE1Xexjkax1gUP6IlT0w_9_9">523,014</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.36%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_1_1_2023_To_9_30_2023_0vpBpKZIxEC_KY5z5G8rKA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OperatingIncomeLoss" scale="3" id="Tc_qH2b2FtUW02ZQqi3ImA-xA_9_12">298,110</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:51.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">OTHER INCOME (EXPENSE):</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.41%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:51.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">Interest income</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.36%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_7_1_2024_To_9_30_2024_XquWrHsdeEmkK9F8qXf6qA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:InvestmentIncomeInterest" scale="3" id="Tc_T5vjWPazVUO7Dn6lJ79uWA_11_3">3,825</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.36%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_7_1_2023_To_9_30_2023_S4fUa5HYuk6ZPxhUrn5m5w" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:InvestmentIncomeInterest" scale="3" id="Tc_r984KhknAEaL5xfD_A0wCQ_11_6">952</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.36%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:InvestmentIncomeInterest" scale="3" id="Tc_okrnqVd0T02Qd7K2mVOAag_11_9">6,692</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.36%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_1_1_2023_To_9_30_2023_0vpBpKZIxEC_KY5z5G8rKA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:InvestmentIncomeInterest" scale="3" id="Tc_waMHpujEIUyYzLmPNP-A1Q_11_12">2,441</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:51.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">Interest expense</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_7_1_2024_To_9_30_2024_XquWrHsdeEmkK9F8qXf6qA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:InterestExpenseNonoperating" scale="3" id="Tc_SmVMFTgCs0CJebGUw_ttnQ_12_3">1,730</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_7_1_2023_To_9_30_2023_S4fUa5HYuk6ZPxhUrn5m5w" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:InterestExpenseNonoperating" scale="3" id="Tc_VaiIWS-ca0SuY5dOyFoe1g_12_6">1,886</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:InterestExpenseNonoperating" scale="3" id="Tc_S9sdFQnCykyFS2VWO_QGJg_12_9">5,072</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_1_1_2023_To_9_30_2023_0vpBpKZIxEC_KY5z5G8rKA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:InterestExpenseNonoperating" scale="3" id="Tc_y-XYesj6V0KzjalbMhglFg_12_12">9,880</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.41%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:51.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">Changes in the fair value of contingent earn-out obligations</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.36%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_7_1_2024_To_9_30_2024_XquWrHsdeEmkK9F8qXf6qA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1" scale="3" id="Tc_MPl9_X4bCUuAIcmaB3GclA_13_3">17,254</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.36%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_7_1_2023_To_9_30_2023_S4fUa5HYuk6ZPxhUrn5m5w" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1" scale="3" id="Tc_R84rvUU-bEuLbcOBF4J1jw_13_6">8,727</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.36%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1" scale="3" id="Tc_Ur-e-BsxBUq9_V09hi5DKw_13_9">44,434</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.36%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_1_1_2023_To_9_30_2023_0vpBpKZIxEC_KY5z5G8rKA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1" scale="3" id="Tc_qB2JE6iPuUe3PBI62rF4vA_13_12">14,207</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:51.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">Other</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.36%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_7_1_2024_To_9_30_2024_XquWrHsdeEmkK9F8qXf6qA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OtherNonoperatingIncomeExpense" scale="3" id="Tc_QaxHzQCWt0yQxLRKGP3j3w_14_3">87</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.36%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_7_1_2023_To_9_30_2023_S4fUa5HYuk6ZPxhUrn5m5w" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OtherNonoperatingIncomeExpense" sign="-" scale="3" id="Tc_c7tHMesA5k2H45TfgEwbWw_14_6">44</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.36%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OtherNonoperatingIncomeExpense" scale="3" id="Tc_vfkUSJPrMEGnTRGjtKn_Qw_14_9">323</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.36%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_1_1_2023_To_9_30_2023_0vpBpKZIxEC_KY5z5G8rKA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OtherNonoperatingIncomeExpense" scale="3" id="Tc_WeDJEyKC3EuWjkYEpqZcQg_14_12">1</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.41%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:51.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 24pt;">Other income (expense)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.36%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_7_1_2024_To_9_30_2024_XquWrHsdeEmkK9F8qXf6qA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:NonoperatingIncomeExpense" sign="-" scale="3" id="Tc_26za5H9VEEW8RuEqZObxWg_15_3">15,072</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.36%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_7_1_2023_To_9_30_2023_S4fUa5HYuk6ZPxhUrn5m5w" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:NonoperatingIncomeExpense" sign="-" scale="3" id="Tc_5lXyVyovE0CcQA5Aa3J8Xg_15_6">9,705</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.36%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:NonoperatingIncomeExpense" sign="-" scale="3" id="Tc_TE8hmcCfT0OjRlm5TpLp1g_15_9">42,491</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.36%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_1_1_2023_To_9_30_2023_0vpBpKZIxEC_KY5z5G8rKA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:NonoperatingIncomeExpense" sign="-" scale="3" id="Tc_jBiuDI8x9EipMMxpPYgNyg_15_12">21,645</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:51.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">INCOME BEFORE INCOME TAXES</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_7_1_2024_To_9_30_2024_XquWrHsdeEmkK9F8qXf6qA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" scale="3" id="Tc_0T6wgPGVT0S9X4aq1YhLrA_16_3">187,812</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_7_1_2023_To_9_30_2023_S4fUa5HYuk6ZPxhUrn5m5w" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" scale="3" id="Tc_dZrnKjCkc0WvDH4JLyyIDg_16_6">125,438</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" scale="3" id="Tc_zjcyVN0Tj0-YdFFISwMUCA_16_9">480,523</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_1_1_2023_To_9_30_2023_0vpBpKZIxEC_KY5z5G8rKA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" scale="3" id="Tc_747Ky2_5YUGlLScfkBIpiw_16_12">276,465</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.41%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:51.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">PROVISION FOR INCOME TAXES</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.36%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_7_1_2024_To_9_30_2024_XquWrHsdeEmkK9F8qXf6qA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncomeTaxExpenseBenefit" scale="3" id="Tc_2L0DTSOW106NkPgIKEGY9g_17_3">41,577</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.36%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_7_1_2023_To_9_30_2023_S4fUa5HYuk6ZPxhUrn5m5w" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncomeTaxExpenseBenefit" scale="3" id="Tc_N2vlzX_SFEm83C29WDffkQ_17_6">20,313</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.36%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncomeTaxExpenseBenefit" scale="3" id="Tc_-AbauQe46Ua0lFuL7xDNcQ_17_9">103,960</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.36%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_1_1_2023_To_9_30_2023_0vpBpKZIxEC_KY5z5G8rKA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncomeTaxExpenseBenefit" scale="3" id="Tc_lkpy9EctM0q3z84aY42UyA_17_12">44,648</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:51.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">NET INCOME</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.36%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_7_1_2024_To_9_30_2024_XquWrHsdeEmkK9F8qXf6qA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:NetIncomeLoss" scale="3" id="Tc_n3cMg9VvXU6mJF_wuLmJJw_18_3">146,235</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.36%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_7_1_2023_To_9_30_2023_S4fUa5HYuk6ZPxhUrn5m5w" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:NetIncomeLoss" scale="3" id="Tc_6W4P0O_HS0-Ts77jUdV7Jw_18_6">105,125</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.36%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:NetIncomeLoss" scale="3" id="Tc_UMTQscUCYkWjwDFwc6mtBA_18_9">376,563</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.36%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_1_1_2023_To_9_30_2023_0vpBpKZIxEC_KY5z5G8rKA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:NetIncomeLoss" scale="3" id="Tc_F65r6caMiUiOfLCI9Rh9Lw_18_12">231,817</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.41%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:51.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.36%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.36%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.36%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.36%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:51.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">INCOME PER SHARE:</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.41%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:51.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">Basic</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.36%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Divide_USD_shares_0ZfRDiWNfk6kp61F6IdjQA" contextRef="Duration_7_1_2024_To_9_30_2024_XquWrHsdeEmkK9F8qXf6qA" decimals="2" format="ixt:numdotdecimal" name="us-gaap:EarningsPerShareBasic" scale="0" id="Tc_0YZ_NBLZqU2bYLCVExPm6A_21_3">4.10</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.36%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Divide_USD_shares_0ZfRDiWNfk6kp61F6IdjQA" contextRef="Duration_7_1_2023_To_9_30_2023_S4fUa5HYuk6ZPxhUrn5m5w" decimals="2" format="ixt:numdotdecimal" name="us-gaap:EarningsPerShareBasic" scale="0" id="Tc_tgyWLZRrBEOwEeScb35L5g_21_6">2.93</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.36%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Divide_USD_shares_0ZfRDiWNfk6kp61F6IdjQA" contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ" decimals="2" format="ixt:numdotdecimal" name="us-gaap:EarningsPerShareBasic" scale="0" id="Tc_kDTYJLZ5RkO7In-rW3Fvcw_21_9">10.54</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.36%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Divide_USD_shares_0ZfRDiWNfk6kp61F6IdjQA" contextRef="Duration_1_1_2023_To_9_30_2023_0vpBpKZIxEC_KY5z5G8rKA" decimals="2" format="ixt:numdotdecimal" name="us-gaap:EarningsPerShareBasic" scale="0" id="Tc_DGJH0A4FOU6a8hIlqFzblA_21_12">6.47</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:51.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">Diluted</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.36%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Divide_USD_shares_0ZfRDiWNfk6kp61F6IdjQA" contextRef="Duration_7_1_2024_To_9_30_2024_XquWrHsdeEmkK9F8qXf6qA" decimals="2" format="ixt:numdotdecimal" name="us-gaap:EarningsPerShareDiluted" scale="0" id="Tc_5UWsFO8HYUa2WVq3X6xl8g_22_3">4.09</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.36%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Divide_USD_shares_0ZfRDiWNfk6kp61F6IdjQA" contextRef="Duration_7_1_2023_To_9_30_2023_S4fUa5HYuk6ZPxhUrn5m5w" decimals="2" format="ixt:numdotdecimal" name="us-gaap:EarningsPerShareDiluted" scale="0" id="Tc_78YqYKpqaEeBwgFZVUbwvw_22_6">2.93</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.36%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Divide_USD_shares_0ZfRDiWNfk6kp61F6IdjQA" contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ" decimals="2" format="ixt:numdotdecimal" name="us-gaap:EarningsPerShareDiluted" scale="0" id="Tc_mwzJkOLigk6KCm1aQDCdvQ_22_9">10.52</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.36%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Divide_USD_shares_0ZfRDiWNfk6kp61F6IdjQA" contextRef="Duration_1_1_2023_To_9_30_2023_0vpBpKZIxEC_KY5z5G8rKA" decimals="2" format="ixt:numdotdecimal" name="us-gaap:EarningsPerShareDiluted" scale="0" id="Tc_N3O2A444H0GtmKtDaQuh7Q_22_12">6.46</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.41%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:51.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;"><span style="margin-left:0pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.36%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.36%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.36%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.36%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:51.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">SHARES USED IN COMPUTING INCOME PER SHARE:</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.41%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:51.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">Basic</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.36%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_shares_YK1c03HsOkOiDLLsAeYHoA" contextRef="Duration_7_1_2024_To_9_30_2024_XquWrHsdeEmkK9F8qXf6qA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:WeightedAverageNumberOfSharesOutstandingBasic" scale="3" id="Tc_6vU4BIor40WHQ4ngbrzInw_25_3">35,669</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.36%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_shares_YK1c03HsOkOiDLLsAeYHoA" contextRef="Duration_7_1_2023_To_9_30_2023_S4fUa5HYuk6ZPxhUrn5m5w" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:WeightedAverageNumberOfSharesOutstandingBasic" scale="3" id="Tc_PHUXjnIYZkiDmljdEoNudw_25_6">35,820</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.36%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_shares_YK1c03HsOkOiDLLsAeYHoA" contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:WeightedAverageNumberOfSharesOutstandingBasic" scale="3" id="Tc_P9LCPGiaWEOcHULHvUuc7A_25_9">35,718</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.36%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_shares_YK1c03HsOkOiDLLsAeYHoA" contextRef="Duration_1_1_2023_To_9_30_2023_0vpBpKZIxEC_KY5z5G8rKA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:WeightedAverageNumberOfSharesOutstandingBasic" scale="3" id="Tc_5ZgMx7xf4EmRxTkuNRxT4w_25_12">35,819</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:51.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">Diluted</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.36%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_shares_YK1c03HsOkOiDLLsAeYHoA" contextRef="Duration_7_1_2024_To_9_30_2024_XquWrHsdeEmkK9F8qXf6qA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding" scale="3" id="Tc_Ej6_ob7uVk2V_kx6k_l0Tg_26_3">35,755</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.36%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_shares_YK1c03HsOkOiDLLsAeYHoA" contextRef="Duration_7_1_2023_To_9_30_2023_S4fUa5HYuk6ZPxhUrn5m5w" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding" scale="3" id="Tc_ACiio88NDU2wNiE3F-QP7Q_26_6">35,917</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.36%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_shares_YK1c03HsOkOiDLLsAeYHoA" contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding" scale="3" id="Tc_hdYIVqLVYU64_uLcqxqLmg_26_9">35,804</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.36%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_shares_YK1c03HsOkOiDLLsAeYHoA" contextRef="Duration_1_1_2023_To_9_30_2023_0vpBpKZIxEC_KY5z5G8rKA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding" scale="3" id="Tc_or0q5VNnVUOqg8lvEiA2LA_26_12">35,910</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.41%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:10pt 0pt 0pt 0pt;">The accompanying notes are an integral part of these consolidated financial statements.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></div></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:12pt 0pt 0pt 0pt;">3</p></div></div>
<div style="background-color:#000000;clear:both;height:2pt;page-break-after:always;width:79.41%;border:0;margin:30pt 10.29% 30pt 10.29%;"></div><div style="max-width:100%;padding-left:10.29%;padding-right:10.29%;position:relative;"><div style="margin-top:21.6pt;min-height:41.4pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 30pt 0pt;"><a href="#Toc"><span style="font-style:normal;font-weight:normal;">Table of Contents</span></a></p></div><div style="clear:both;margin-left:-10.0pt;margin-right:-10.0pt;max-width:100%;position:relative;width:calc(100% + 20.0pt);"><div style="padding-left:10pt;padding-right:10pt;position:relative;width:100%;"><a id="_0fcf1eec_b6ca_448e_9120_b48447b031bb"></a><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 10pt 0pt;"><b style="font-weight:bold;white-space:pre-wrap;">    COMFORT SYSTEMS USA,&#160;INC.</b></p><a id="STATEMENTSOFSTOCKHOLDERSEQUITY_584218"></a><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 10pt 0pt;"><b style="font-weight:bold;">CONSOLIDATED STATEMENTS OF STOCKHOLDERS&#8217; EQUIT</b><b style="font-weight:bold;">Y</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 10pt 0pt;"><b style="font-weight:bold;">(In Thousands, Except Share Amounts)</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 10pt 0pt;"><b style="font-weight:bold;">(Unaudited)</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p><a id="_8f8f0339_4bf1_43c9_9bcd_938aadd5e6e0"></a><a id="Tc_UfcO55szHkWnVGIFDJj8fA_1_2"></a><a id="Tc_EEBD6cCSakWqShJWhKhySg_2_2"></a><a id="Tc_f1dAY3mGfUm1FxK5tSBFTA_3_12"></a><a id="Tc_am2FnBNVXkWvDuCeXPmPZA_3_18"></a><a id="Tc_oYMR3SXkjE2IsPOL6Bi2yQ_4_2"></a><a id="Tc_vmOv1aGR_0CShyjB-2VgQQ_4_7"></a><a id="Tc_owBut_N6qkeiKuH0HPxlZg_4_12"></a><a id="Tc_3Nhzzl9cK0qIwXX5ZqBa6g_4_15"></a><a id="Tc_4UUpH9HjyESrqdcbIn2LYw_4_18"></a><a id="Tc_AnQYwDIrNUiGc6CVwlNWag_5_2"></a><a id="Tc_N6e3xkzJ5U2TgsAvkBupSQ_5_4"></a><a id="Tc_8BrrePdQYEuBX_U5VsBFkQ_5_7"></a><a id="Tc_VupVWvE56Eas-1aeotCMtA_5_9"></a><a id="Tc_jwwm2eW0MUaok7RaODvN_g_5_12"></a><a id="Tc_Tlqm6o15lEa9jhnHYP9hyQ_5_15"></a><a id="Tc_-9GYkFkapkenFnuaGSEGZw_5_18"></a><a id="Tc_osgF0zoSNE21IBySrGjKlA_6_0"></a><a id="Tc_5U93jW8xN0S7UsvRVp3zTw_6_4"></a><a id="Tc_8_S71BgMVkmBeKNQKwgQVw_6_9"></a><a id="Tc_tqUKAUL3BkmJEsDCX5XHpg_6_12"></a><a id="Tc_N4L_63UJnEGKsZni-rcCOQ_6_15"></a><a id="Tc_kArA9xOq7kq_G8WbFxUjGg_6_18"></a><a id="Tc_o5d7leDtvkGIIomfAK0i-w_7_0"></a><a id="Tc_0nCfCJrl90OFXGARvc6Wwg_7_2"></a><a id="Tc_tYcU8ZttdEKW7tDB_Zal3w_7_5"></a><a id="Tc_cjE0iQ1pqkCUm5pw6ImTzQ_7_7"></a><a id="Tc_lu-DXofkEkCfkxogmy_64g_7_10"></a><a id="Tc_-_xARPVUIUeTnuu91ZmXVg_7_13"></a><a id="Tc_OM8cQseqSUuEdrNioiKuyg_8_0"></a><a id="Tc_2ckUta68Mkarb7xuamKtmQ_9_0"></a><a id="Tc_nOuuXvv9_0iHTIh7LsrsDQ_9_2"></a><a id="Tc_BdC8llDNQEmMVxKwOWiwMw_9_5"></a><a id="Tc_VeQlsiG230mFmZqpsm6hnQ_9_16"></a><a id="Tc_7Vb2NQ5-vkuTEWgcHe6FIA_10_0"></a><a id="Tc_QN84A0I9IUCN-extiJ90OQ_10_2"></a><a id="Tc_yLV7NFMoH0mcN1PtYoRwKQ_10_5"></a><a id="Tc_lO4ogxbtEE2JwD_DPWjidA_10_16"></a><a id="Tc_2iljy_f8hUqTeNMcbGQUBw_11_0"></a><a id="Tc_Qu379-Yu_0yAhJAPjijN2Q_11_2"></a><a id="Tc_1rPoXekuTkK6YUye0mMZBg_11_5"></a><a id="Tc_P6d0TjiDzUCYTG843M62EQ_11_13"></a><a id="Tc_BbKkAPK2fE27ci3kWu3tSw_11_16"></a><a id="Tc_QU0uAtZ4pECqeZ1NPUgblQ_12_0"></a><a id="Tc_4sgBD1x5RUavW5R2ytr6UQ_12_2"></a><a id="Tc_QYodnKMKX0aDPaihQJbYrA_12_5"></a><a id="Tc_SCTuJ_noR0GmKmOBH54Krg_12_7"></a><a id="Tc_xWOlhzRzokOcSNrjEv0C-A_12_10"></a><a id="Tc_91RLGLG4okWi0N9juLW4ig_12_16"></a><a id="Tc_AgXKpizJ1E6mOqa2dHe6jA_13_0"></a><a id="Tc_wHLPt-okQ0iTX8OyizvDCg_13_2"></a><a id="Tc_Gd7DX_O3DEWMc14lJNJuYQ_13_5"></a><a id="Tc_WlHd6WErh06YN2-5T9nCOg_13_7"></a><a id="Tc__GUnirT-A0KQ418fC0n2Sg_13_10"></a><a id="Tc_Czuqky2ZnU27KPMyC6GoRA_13_13"></a><a id="Tc_Ce_Mx3yqIUGnaujDkJJauA_14_0"></a><a id="Tc_wspResLCykWLTaehds6D7g_14_2"></a><a id="Tc_LqsgufmgeE2k5gKdDuUCgw_14_5"></a><a id="Tc_SktVMNCHtEmPkGISIULehQ_14_13"></a><a id="Tc_QQJ8HxczA0einRoB8193lA_14_16"></a><a id="Tc_fqRH8okzjUuN5yeoZPUKtw_15_0"></a><a id="Tc_J184tKjOpkKKSRUyOqiSxw_16_0"></a><a id="Tc_4i97wRqEAk6gXOnwsiMr4g_16_2"></a><a id="Tc_fkcC5WgNXUSWZtjkKfI_Fw_16_5"></a><a id="Tc_HMirwHtcbEalaOogbwrLxQ_16_7"></a><a id="Tc_lIdFv3slNEa0Q99TluEphg_16_10"></a><a id="Tc_b9--Ui8zPUefsY2dyLZYBA_16_13"></a><a id="Tc_x8GWC1mdvkirhWnsBZT3vw_17_0"></a><a id="Tc_YkoYNQk6ak2p-tKUXJgkAw_18_0"></a><a id="Tc_W8HapXkhiEujrACDgapjKA_18_2"></a><a id="Tc_tpoF4xm_d0uaQxKR3H2e_g_18_5"></a><a id="Tc_9ZO_RuMnzUiWYKdWQnOfpg_18_7"></a><a id="Tc_yA1E-AMPYEmKCCg5wkbJnw_18_10"></a><a id="Tc_5OeN6T2lHUuiRFhtNWE9Vg_18_13"></a><a id="Tc_jqglW8XP3kyJN5YsLscLSg_18_16"></a><a id="Tc_UYTlD3ycTUSjaUbbZ3qYzA_18_19"></a><a id="Tc_NScoAxk4L06YI6OazWzFNA_19_0"></a><a id="Tc_DtkugSAj-U-OOGj62YZ58Q_19_2"></a><a id="Tc_LBPy3pJM40Wb1uz6MGehWg_19_5"></a><a id="Tc_pQsfZ69pgk2qNSvfRRSWRw_19_16"></a><a id="Tc_-k_Nbr42CEG0c1q89Zd4sg_19_19"></a><a id="Tc_ieaPIODQC0KtkFLCE98PAQ_20_0"></a><a id="Tc_c5GGvnqTUkyBpFERE46bFw_20_2"></a><a id="Tc_I23SlcvReUy7e8eNjH1vTw_20_5"></a><a id="Tc_43AX9SJcCkKdQKdGj_KxOQ_20_13"></a><a id="Tc_AwIUvVloyUK-leeiXWF6_g_20_16"></a><a id="Tc_3Ih7RY4Nn0aw7ZKqkdG08g_21_0"></a><a id="Tc_1baLc2kn0UmAs1e_-pMSgw_21_2"></a><a id="Tc_6Rx6e-pta0ejgrPHrEhJ7g_21_5"></a><a id="Tc_wxtRiNFPcEyUI0x8fFAOXw_21_7"></a><a id="Tc_B7z1115uq0284fXTDH3Fkg_21_10"></a><a id="Tc_dj7GuFZL80eTpU8blHiNUg_21_16"></a><a id="Tc_dL9KuZ32DE6KPg0peq1I_Q_22_0"></a><a id="Tc_ceVDRhbzWk-FyL7JAqWcKQ_22_2"></a><a id="Tc_UNoMmUN2iUCO6_48APtqWA_22_5"></a><a id="Tc_3YYpU5zANkSjHD8TcHCMgQ_22_7"></a><a id="Tc_9ddrNeMzUEKKTQU5VGYjMw_22_10"></a><a id="Tc_LP4IlW33z02lzyaUk7PSyg_22_13"></a><a id="Tc_N4zKopkm2EWHYl4L8jFJKg_23_0"></a><a id="Tc_UW_RbQ7c70OqmABaqV4KBg_23_2"></a><a id="Tc_7cB6eUi9nESFO6AZdxnZ8Q_23_5"></a><a id="Tc_KB1jAl8bmE-ZAZqdJWVJUQ_23_13"></a><a id="Tc_-Gvn3nVv5kC0RhNzQelQYw_23_16"></a><a id="Tc_rKW6rF0dAU-4MqzhFhvjIw_24_0"></a><a id="Tc_m9yH7AZvzEaH6XvGqIbyUQ_25_0"></a><a id="Tc_t7ZoI6ZX40m2o-bxoSSiMg_25_2"></a><a id="Tc_ttMkaEpPv0uPPw2dXMk1uw_25_5"></a><a id="Tc_coHT5guXnU2oQa78eFjNig_25_7"></a><a id="Tc_Ch4biipwEE6jKcb6ie7XMw_25_10"></a><a id="Tc_Bt54e9IfDUmRuP569IyRAQ_25_13"></a><a id="Tc_LF5nzJDYU0qMPRrgse6OPw_26_0"></a><a id="Tc_dZxObY8PzUqfYhJtl9IW3A_27_0"></a><a id="Tc_FJFcH6JxH0-ak0OojzvFsg_27_2"></a><a id="Tc_66uknPCXaEGnhn91Kr7nlA_27_5"></a><a id="Tc_5Hpusg_g20yl6xEg7YetTQ_27_7"></a><a id="Tc_rc4J6fpYlEuxpbxyUe95tw_27_10"></a><a id="Tc_P0rIMaV0Nk-g0MFAQo673g_27_13"></a><a id="Tc_oV4azbkMyEazKCo-iQMrPA_27_16"></a><a id="Tc_j1qA5ENZCEmO9rw0Pfv14w_27_19"></a><a id="Tc_-s5H2UuPOUGXDQNuFNd68A_28_0"></a><a id="Tc_5NS2PMzKH06BVL_qi4cI6w_28_2"></a><a id="Tc_gjyjlG7t5UarIOXeDYFMqg_28_5"></a><a id="Tc_uaDzs3eaDkqVsut-KZEUlg_28_16"></a><a id="Tc_XoqM1REHeEy3pGAjPSJG-w_28_19"></a><a id="Tc_oZr7KEwKI0y0MUL5oJYmIA_29_0"></a><a id="Tc_w8ll4XPhWUySNGH6iW89Mw_29_2"></a><a id="Tc_fj2kcnMGHECcr_gLGvuBtw_29_5"></a><a id="Tc__PazuZ29N0unL06nhs0Ulg_29_13"></a><a id="Tc_qW1DczxIlU6pa3P9nYgg0g_29_16"></a><a id="Tc_nQSxFMdwzku2ZWZAbaLVhQ_30_0"></a><a id="Tc_w0HIw_E7B0OmOJi2tyQsyw_30_2"></a><a id="Tc_wElvPbSQWkCBLWFnYr1UiQ_30_5"></a><a id="Tc_Wn_-Gv_xyUmxEYzvzxv8Rw_30_7"></a><a id="Tc_aHbxb_lZ90izwuOuYw1IDg_30_10"></a><a id="Tc_4ip7SNDHQUusCytMLlNuHg_30_16"></a><a id="Tc_J6qsdExzB0GW2GCJPSrBBw_31_0"></a><a id="Tc_a-gawISWJUe9_EI2viy9UQ_31_2"></a><a id="Tc_Yre5Cm0u3U2KTZWuLaAQGg_31_5"></a><a id="Tc_bg0XG3uVNUmDx7WJOStDKg_31_7"></a><a id="Tc_rtlhjiVyB0S-i5w1WC3rxg_31_10"></a><a id="Tc_2Zur33jPek21zSVZe4oTdg_31_13"></a><a id="Tc_C5kI8gNcFUStt5jVchs3SQ_32_0"></a><a id="Tc_36BUVFXudEWDig2eqdH0Xw_32_2"></a><a id="Tc_SQwavEZQgEOwCnTPTU_uRQ_32_5"></a><a id="Tc_8AMxQ2UHckujT7XgOfJHQQ_32_13"></a><a id="Tc_RGN3lcucPU-Fzm9Oo7npMA_32_16"></a><a id="Tc_ycMT-Akg2UKaKufcYLfXpA_33_0"></a><a id="Tc_bt-l8bIfTk2RU5wzgYt02Q_33_4"></a><a id="Tc_ityAv-w2m0m-tM8NEiRptA_33_9"></a><a id="Tc_2b3tHj66Lk24yaWQk8HvGQ_33_12"></a><a id="Tc_xYyj0ryRJE6Pj5Q__2r5QQ_33_15"></a><a id="Tc_kAC1437Fp0KFXrJzlBXRGg_33_18"></a><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:33.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.8%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.03%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:4.21%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:7.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:6%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:7.3%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:7.3%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.11%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:7.37%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:0.49%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:33.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td colspan="18" style="vertical-align:bottom;white-space:nowrap;width:64.71%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Nine Months Ended </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.49%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:33.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td colspan="18" style="vertical-align:bottom;white-space:nowrap;width:64.71%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">September 30, 2023</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.49%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:33.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.8%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.03%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.21%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:8.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Additional</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:8.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-size:7pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:8.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Total</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.49%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td></tr><tr><td style="vertical-align:bottom;width:33.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td colspan="4" style="vertical-align:bottom;white-space:nowrap;width:16.79%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Common&#160;Stock</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td colspan="4" style="vertical-align:bottom;white-space:nowrap;width:15.85%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Treasury&#160;Stock</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:8.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Paid-In</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:8.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Retained</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:8.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Stockholders&#8217;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.49%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td></tr><tr><td style="vertical-align:bottom;width:33.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.8%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Shares</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:5.25%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Amount</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.08%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Shares</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:7.03%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Amount</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:8.33%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Capital</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:8.33%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Earnings</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:8.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Equity</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.49%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td></tr><tr><td style="vertical-align:bottom;width:33.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;margin:0pt;">BALANCE AT DECEMBER 31, 2022</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.8%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_shares_YK1c03HsOkOiDLLsAeYHoA" contextRef="As_Of_12_31_2022_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember_jd1AYHA2ckyDgIPkOhtN4g" decimals="INF" format="ixt:numdotdecimal" name="us-gaap:CommonStockSharesIssued" scale="0" id="Tc_wPReZg5fukWwdBHrTYfTnA_6_2">41,123,365</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.03%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.21%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="As_Of_12_31_2022_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember_jd1AYHA2ckyDgIPkOhtN4g" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:StockholdersEquity" scale="3" id="Tc_eEp_yB0hTEyNZ7JoamMQBA_6_5">411</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt;"> (<ix:nonFraction unitRef="Unit_Standard_shares_YK1c03HsOkOiDLLsAeYHoA" contextRef="As_Of_12_31_2022_us-gaap_StatementEquityComponentsAxis_us-gaap_TreasuryStockCommonMember_0E-fjy0uWEKri5BSVKBJMA" decimals="INF" format="ixt:numdotdecimal" name="us-gaap:TreasuryStockCommonShares" sign="-" scale="0" id="Tc_H9fea-_lPUy8ObMK4fZ-WQ_6_7">5,362,224</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="As_Of_12_31_2022_us-gaap_StatementEquityComponentsAxis_us-gaap_TreasuryStockCommonMember_0E-fjy0uWEKri5BSVKBJMA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:StockholdersEquity" sign="-" scale="3" id="Tc_Kv8SkdrASUaTPvRu1ls5Yw_6_10">187,212</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.3%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="As_Of_12_31_2022_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember_HxJsUy70f0eu-ec_UvDOcQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:StockholdersEquity" scale="3" id="Tc_anGjPygAJkCVl97y49FMKw_6_13">332,080</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.3%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="As_Of_12_31_2022_us-gaap_StatementEquityComponentsAxis_us-gaap_RetainedEarningsMember_Ltidt_uNakiZoGFqd_UsYQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:StockholdersEquity" scale="3" id="Tc_YJnSJjIrQkyttzPtSGXwKA_6_16">854,644</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.11%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.37%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="As_Of_12_31_2022_-q309bsKT0i3jZ5ZPwDgew" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:StockholdersEquity" scale="3" id="Tc_r6iPoLIkfk6vGcyDF3V6Ag_6_19">999,923</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.49%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:33.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;margin:0pt 0pt 0pt 12pt;">Net income</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.8%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.03%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.21%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_1_1_2023_To_3_31_2023_us-gaap_StatementEquityComponentsAxis_us-gaap_RetainedEarningsMember_Aw1vox8rnUCTCSpKHgL90Q" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:ProfitLoss" scale="3" id="Tc_LHUvI3tm20eqCKgrr2E7Dw_7_16">57,216</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.11%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.37%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_1_1_2023_To_3_31_2023_H23KnShKiEqNJR3rELr9eA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:ProfitLoss" scale="3" id="Tc_3EzcINUJQUSpXcPYDljI1A_7_19">57,216</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.49%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:33.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;margin:0pt 0pt 0pt 12pt;">Issuance of Stock:</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.8%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.03%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.21%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.3%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.3%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.11%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.37%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.49%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:33.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;margin:0pt 0pt 0pt 18pt;">Issuance of shares for options exercised</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.8%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.03%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.21%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_shares_YK1c03HsOkOiDLLsAeYHoA" contextRef="Duration_1_1_2023_To_3_31_2023_us-gaap_StatementEquityComponentsAxis_us-gaap_TreasuryStockCommonMember_g9f-nDzbck2YIepY4G-9GQ" decimals="INF" format="ixt:numdotdecimal" name="us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised" scale="0" id="Tc_9kGxTHprAkadK3lV7KXJAA_9_7">1,000</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_1_1_2023_To_3_31_2023_us-gaap_StatementEquityComponentsAxis_us-gaap_TreasuryStockCommonMember_g9f-nDzbck2YIepY4G-9GQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised" scale="3" id="Tc_S6Ab4xKZu0K4iNk75rJDWw_9_10">36</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_1_1_2023_To_3_31_2023_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember_w92MrZLl80KReq7fJha7BA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised" sign="-" scale="3" id="Tc_dexNPnqzxEaOoJfZY6nBww_9_13">18</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.11%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.37%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_1_1_2023_To_3_31_2023_H23KnShKiEqNJR3rELr9eA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised" scale="3" id="Tc_vDDkDxoeoEq5qzrAKdCJ4w_9_19">18</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.49%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:33.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;margin:0pt 0pt 0pt 18pt;">Issuance of restricted stock &amp; performance stock</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.8%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.03%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.21%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_shares_YK1c03HsOkOiDLLsAeYHoA" contextRef="Duration_1_1_2023_To_3_31_2023_us-gaap_StatementEquityComponentsAxis_us-gaap_TreasuryStockCommonMember_g9f-nDzbck2YIepY4G-9GQ" decimals="INF" format="ixt:numdotdecimal" name="us-gaap:StockIssuedDuringPeriodSharesShareBasedCompensation" scale="0" id="Tc_pggImDxIx0iICZyTWy3M_w_10_7">31,960</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_1_1_2023_To_3_31_2023_us-gaap_StatementEquityComponentsAxis_us-gaap_TreasuryStockCommonMember_g9f-nDzbck2YIepY4G-9GQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation" scale="3" id="Tc_A1BGYI_H2keRZ0It4A8nZg_10_10">1,131</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.3%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_1_1_2023_To_3_31_2023_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember_w92MrZLl80KReq7fJha7BA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation" scale="3" id="Tc_Ngh65scaP0-8Z3xFaEPlWg_10_13">3,384</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.3%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.11%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.37%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_1_1_2023_To_3_31_2023_H23KnShKiEqNJR3rELr9eA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation" scale="3" id="Tc_dQ_WnnacEUGktXXIePevhQ_10_19">4,515</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.49%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:33.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;margin:0pt 0pt 0pt 12pt;">Shares received in lieu of tax withholding on vested stock</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.8%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.03%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.21%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt;"> (<ix:nonFraction unitRef="Unit_Standard_shares_YK1c03HsOkOiDLLsAeYHoA" contextRef="Duration_1_1_2023_To_3_31_2023_us-gaap_StatementEquityComponentsAxis_us-gaap_TreasuryStockCommonMember_g9f-nDzbck2YIepY4G-9GQ" decimals="INF" format="ixt:numdotdecimal" name="us-gaap:SharesPaidForTaxWithholdingForShareBasedCompensation" scale="0" id="Tc_tGyuGUcoOEadAo8MnlePKw_11_7">12,728</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_1_1_2023_To_3_31_2023_us-gaap_StatementEquityComponentsAxis_us-gaap_TreasuryStockCommonMember_g9f-nDzbck2YIepY4G-9GQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation" scale="3" id="Tc_Uay6nmHjVkK6oqovq6bOKg_11_10">1,798</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.11%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.37%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_1_1_2023_To_3_31_2023_H23KnShKiEqNJR3rELr9eA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation" scale="3" id="Tc_uBLlDef2bECwX_rQ0EPpgQ_11_19">1,798</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.49%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:33.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;margin:0pt 0pt 0pt 12pt;">Stock-based compensation</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.8%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.03%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.21%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.3%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_1_1_2023_To_3_31_2023_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember_w92MrZLl80KReq7fJha7BA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" scale="3" id="Tc_apS8g-i5I0iB-pGA4hdEmg_12_13">3,438</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.3%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.11%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.37%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_1_1_2023_To_3_31_2023_H23KnShKiEqNJR3rELr9eA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" scale="3" id="Tc_jbwYgc4cTEWkN8veYhoIJg_12_19">3,438</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.49%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:33.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;margin:0pt 0pt 0pt 12pt;">Dividends ($<ix:nonFraction unitRef="Unit_Divide_USD_shares_0ZfRDiWNfk6kp61F6IdjQA" contextRef="Duration_1_1_2023_To_3_31_2023_H23KnShKiEqNJR3rELr9eA" decimals="3" format="ixt:numdotdecimal" name="us-gaap:CommonStockDividendsPerShareDeclared" scale="0" id="Narr_3wZ5C6A4nEmvIWj9Y5Z14w">0.175</ix:nonFraction> per share)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.8%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.03%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.21%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_1_1_2023_To_3_31_2023_us-gaap_StatementEquityComponentsAxis_us-gaap_RetainedEarningsMember_Aw1vox8rnUCTCSpKHgL90Q" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DividendsCommonStockCash" scale="3" id="Tc_sTrZvYArUU2_boxUJ30WZw_13_16">6,254</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.11%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.37%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_1_1_2023_To_3_31_2023_H23KnShKiEqNJR3rELr9eA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DividendsCommonStockCash" scale="3" id="Tc_kTE5muB5Y0qtpy_TiyrA-w_13_19">6,254</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.49%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:33.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;margin:0pt 0pt 0pt 12pt;">Share repurchase</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.8%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.03%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.21%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.08%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt;"> (<ix:nonFraction unitRef="Unit_Standard_shares_YK1c03HsOkOiDLLsAeYHoA" contextRef="Duration_1_1_2023_To_3_31_2023_us-gaap_StatementEquityComponentsAxis_us-gaap_TreasuryStockCommonMember_g9f-nDzbck2YIepY4G-9GQ" decimals="INF" format="ixt:numdotdecimal" name="us-gaap:TreasuryStockSharesAcquired" scale="0" id="Tc_ZjbFra0H6kmU3J98aBwbIQ_14_7">29,400</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_1_1_2023_To_3_31_2023_us-gaap_StatementEquityComponentsAxis_us-gaap_TreasuryStockCommonMember_g9f-nDzbck2YIepY4G-9GQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:TreasuryStockValueAcquiredCostMethod" scale="3" id="Tc_lSlTE10CX0KwdHIliAx_0A_14_10">3,568</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.3%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.3%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.11%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.37%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_1_1_2023_To_3_31_2023_H23KnShKiEqNJR3rELr9eA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:TreasuryStockValueAcquiredCostMethod" scale="3" id="Tc_TfycZPwLBE2RHVA9lFB1Vg_14_19">3,568</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.49%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:33.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;margin:0pt;">BALANCE AT MARCH 31, 2023</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.8%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_shares_YK1c03HsOkOiDLLsAeYHoA" contextRef="As_Of_3_31_2023_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember_GqQElVI120G_fnR-Wj6JEA" decimals="INF" format="ixt:numdotdecimal" name="us-gaap:CommonStockSharesIssued" scale="0" id="Tc_C3vHn_k5R0yJvkbUr1OTzw_15_2">41,123,365</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.03%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.21%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="As_Of_3_31_2023_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember_GqQElVI120G_fnR-Wj6JEA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:StockholdersEquity" scale="3" id="Tc_j-z-Ji38DEmN3-4Fn2ErsA_15_5">411</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt;"> (<ix:nonFraction unitRef="Unit_Standard_shares_YK1c03HsOkOiDLLsAeYHoA" contextRef="As_Of_3_31_2023_us-gaap_StatementEquityComponentsAxis_us-gaap_TreasuryStockCommonMember_MVSe43959kWoGkMdx8o3oA" decimals="INF" format="ixt:numdotdecimal" name="us-gaap:TreasuryStockCommonShares" sign="-" scale="0" id="Tc_aJqu0JcmO0a0bxB84Fqrng_15_7">5,371,392</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="As_Of_3_31_2023_us-gaap_StatementEquityComponentsAxis_us-gaap_TreasuryStockCommonMember_MVSe43959kWoGkMdx8o3oA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:StockholdersEquity" sign="-" scale="3" id="Tc_Mw6WWYrvnEWl50BgyHptuQ_15_10">191,411</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="As_Of_3_31_2023_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember_0AeYUFRn1kGtjsTyvhxwgA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:StockholdersEquity" scale="3" id="Tc_YvNjLGNEO028i47DLXgpmQ_15_13">338,884</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="As_Of_3_31_2023_us-gaap_StatementEquityComponentsAxis_us-gaap_RetainedEarningsMember_YHaH3GP0S0msvUbdJx9WYw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:StockholdersEquity" scale="3" id="Tc_1gAasPpbgUWRpcQRuycrgg_15_16">905,606</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.11%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.37%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="As_Of_3_31_2023_rI4kWnhsEUqWMYWZ0HR51g" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:StockholdersEquity" scale="3" id="Tc_-wj3jrmgOEmjuuWGDVXrtQ_15_19">1,053,490</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.49%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:33.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;margin:0pt 0pt 0pt 12pt;">Net income</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.8%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.03%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.21%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.3%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.3%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_4_1_2023_To_6_30_2023_us-gaap_StatementEquityComponentsAxis_us-gaap_RetainedEarningsMember_qajS3b2wo02nQqc4tAHFAg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:ProfitLoss" scale="3" id="Tc_b0ilCNtAsU6MhR0FAmJXpA_16_16">69,476</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.11%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.37%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_4_1_2023_To_6_30_2023__ElO6pinZkqcX7BvHZvATw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:ProfitLoss" scale="3" id="Tc_iBYI0IvR60GyatlYn-I2ng_16_19">69,476</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.49%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:33.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;margin:0pt 0pt 0pt 12pt;">Issuance of Stock:</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.8%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.03%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.21%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.11%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.37%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.49%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:33.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;margin:0pt 0pt 0pt 18pt;">Issuance of shares for options exercised</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.8%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.03%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.21%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.3%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.3%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.11%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.37%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.49%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:33.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;margin:0pt 0pt 0pt 18pt;">Issuance of restricted stock &amp; performance stock</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.8%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.03%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.21%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_shares_YK1c03HsOkOiDLLsAeYHoA" contextRef="Duration_4_1_2023_To_6_30_2023_us-gaap_StatementEquityComponentsAxis_us-gaap_TreasuryStockCommonMember_0KM7HwwZUUSAEOBlTGDKCA" decimals="INF" format="ixt:numdotdecimal" name="us-gaap:StockIssuedDuringPeriodSharesShareBasedCompensation" scale="0" id="Tc_NF4Y-L-epEOwTcT5NXUPAw_19_7">61,505</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_4_1_2023_To_6_30_2023_us-gaap_StatementEquityComponentsAxis_us-gaap_TreasuryStockCommonMember_0KM7HwwZUUSAEOBlTGDKCA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation" scale="3" id="Tc__-_Cyun130meG7NScgGdjA_19_10">2,220</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_4_1_2023_To_6_30_2023_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember_OOET7gOWT0i386w9VvqgSw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation" sign="-" scale="3" id="Tc_P28yVKHrZ0-KIF-phwuusw_19_13">2,220</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.11%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.37%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.49%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:33.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;margin:0pt 0pt 0pt 12pt;">Shares received in lieu of tax withholding on vested stock</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.8%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.03%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.21%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt;"> (<ix:nonFraction unitRef="Unit_Standard_shares_YK1c03HsOkOiDLLsAeYHoA" contextRef="Duration_4_1_2023_To_6_30_2023_us-gaap_StatementEquityComponentsAxis_us-gaap_TreasuryStockCommonMember_0KM7HwwZUUSAEOBlTGDKCA" decimals="INF" format="ixt:numdotdecimal" name="us-gaap:SharesPaidForTaxWithholdingForShareBasedCompensation" scale="0" id="Tc_2kR3bQd2L02_3ieqLjrsiQ_20_7">19,739</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_4_1_2023_To_6_30_2023_us-gaap_StatementEquityComponentsAxis_us-gaap_TreasuryStockCommonMember_0KM7HwwZUUSAEOBlTGDKCA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation" scale="3" id="Tc_3zHflVCDBU6vsdr5YU5S3Q_20_10">2,891</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.3%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.3%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.11%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.37%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_4_1_2023_To_6_30_2023__ElO6pinZkqcX7BvHZvATw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation" scale="3" id="Tc_aTW_zW_EbkqobIae1aPONA_20_19">2,891</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.49%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:33.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;margin:0pt 0pt 0pt 12pt;">Stock-based compensation</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.8%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.03%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.21%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_4_1_2023_To_6_30_2023_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember_OOET7gOWT0i386w9VvqgSw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" scale="3" id="Tc_vvt2WsT9VES7Hof6pkklmQ_21_13">1,749</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.11%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.37%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_4_1_2023_To_6_30_2023__ElO6pinZkqcX7BvHZvATw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" scale="3" id="Tc_l0btaEXmhk6tn8yo1TaUBw_21_19">1,749</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.49%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:33.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;margin:0pt 0pt 0pt 12pt;">Dividends ($<ix:nonFraction unitRef="Unit_Divide_USD_shares_0ZfRDiWNfk6kp61F6IdjQA" contextRef="Duration_4_1_2023_To_6_30_2023__ElO6pinZkqcX7BvHZvATw" decimals="2" format="ixt:numdotdecimal" name="us-gaap:CommonStockDividendsPerShareDeclared" scale="0" id="Narr_VGaGxtwcFUOKYrRYvtLLBg">0.20</ix:nonFraction> per share)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.8%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.03%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.21%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.3%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.3%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_4_1_2023_To_6_30_2023_us-gaap_StatementEquityComponentsAxis_us-gaap_RetainedEarningsMember_qajS3b2wo02nQqc4tAHFAg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DividendsCommonStockCash" scale="3" id="Tc_ELy-ZUbYwkCY8zrWwUnHYw_22_16">7,152</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.11%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.37%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_4_1_2023_To_6_30_2023__ElO6pinZkqcX7BvHZvATw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DividendsCommonStockCash" scale="3" id="Tc_k3nU1K0KAkW1WgmpkPDfIw_22_19">7,152</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.49%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:33.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;margin:0pt 0pt 0pt 12pt;">Share repurchase</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.8%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.03%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.21%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.08%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt;"> (<ix:nonFraction unitRef="Unit_Standard_shares_YK1c03HsOkOiDLLsAeYHoA" contextRef="Duration_4_1_2023_To_6_30_2023_us-gaap_StatementEquityComponentsAxis_us-gaap_TreasuryStockCommonMember_0KM7HwwZUUSAEOBlTGDKCA" decimals="INF" format="ixt:numdotdecimal" name="us-gaap:TreasuryStockSharesAcquired" scale="0" id="Tc_Uu20UiM-gUqUCA4xlxMLTg_23_7">24,000</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_4_1_2023_To_6_30_2023_us-gaap_StatementEquityComponentsAxis_us-gaap_TreasuryStockCommonMember_0KM7HwwZUUSAEOBlTGDKCA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:TreasuryStockValueAcquiredCostMethod" scale="3" id="Tc_QIYzK99AuUmDIqJULJ4T5A_23_10">3,208</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.3%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.3%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.11%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.37%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_4_1_2023_To_6_30_2023__ElO6pinZkqcX7BvHZvATw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:TreasuryStockValueAcquiredCostMethod" scale="3" id="Tc_cH1ANue5FEuGabMEHUYn_g_23_19">3,208</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.49%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:33.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;margin:0pt;">BALANCE AT JUNE 30, 2023</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.8%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_shares_YK1c03HsOkOiDLLsAeYHoA" contextRef="As_Of_6_30_2023_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember_bCsm-GJ2k0O8PvX-0xSefw" decimals="INF" format="ixt:numdotdecimal" name="us-gaap:CommonStockSharesIssued" scale="0" id="Tc_am5fVQb_E0-C0R4s_66chQ_24_2">41,123,365</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.03%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.21%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="As_Of_6_30_2023_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember_bCsm-GJ2k0O8PvX-0xSefw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:StockholdersEquity" scale="3" id="Tc_5yHyCl0DWEetj5zjny_AFg_24_5">411</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt;"> (<ix:nonFraction unitRef="Unit_Standard_shares_YK1c03HsOkOiDLLsAeYHoA" contextRef="As_Of_6_30_2023_us-gaap_StatementEquityComponentsAxis_us-gaap_TreasuryStockCommonMember_7ZCIjuMwc0yqYTkNl5XEwg" decimals="INF" format="ixt:numdotdecimal" name="us-gaap:TreasuryStockCommonShares" sign="-" scale="0" id="Tc_DsnhJoUsMkOZszJhfZ4g1Q_24_7">5,353,626</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="As_Of_6_30_2023_us-gaap_StatementEquityComponentsAxis_us-gaap_TreasuryStockCommonMember_7ZCIjuMwc0yqYTkNl5XEwg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:StockholdersEquity" sign="-" scale="3" id="Tc_L6YYzYuXs0iUHZ1lajV45g_24_10">195,290</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.3%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="As_Of_6_30_2023_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember_eUOzUQVlskWz5TPjuCeKzA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:StockholdersEquity" scale="3" id="Tc_Ff1Bj-DBO0aGlhqvfBP4Ow_24_13">338,413</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.3%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="As_Of_6_30_2023_us-gaap_StatementEquityComponentsAxis_us-gaap_RetainedEarningsMember_hWcGX1hQSk2wZm-obHvvlg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:StockholdersEquity" scale="3" id="Tc_p9bfzdHan0qoiSfothZ6qA_24_16">967,930</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.11%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.37%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="As_Of_6_30_2023_1H6Df8Z6mk-jEaG-3RVOiw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:StockholdersEquity" scale="3" id="Tc_w0WEjspB_k6SYUyIuQorJg_24_19">1,111,464</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.49%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:33.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;margin:0pt 0pt 0pt 12pt;">Net income</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.8%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.03%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.21%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_7_1_2023_To_9_30_2023_us-gaap_StatementEquityComponentsAxis_us-gaap_RetainedEarningsMember_hh3TIbxMZkmJt5_HIPx80w" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:ProfitLoss" scale="3" id="Tc_a_XGh1nueUuTs4elkTJ44g_25_16">105,125</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.11%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.37%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_7_1_2023_To_9_30_2023_S4fUa5HYuk6ZPxhUrn5m5w" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:ProfitLoss" scale="3" id="Tc_WfX63VUT8EC7oox9fGOfqw_25_19">105,125</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.49%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:33.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;margin:0pt 0pt 0pt 12pt;">Issuance of Stock:</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.8%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.03%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.21%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.3%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.3%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.11%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.37%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.49%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:33.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;margin:0pt 0pt 0pt 18pt;">Issuance of shares for options exercised</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.8%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.03%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.21%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.11%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.37%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.49%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:33.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;margin:0pt 0pt 0pt 18pt;">Issuance of restricted stock &amp; performance stock</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.8%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.03%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.21%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_shares_YK1c03HsOkOiDLLsAeYHoA" contextRef="Duration_7_1_2023_To_9_30_2023_us-gaap_StatementEquityComponentsAxis_us-gaap_TreasuryStockCommonMember_y_DckiuCiUukzdxoeufHBQ" decimals="INF" format="ixt:numdotdecimal" name="us-gaap:StockIssuedDuringPeriodSharesShareBasedCompensation" scale="0" id="Tc_eV6peA9YSEy_ND8v5dNVYA_28_7">761</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_7_1_2023_To_9_30_2023_us-gaap_StatementEquityComponentsAxis_us-gaap_TreasuryStockCommonMember_y_DckiuCiUukzdxoeufHBQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation" scale="3" id="Tc_IJk2-PL4jkeMauZVTylYEg_28_10">28</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.3%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_7_1_2023_To_9_30_2023_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember_204q6j4d9U2AZI6d8ovCvw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation" sign="-" scale="3" id="Tc_zPtxIJM8MkWa8LuhU2JZWw_28_13">28</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.3%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.11%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.37%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.49%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:33.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;margin:0pt 0pt 0pt 12pt;">Shares received in lieu of tax withholding on vested stock</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.8%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.03%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.21%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt;"> (<ix:nonFraction unitRef="Unit_Standard_shares_YK1c03HsOkOiDLLsAeYHoA" contextRef="Duration_7_1_2023_To_9_30_2023_us-gaap_StatementEquityComponentsAxis_us-gaap_TreasuryStockCommonMember_y_DckiuCiUukzdxoeufHBQ" decimals="INF" format="ixt:numdotdecimal" name="us-gaap:SharesPaidForTaxWithholdingForShareBasedCompensation" scale="0" id="Tc_dohzPMAHYEyLz82udKHI9A_29_7">185</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_7_1_2023_To_9_30_2023_us-gaap_StatementEquityComponentsAxis_us-gaap_TreasuryStockCommonMember_y_DckiuCiUukzdxoeufHBQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation" scale="3" id="Tc_VpVzFtpgSEKq9Cc7Lxyxgw_29_10">36</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.11%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.37%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_7_1_2023_To_9_30_2023_S4fUa5HYuk6ZPxhUrn5m5w" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation" scale="3" id="Tc_-j4UnmMgp029W74VibefJg_29_19">36</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.49%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:33.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;margin:0pt 0pt 0pt 12pt;">Stock-based compensation</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.8%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.03%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.21%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.3%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_7_1_2023_To_9_30_2023_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember_204q6j4d9U2AZI6d8ovCvw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" scale="3" id="Tc_F0hJweb9v02QEnMQLj_lqA_30_13">445</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.3%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.11%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.37%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_7_1_2023_To_9_30_2023_S4fUa5HYuk6ZPxhUrn5m5w" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" scale="3" id="Tc_Q5Rrk45KgkWwJenDcMqnNA_30_19">445</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.49%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:33.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;margin:0pt 0pt 0pt 12pt;">Dividends ($<ix:nonFraction unitRef="Unit_Divide_USD_shares_0ZfRDiWNfk6kp61F6IdjQA" contextRef="Duration_7_1_2023_To_9_30_2023_S4fUa5HYuk6ZPxhUrn5m5w" decimals="3" format="ixt:numdotdecimal" name="us-gaap:CommonStockDividendsPerShareDeclared" scale="0" id="Narr_rrs_uLRYUUWMrJJYZCtjsg">0.225</ix:nonFraction> per share)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.8%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.03%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.21%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_7_1_2023_To_9_30_2023_us-gaap_StatementEquityComponentsAxis_us-gaap_RetainedEarningsMember_hh3TIbxMZkmJt5_HIPx80w" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DividendsCommonStockCash" scale="3" id="Tc__NTfEw7arESrGjALc-Dprw_31_16">8,049</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.11%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.37%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_7_1_2023_To_9_30_2023_S4fUa5HYuk6ZPxhUrn5m5w" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DividendsCommonStockCash" scale="3" id="Tc_MNXRkz25YUeB7LTh2wn9EA_31_19">8,049</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.49%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:33.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;margin:0pt 0pt 0pt 12pt;">Share repurchase</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.8%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.03%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.21%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.08%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt;"> (<ix:nonFraction unitRef="Unit_Standard_shares_YK1c03HsOkOiDLLsAeYHoA" contextRef="Duration_7_1_2023_To_9_30_2023_us-gaap_StatementEquityComponentsAxis_us-gaap_TreasuryStockCommonMember_y_DckiuCiUukzdxoeufHBQ" decimals="INF" format="ixt:numdotdecimal" name="us-gaap:TreasuryStockSharesAcquired" scale="0" id="Tc_kvvJyf72OUaNsCHl0vgFzA_32_7">10,250</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_7_1_2023_To_9_30_2023_us-gaap_StatementEquityComponentsAxis_us-gaap_TreasuryStockCommonMember_y_DckiuCiUukzdxoeufHBQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:TreasuryStockValueAcquiredCostMethod" scale="3" id="Tc_mWvAFIB6j0qOq8VfS6A1eg_32_10">1,787</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.3%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.3%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.11%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.37%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_7_1_2023_To_9_30_2023_S4fUa5HYuk6ZPxhUrn5m5w" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:TreasuryStockValueAcquiredCostMethod" scale="3" id="Tc_hm1NgRZNh0-UwkHqRaTYSg_32_19">1,787</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.49%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:33.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;margin:0pt;">BALANCE AT SEPTEMBER 30, 2023</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.8%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_shares_YK1c03HsOkOiDLLsAeYHoA" contextRef="As_Of_9_30_2023_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember_goYxMkcD80mW87QWqQRQjA" decimals="INF" format="ixt:numdotdecimal" name="us-gaap:CommonStockSharesIssued" scale="0" id="Tc_vmUYKzxbhkSECX9CIzjrCQ_33_2">41,123,365</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.03%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.21%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="As_Of_9_30_2023_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember_goYxMkcD80mW87QWqQRQjA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:StockholdersEquity" scale="3" id="Tc_8Iz2XxXOuUG9ghqqZNsY7w_33_5">411</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.08%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt;"> (<ix:nonFraction unitRef="Unit_Standard_shares_YK1c03HsOkOiDLLsAeYHoA" contextRef="As_Of_9_30_2023_us-gaap_StatementEquityComponentsAxis_us-gaap_TreasuryStockCommonMember_PfWQst0sZkGVJo1TkRwV9A" decimals="INF" format="ixt:numdotdecimal" name="us-gaap:TreasuryStockCommonShares" sign="-" scale="0" id="Tc_DysmKvWzjEeF0R6lfmPG5w_33_7">5,363,300</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="As_Of_9_30_2023_us-gaap_StatementEquityComponentsAxis_us-gaap_TreasuryStockCommonMember_PfWQst0sZkGVJo1TkRwV9A" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:StockholdersEquity" sign="-" scale="3" id="Tc_UVUg2PI6HEqM-XO6gXYkWg_33_10">197,085</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.3%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="As_Of_9_30_2023_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember_DTKQ77I2gE-QJ1KPR-Wqcg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:StockholdersEquity" scale="3" id="Tc_uC_NlUxo_Eqi50uuRVl-AA_33_13">338,830</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.3%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="As_Of_9_30_2023_us-gaap_StatementEquityComponentsAxis_us-gaap_RetainedEarningsMember_U3nCX3aNDEWCX8TCtyxD9Q" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:StockholdersEquity" scale="3" id="Tc_amI8UlineU2KVwcjTeFvKg_33_16">1,065,006</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.11%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.37%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="As_Of_9_30_2023_Cz0YiFrEwkyvL950Hk4Vxw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:StockholdersEquity" scale="3" id="Tc_BYZzSjMJFkiJ_OmZbQqm3Q_33_19">1,207,162</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.49%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></div></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:12pt 0pt 0pt 0pt;">4</p></div></div>
<div style="background-color:#000000;clear:both;height:2pt;page-break-after:always;width:79.41%;border:0;margin:30pt 10.29% 30pt 10.29%;"></div><div style="max-width:100%;padding-left:10.29%;padding-right:10.29%;position:relative;"><div style="margin-top:21.6pt;min-height:41.4pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 30pt 0pt;"><a href="#Toc"><span style="font-style:normal;font-weight:normal;">Table of Contents</span></a></p></div><div style="clear:both;margin-left:-10.0pt;margin-right:-10.0pt;max-width:100%;position:relative;width:calc(100% + 20.0pt);"><div style="padding-left:10pt;padding-right:10pt;position:relative;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 10pt 0pt;"><b style="font-weight:bold;">COMFORT SYSTEMS USA,&#160;INC.</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 10pt 0pt;"><b style="font-weight:bold;">CONSOLIDATED STATEMENTS OF STOCKHOLDERS&#8217; EQUITY</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 10pt 0pt;"><b style="font-weight:bold;">(In Thousands, Except Share Amounts)</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:10pt 0pt 0pt 0pt;"><b style="font-weight:bold;">(Unaudited)</b></p><a id="_c01f58af_4598_4c65_ae4c_8b3c1f27965a"></a><a id="Tc_t3Jl15sczEu2nn9u0uwdHA_1_2"></a><a id="Tc_My9WS3Jl6E6_xLBZ_0_Qzw_2_2"></a><a id="Tc_U9BAVhh0UU2yMiNHmB4n-g_3_12"></a><a id="Tc_j6d6QZqREkKAHlMLylpvvA_3_18"></a><a id="Tc_c68h4qbLF0afB8yPmvyiCw_4_2"></a><a id="Tc_2Cupyds_V0uhfZK2wafGng_4_7"></a><a id="Tc_Wql75vbz7k-35-dtJK7mUg_4_12"></a><a id="Tc_GU-yUVAqPkSuVj-MPdWV_A_4_15"></a><a id="Tc_q_PZMSdbLE-bo5B7NItYYw_4_18"></a><a id="Tc_gDImNkgdFkWWUBX3mxC6SA_5_2"></a><a id="Tc_Uuh4KgOkk0yeSEuHU2ykUA_5_4"></a><a id="Tc_B71qPk-tVUiM5xq-kfZNNw_5_7"></a><a id="Tc__sd12Gc780i5PWACxjmDqQ_5_9"></a><a id="Tc_onlW1tsbGE-5WTSbgbhdRQ_5_12"></a><a id="Tc_f3J-tmlGIkSlyzQTlJNbkQ_5_15"></a><a id="Tc_CXqZRu-n_0a4EEc2lkd-XQ_5_18"></a><a id="Tc_28EOyW-bOUC0Kr6QcHbXdw_6_0"></a><a id="Tc_wDs6d_-ia0GcelIxXQMa3A_6_4"></a><a id="Tc_SAgKfIKFakSd-_4fzy_-Hw_6_9"></a><a id="Tc_ie2uTzwwQUqzfep_A0YdeQ_6_12"></a><a id="Tc_y_lpn1-k-UmBV-ZMVgthJw_6_15"></a><a id="Tc_ycSS9kt2SUCfOU4tIjH2JQ_6_18"></a><a id="Tc_IWDhWOpvRk-XPj85dIgDog_7_0"></a><a id="Tc_4PFmqsUUM0iLVCxP0PYjSw_7_2"></a><a id="Tc_Tc7zjvp05ECjUn2wLz1oMA_7_5"></a><a id="Tc__wtcF3osUEa9FDP5CUxUVw_7_7"></a><a id="Tc_-e-tCedbK0aeug9VcfBzbg_7_10"></a><a id="Tc_CB_gQZIZgk2SXM15MnrRLw_7_13"></a><a id="Tc__8nwxOsVEkyzOq3TNGtHhg_8_0"></a><a id="Tc_KjdsIN9QR0GKbQkCbZDOKQ_9_0"></a><a id="Tc_b22VTagvw0iXKGFsMaQxfA_9_2"></a><a id="Tc_rpZJEf4Wp0qEZcVfj0cvHQ_9_5"></a><a id="Tc_r0cFQ1NX1EKo4XoSvIYIyg_9_16"></a><a id="Tc_0bd_Ohs5b0iyhwettzbDxg_10_0"></a><a id="Tc_L_1CGmH0bUGEUQlIf_Hf-Q_10_2"></a><a id="Tc_tUiJipeExkuSIwGx2P5kFQ_10_5"></a><a id="Tc_1r5UANVgBUubNJGc9KVZIg_10_16"></a><a id="Tc_2tGFUMRO_ECrSbDeHyjX1Q_11_0"></a><a id="Tc_-e6Zpn6oVEm66Trd_AYsHQ_11_2"></a><a id="Tc_foOhqIpJhE2JZgltoeWLmA_11_5"></a><a id="Tc_qPoBREvK5kG5AW2DNl6L7w_11_13"></a><a id="Tc_c_jlVFePCUaTgFn4JuXa1g_11_16"></a><a id="Tc_Sfi4FKjruUi-o2g77Jmo9Q_12_0"></a><a id="Tc_JGT27_HQhUmK7xEqzgh5kw_12_2"></a><a id="Tc_h15EXQwSRkyChoMZEDRFDg_12_5"></a><a id="Tc_cXt3qjRb7U2qVW_sQMf1sg_12_7"></a><a id="Tc_dlObKo4zyEGOPl88q8cLyA_12_10"></a><a id="Tc_dY_embzZVkqQ8x_feIlZnA_12_16"></a><a id="Tc_AZ4xGjoOIUqBDeaDye8I4w_13_0"></a><a id="Tc_gQCd7B7830WMLghcgcHz9g_13_2"></a><a id="Tc_1oAmTzuy5EKHlA3zYoy3kg_13_5"></a><a id="Tc_S0COK43frUakIwpuhZG-RQ_13_7"></a><a id="Tc_FkigRRUL-0C02unmLHlyOw_13_10"></a><a id="Tc_K6KWIeWy0kGcpLNLtOgi_g_13_13"></a><a id="Tc_h8d3duSrukmVD-olzbdaWw_14_0"></a><a id="Tc_S5t1Y9py_0yEgl-EOOeXDQ_14_2"></a><a id="Tc_R6AFPd0nokiJ-Qyvs33yQA_14_5"></a><a id="Tc_MqO4Pxx5LU6ZR0wcf2-FWA_14_13"></a><a id="Tc_KJjWidoxMU-RDmmHfZnHaw_14_16"></a><a id="Tc_6jybSkAkDEqh0C_n0cWEOg_15_0"></a><a id="Tc_5nmisK59Wkucnz_KGAk4eA_16_0"></a><a id="Tc_RqxMxiSVg0uADJWDrWiieg_16_2"></a><a id="Tc_9ooM9wKoGEuthtMBBb04BQ_16_5"></a><a id="Tc_mzfhZfKdmkicHraWgYz6lA_16_7"></a><a id="Tc_yDQ9jjNZtUGjRAkKfBbCDg_16_10"></a><a id="Tc_HksDWcO_2UqkDGgj6qSpFw_16_13"></a><a id="Tc_xfuf4cQUGEOuDIfRbt2TzQ_17_0"></a><a id="Tc_9wZuOTqnNESSnFjDb5fCrw_18_0"></a><a id="Tc_ZU7WQSDm5E-p5m5XdsupFg_18_2"></a><a id="Tc_UOjqhARywUCVYKKJaMAYeQ_18_5"></a><a id="Tc_749rETDqnEyyIYT3Q8LWEg_18_7"></a><a id="Tc_w1XrbjE_4U-KKjwy8PVJjA_18_10"></a><a id="Tc_WaOxFpcYEUqSfIVOkjcqyQ_18_13"></a><a id="Tc_0cPxr5Er0EuRlydNMPxeqQ_18_16"></a><a id="Tc_Omv0--vaPkqMWGeCLQoNSA_18_19"></a><a id="Tc_64gCTR_9H0ufEstxeeVrzQ_19_0"></a><a id="Tc_1RKnGY2umUSEfYAF5NE3hw_19_2"></a><a id="Tc_Y2sNrI624Uar7Yt2cwEDWA_19_5"></a><a id="Tc_oy7nQhReeEelGmXRshb1rA_19_16"></a><a id="Tc_CeRcNhdM5EClnImKU9YjKg_19_19"></a><a id="Tc_czARFh2Ck0qgpm3YMOgI9A_20_0"></a><a id="Tc_CTubI9MFxUqPK2Vp4dZtwQ_20_2"></a><a id="Tc_dbhegbzBEkOb5KgP2mG37w_20_5"></a><a id="Tc_aus5NIjxnUqx_1bUleQYyQ_20_13"></a><a id="Tc_VSENR3N0b0mKgh_1TrBVFw_20_16"></a><a id="Tc_RmoHCbIbMkutiSDxyVPi1g_21_0"></a><a id="Tc_JeyEhZnjaU2ebdmJvxtaiQ_21_2"></a><a id="Tc_XjX-5rl65UyJtTW7H2plng_21_5"></a><a id="Tc_SV-f-sZGIUObHFfHkC3slQ_21_7"></a><a id="Tc_6HuX46TCvEOe-F4LIlyrgg_21_10"></a><a id="Tc__S9-IcV7YUGeTssL0slRAg_21_16"></a><a id="Tc_vKrO6hH09UOnnwgghjbYFA_22_0"></a><a id="Tc_YlLVLyuBvUikfOTrtEcwWg_22_2"></a><a id="Tc_WNeHWRrkuU2KnBEQydRV1Q_22_5"></a><a id="Tc_tp6YtLEILkeUapRA0nmJbA_22_7"></a><a id="Tc_GFEmYR1dtUyAUku1LsbysQ_22_10"></a><a id="Tc_zinqDGS46E2r_r12rTx1aQ_22_13"></a><a id="Tc_ZDFaTDR1IE2r0fv4pTRzbA_23_0"></a><a id="Tc_mgIRd50hUkS1TFBf9kXC_w_23_2"></a><a id="Tc_DBbgoxsW-E-5AAONXNitYQ_23_5"></a><a id="Tc_tlUyuEa2vEChJvw0vV2e5g_23_13"></a><a id="Tc_UAN5CNVkq0WlldVePNJbTA_23_16"></a><a id="Tc_nwT85kHqXU2xeu_QwUvoRA_24_0"></a><a id="Tc_RDmD6YoDIEi0XIiOYxB59Q_25_0"></a><a id="Tc_ZLIG1Gb3skac5kD0sHNNjA_25_2"></a><a id="Tc_-KMStkBbU0iD0xTHRcQiDg_25_5"></a><a id="Tc_IHbme9_6L0GAIu5PxRvAYw_25_7"></a><a id="Tc__-3hDlOjI0-RaWTshXLW1w_25_10"></a><a id="Tc_xGmkZTlxTkaRajqm4DMPGw_25_13"></a><a id="Tc_JaOGqjIFVki-6S9v66gS8A_26_0"></a><a id="Tc_cQAkYWIpH0q2EjXVdxU45A_27_0"></a><a id="Tc_pbaXJ8dlM0OJ0mQbGvQ9Kg_27_2"></a><a id="Tc_zit38Z6TiUyMFkudtq63sA_27_5"></a><a id="Tc_BHXF9w3TvECqy--PxvvQHw_27_7"></a><a id="Tc_9xZL8kYF6EK_dDr4grjerg_27_10"></a><a id="Tc_leXbbUlNt0u-JOh8yn4MOA_27_13"></a><a id="Tc_TeXH4PBUCUe-lRQ9Y6cbAg_27_16"></a><a id="Tc_tYpntXmoIUGadyujue7wiw_27_19"></a><a id="Tc_WNN32hcdWEi8hvXHDiDeUg_28_0"></a><a id="Tc_mpzibyLVakqTdehSS19cJg_28_2"></a><a id="Tc_X4XPJLL7mkWc84iUAnCGRg_28_5"></a><a id="Tc_M_Jo2j1yQ0uVb0JT8r862g_28_16"></a><a id="Tc_egJVFc-W8E2Ojp5ETvthpA_28_19"></a><a id="Tc_Xky2Ls-poEyNqQyKqTvSOg_29_0"></a><a id="Tc_BIAmHT3lHEy2Y_JZNXkyIA_29_2"></a><a id="Tc_2BR5Vuw77UC5d04FJg5M7A_29_5"></a><a id="Tc_D20ql6R7gU2-LpEh7Q7Hcw_29_13"></a><a id="Tc_XKzmIDH1ek-93RNSkWzQ9Q_29_16"></a><a id="Tc_rwZ63PVNDUaB1f33RnBhdA_30_0"></a><a id="Tc_y-0bdEgOpECv0CevQNUI7Q_30_2"></a><a id="Tc_oY-YIQ91vEOqc4cZhFuoEA_30_5"></a><a id="Tc_B_qBE5EPVkSBMJ7EOr_WdQ_30_7"></a><a id="Tc_W5mb8iW1QU-eW3S7dfP3kA_30_10"></a><a id="Tc_C3ONMBy8KUGmmtCH9wlYCw_30_16"></a><a id="Tc_3ipTeP3DwE6jtwAmTBueOQ_31_0"></a><a id="Tc_-qZket_uZkaceAdfkUYwdg_31_2"></a><a id="Tc_f-VZnxP0KEee_xearnwXLw_31_5"></a><a id="Tc_qUjDLWZ3NEec1yg9qwx-Yg_31_7"></a><a id="Tc_Fh7EmiH1FESJm1Dn-lzW-Q_31_10"></a><a id="Tc_rbqlqKNeAEeCRvsTZI5ZeQ_31_13"></a><a id="Tc_Tqc6e39xLUS5GWmrQ9XYqQ_32_0"></a><a id="Tc_L7wggZa8w0SkLffCoM5SQg_32_2"></a><a id="Tc_VRNP7FKqX0KaQBc-Ylqw-g_32_5"></a><a id="Tc_yNg-2PFgQEa5nMKtL3U_ug_32_13"></a><a id="Tc_u5giV8rn80yQXID5g2L-tw_32_16"></a><a id="Tc_bjXWGh-qiUG5Bl-oKSCs3g_33_0"></a><a id="Tc_aF1Q0oeG30uxU2BGcSc60g_33_4"></a><a id="Tc_tY3v0YAldEG7byXTvrhxqQ_33_9"></a><a id="Tc_7OQ3qqLsaEueV2dGX73G1Q_33_12"></a><a id="Tc_uMOyQwuExkassTNYyqC3ww_33_15"></a><a id="Tc_YgvJMWGC1069jGYpUU6nYg_33_18"></a><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:33.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.8%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.03%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:4.21%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:7.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:6%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:7.3%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:7.3%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.11%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:7.37%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:0.49%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:33.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td colspan="18" style="vertical-align:bottom;white-space:nowrap;width:64.71%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Nine Months Ended </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.49%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:33.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td colspan="18" style="vertical-align:bottom;white-space:nowrap;width:64.71%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">September 30, 2024</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.49%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:33.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.8%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.03%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.21%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-size:7pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:8.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Additional</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-size:7pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-size:7pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-size:7pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:8.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Total</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.49%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:33.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td colspan="4" style="vertical-align:bottom;white-space:nowrap;width:16.79%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Common&#160;Stock</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td colspan="4" style="vertical-align:bottom;white-space:nowrap;width:15.85%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Treasury&#160;Stock</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:8.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Paid-In</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:8.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Retained</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:8.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Stockholders&#8217;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.49%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td></tr><tr><td style="vertical-align:bottom;width:33.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.8%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Shares</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:5.25%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Amount</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.08%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Shares</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:7.03%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Amount</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:8.33%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Capital</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:8.33%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Earnings</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:8.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Equity</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.49%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td></tr><tr><td style="vertical-align:bottom;width:33.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;margin:0pt;">BALANCE AT DECEMBER 31, 2023</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.8%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_shares_YK1c03HsOkOiDLLsAeYHoA" contextRef="As_Of_12_31_2023_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember_T-GK8ughAU-Ymn8SjNyefQ" decimals="INF" format="ixt:numdotdecimal" name="us-gaap:CommonStockSharesIssued" scale="0" id="Tc_2mR5FSrzc0SximvEx2yoMg_6_2">41,123,365</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.03%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.21%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="As_Of_12_31_2023_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember_T-GK8ughAU-Ymn8SjNyefQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:StockholdersEquity" scale="3" id="Tc_sgR58A88-km_b25a6eoQww_6_5">411</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt;"> (<ix:nonFraction unitRef="Unit_Standard_shares_YK1c03HsOkOiDLLsAeYHoA" contextRef="As_Of_12_31_2023_us-gaap_StatementEquityComponentsAxis_us-gaap_TreasuryStockCommonMember_WxG3JaTAz0C1Fg-OE_oPhQ" decimals="INF" format="ixt:numdotdecimal" name="us-gaap:TreasuryStockCommonShares" sign="-" scale="0" id="Tc_hUNEmYO2L0uTc4MFWiCWAQ_6_7">5,438,625</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="As_Of_12_31_2023_us-gaap_StatementEquityComponentsAxis_us-gaap_TreasuryStockCommonMember_WxG3JaTAz0C1Fg-OE_oPhQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:StockholdersEquity" sign="-" scale="3" id="Tc_H7_3KLYtD0a_1Um8VBzQZg_6_10">209,807</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.3%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="As_Of_12_31_2023_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember_Ew23JNCFwEeDRuV4V2E9SA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:StockholdersEquity" scale="3" id="Tc__PN72MXZmU6dzvandW-SZQ_6_13">339,562</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.3%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="As_Of_12_31_2023_us-gaap_StatementEquityComponentsAxis_us-gaap_RetainedEarningsMember_p1H1eeBRGEW14HqP_cu3Tg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:StockholdersEquity" scale="3" id="Tc_MeuGCoT2aka8aNMwIuGDIw_6_16">1,147,663</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.11%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.37%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="As_Of_12_31_2023_X7eqeHRTF0mRLJW7InVDdA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:StockholdersEquity" scale="3" id="Tc_Fjw2DWXFaUCi-8usdKLG9A_6_19">1,277,829</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.49%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:33.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;margin:0pt 0pt 0pt 12pt;">Net income</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.8%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.03%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.21%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_1_1_2024_To_3_31_2024_us-gaap_StatementEquityComponentsAxis_us-gaap_RetainedEarningsMember_88WYf2_I1USg-VDBGWdW5A" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:ProfitLoss" scale="3" id="Tc_FNjV5xnHikKYMl28KP9QcQ_7_16">96,319</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.11%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.37%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_1_1_2024_To_3_31_2024_3eDLXeHQHUqwFFCeVkNekQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:ProfitLoss" scale="3" id="Tc_WVlusEeKFESi7HWwMP-5uA_7_19">96,319</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.49%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:33.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;margin:0pt 0pt 0pt 12pt;">Issuance of Stock:</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.8%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.03%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.21%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.3%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.3%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.11%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.37%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.49%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:33.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;margin:0pt 0pt 0pt 18pt;">Issuance of shares for options exercised</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.8%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.03%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.21%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_shares_YK1c03HsOkOiDLLsAeYHoA" contextRef="Duration_1_1_2024_To_3_31_2024_us-gaap_StatementEquityComponentsAxis_us-gaap_TreasuryStockCommonMember_n0WWCqlMIEi_Xifgk4ElyA" decimals="INF" format="ixt:numdotdecimal" name="us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised" scale="0" id="Tc_dD-X53-A80-u06_PIIqpsQ_9_7">1,369</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_1_1_2024_To_3_31_2024_us-gaap_StatementEquityComponentsAxis_us-gaap_TreasuryStockCommonMember_n0WWCqlMIEi_Xifgk4ElyA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised" scale="3" id="Tc_5Kv4ztAypU-cFLVlzP3t4w_9_10">53</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_1_1_2024_To_3_31_2024_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember_Vpc_7DhSLkuyQLld5NTf2w" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised" sign="-" scale="3" id="Tc_0eetTi3hpkaC-HyLmMV8mw_9_13">26</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.11%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.37%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_1_1_2024_To_3_31_2024_3eDLXeHQHUqwFFCeVkNekQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised" scale="3" id="Tc_N2Epv_Ia20yY0YBbhmEDZQ_9_19">27</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.49%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:33.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;margin:0pt 0pt 0pt 18pt;">Issuance of restricted stock &amp; performance stock</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.8%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.03%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.21%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_shares_YK1c03HsOkOiDLLsAeYHoA" contextRef="Duration_1_1_2024_To_3_31_2024_us-gaap_StatementEquityComponentsAxis_us-gaap_TreasuryStockCommonMember_n0WWCqlMIEi_Xifgk4ElyA" decimals="INF" format="ixt:numdotdecimal" name="us-gaap:StockIssuedDuringPeriodSharesShareBasedCompensation" scale="0" id="Tc_mFBtcdPqzkqyKWsRUYfn_Q_10_7">17,018</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_1_1_2024_To_3_31_2024_us-gaap_StatementEquityComponentsAxis_us-gaap_TreasuryStockCommonMember_n0WWCqlMIEi_Xifgk4ElyA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation" scale="3" id="Tc_nI_DGv7yY0OVidLNV_wBQQ_10_10">657</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.3%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_1_1_2024_To_3_31_2024_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember_Vpc_7DhSLkuyQLld5NTf2w" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation" scale="3" id="Tc_9v3skpRqsECA10yP9JV7kA_10_13">4,696</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.3%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.11%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.37%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_1_1_2024_To_3_31_2024_3eDLXeHQHUqwFFCeVkNekQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation" scale="3" id="Tc_vib7MHpj8EO405_1OZO0wQ_10_19">5,353</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.49%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:33.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;margin:0pt 0pt 0pt 12pt;">Shares received in lieu of tax withholding on vested stock</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.8%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.03%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.21%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt;"> (<ix:nonFraction unitRef="Unit_Standard_shares_YK1c03HsOkOiDLLsAeYHoA" contextRef="Duration_1_1_2024_To_3_31_2024_us-gaap_StatementEquityComponentsAxis_us-gaap_TreasuryStockCommonMember_n0WWCqlMIEi_Xifgk4ElyA" decimals="INF" format="ixt:numdotdecimal" name="us-gaap:SharesPaidForTaxWithholdingForShareBasedCompensation" scale="0" id="Tc_QZfx9wehCEeIaBnVblB04g_11_7">6,763</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_1_1_2024_To_3_31_2024_us-gaap_StatementEquityComponentsAxis_us-gaap_TreasuryStockCommonMember_n0WWCqlMIEi_Xifgk4ElyA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation" scale="3" id="Tc_Ifp6N3WQYUKxaPbl8jS5OQ_11_10">2,126</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.11%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.37%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_1_1_2024_To_3_31_2024_3eDLXeHQHUqwFFCeVkNekQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation" scale="3" id="Tc_2AAuW1fBw0y_s5erMuVMYA_11_19">2,126</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.49%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:33.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;margin:0pt 0pt 0pt 12pt;">Stock-based compensation</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.8%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.03%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.21%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.3%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_1_1_2024_To_3_31_2024_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember_Vpc_7DhSLkuyQLld5NTf2w" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" scale="3" id="Tc_1-rdgMzR2kGb4V7Tta7A9Q_12_13">4,350</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.3%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.11%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.37%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_1_1_2024_To_3_31_2024_3eDLXeHQHUqwFFCeVkNekQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" scale="3" id="Tc_Y2dTl68C_EGXqI-yXgsj3g_12_19">4,350</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.49%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:33.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;margin:0pt 0pt 0pt 12pt;">Dividends ($<ix:nonFraction unitRef="Unit_Divide_USD_shares_0ZfRDiWNfk6kp61F6IdjQA" contextRef="Duration_1_1_2024_To_3_31_2024_3eDLXeHQHUqwFFCeVkNekQ" decimals="2" format="ixt:numdotdecimal" name="us-gaap:CommonStockDividendsPerShareDeclared" scale="0" id="Narr_zjt4VzodYUW2_OzyoWwGjg">0.25</ix:nonFraction> per share)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.8%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.03%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.21%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_1_1_2024_To_3_31_2024_us-gaap_StatementEquityComponentsAxis_us-gaap_RetainedEarningsMember_88WYf2_I1USg-VDBGWdW5A" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DividendsCommonStockCash" scale="3" id="Tc_iHijgoAiCky79RrQmM_OCw_13_16">8,921</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.11%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.37%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_1_1_2024_To_3_31_2024_3eDLXeHQHUqwFFCeVkNekQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DividendsCommonStockCash" scale="3" id="Tc_M3sVjH8vskKDvzgxpQnJcA_13_19">8,921</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.49%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:33.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;margin:0pt 0pt 0pt 12pt;">Share repurchase</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.8%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.03%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.21%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.08%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt;"> (<ix:nonFraction unitRef="Unit_Standard_shares_YK1c03HsOkOiDLLsAeYHoA" contextRef="Duration_1_1_2024_To_3_31_2024_us-gaap_StatementEquityComponentsAxis_us-gaap_TreasuryStockCommonMember_n0WWCqlMIEi_Xifgk4ElyA" decimals="INF" format="ixt:numdotdecimal" name="us-gaap:TreasuryStockSharesAcquired" scale="0" id="Tc_33EaWDbIgUORc1m8mE0-LQ_14_7">1,500</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_1_1_2024_To_3_31_2024_us-gaap_StatementEquityComponentsAxis_us-gaap_TreasuryStockCommonMember_n0WWCqlMIEi_Xifgk4ElyA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:TreasuryStockValueAcquiredCostMethod" scale="3" id="Tc_mo59ec3WSk6hsczBWfsyAw_14_10">295</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.3%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.3%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.11%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.37%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_1_1_2024_To_3_31_2024_3eDLXeHQHUqwFFCeVkNekQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:TreasuryStockValueAcquiredCostMethod" scale="3" id="Tc_cvH2L-RX6E-VmmeQlT44vg_14_19">295</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.49%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:33.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;margin:0pt;">BALANCE AT MARCH 31, 2024</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.8%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_shares_YK1c03HsOkOiDLLsAeYHoA" contextRef="As_Of_3_31_2024_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember_faNjppyvAkG95Lo5lfEFQA" decimals="INF" format="ixt:numdotdecimal" name="us-gaap:CommonStockSharesIssued" scale="0" id="Tc_NgCeq5zgUkucnDTufPreRg_15_2">41,123,365</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.03%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.21%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="As_Of_3_31_2024_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember_faNjppyvAkG95Lo5lfEFQA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:StockholdersEquity" scale="3" id="Tc_xhKs4qIAjkCi7PBS9aOCTg_15_5">411</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt;"> (<ix:nonFraction unitRef="Unit_Standard_shares_YK1c03HsOkOiDLLsAeYHoA" contextRef="As_Of_3_31_2024_us-gaap_StatementEquityComponentsAxis_us-gaap_TreasuryStockCommonMember_u9WlFz_I7USmDHCYxAti0g" decimals="INF" format="ixt:numdotdecimal" name="us-gaap:TreasuryStockCommonShares" sign="-" scale="0" id="Tc_0kCf6czNCUy1I3ejACok3g_15_7">5,428,501</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="As_Of_3_31_2024_us-gaap_StatementEquityComponentsAxis_us-gaap_TreasuryStockCommonMember_u9WlFz_I7USmDHCYxAti0g" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:StockholdersEquity" sign="-" scale="3" id="Tc_URVUpVuEHUehUBa4Oozm4Q_15_10">211,518</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="As_Of_3_31_2024_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember_gusb316CFEq_VuQbOr8B1w" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:StockholdersEquity" scale="3" id="Tc_JhaDv1_w00eLz65x5rqcTA_15_13">348,582</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="As_Of_3_31_2024_us-gaap_StatementEquityComponentsAxis_us-gaap_RetainedEarningsMember_Mf5SjU-Cp06KTb9FvCkxjg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:StockholdersEquity" scale="3" id="Tc_pb42rbetRU2CddZZDoZmrA_15_16">1,235,061</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.11%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.37%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="As_Of_3_31_2024_TuxXtlZ-cEeaT-E2a8UyqQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:StockholdersEquity" scale="3" id="Tc_2fLj-YmiK0KbezBecH7D8w_15_19">1,372,536</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.49%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:33.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;margin:0pt 0pt 0pt 12pt;">Net income</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.8%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.03%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.21%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.3%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.3%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_4_1_2024_To_6_30_2024_us-gaap_StatementEquityComponentsAxis_us-gaap_RetainedEarningsMember_MTAAMIW_sE-DxCrnUDth7g" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:ProfitLoss" scale="3" id="Tc_0do34w_JX0uxgfkea0IUVw_16_16">134,009</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.11%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.37%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_4_1_2024_To_6_30_2024_sROrhhIG1EWJb6sdFVCV5A" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:ProfitLoss" scale="3" id="Tc_qJN1Ccwc40G__ZLhyX-khw_16_19">134,009</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.49%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:33.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;margin:0pt 0pt 0pt 12pt;">Issuance of Stock:</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.8%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.03%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.21%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.11%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.37%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.49%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:33.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;margin:0pt 0pt 0pt 18pt;">Issuance of shares for options exercised</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.8%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.03%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.21%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.3%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.3%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.11%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.37%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.49%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:33.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;margin:0pt 0pt 0pt 18pt;">Issuance of restricted stock &amp; performance stock</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.8%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.03%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.21%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_shares_YK1c03HsOkOiDLLsAeYHoA" contextRef="Duration_4_1_2024_To_6_30_2024_us-gaap_StatementEquityComponentsAxis_us-gaap_TreasuryStockCommonMember_iuV_4b6WkESZTYOaWSSz5g" decimals="INF" format="ixt:numdotdecimal" name="us-gaap:StockIssuedDuringPeriodSharesShareBasedCompensation" scale="0" id="Tc_7G5V0m8BuUigOfCKo10CUw_19_7">47,344</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_4_1_2024_To_6_30_2024_us-gaap_StatementEquityComponentsAxis_us-gaap_TreasuryStockCommonMember_iuV_4b6WkESZTYOaWSSz5g" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation" scale="3" id="Tc_NjN55p6-0EKV33fyFiC8Nw_19_10">1,851</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_4_1_2024_To_6_30_2024_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember_Vg2IkYLjME2M1RDpLQhp_w" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation" sign="-" scale="3" id="Tc_Z96ihZUP7UeUQtet3hnGfg_19_13">1,851</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.11%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.37%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.49%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:33.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;margin:0pt 0pt 0pt 12pt;">Shares received in lieu of tax withholding on vested stock</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.8%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.03%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.21%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt;"> (<ix:nonFraction unitRef="Unit_Standard_shares_YK1c03HsOkOiDLLsAeYHoA" contextRef="Duration_4_1_2024_To_6_30_2024_us-gaap_StatementEquityComponentsAxis_us-gaap_TreasuryStockCommonMember_iuV_4b6WkESZTYOaWSSz5g" decimals="INF" format="ixt:numdotdecimal" name="us-gaap:SharesPaidForTaxWithholdingForShareBasedCompensation" scale="0" id="Tc_I4MxPvfTMEuh5eHTLSfORQ_20_7">15,817</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_4_1_2024_To_6_30_2024_us-gaap_StatementEquityComponentsAxis_us-gaap_TreasuryStockCommonMember_iuV_4b6WkESZTYOaWSSz5g" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation" scale="3" id="Tc_xFkv7rv9y0yqMiPohZ_6UQ_20_10">5,062</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.3%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.3%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.11%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.37%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_4_1_2024_To_6_30_2024_sROrhhIG1EWJb6sdFVCV5A" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation" scale="3" id="Tc_qROwfhb4c0OANQpobBIUKQ_20_19">5,062</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.49%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:33.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;margin:0pt 0pt 0pt 12pt;">Stock-based compensation</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.8%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.03%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.21%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_4_1_2024_To_6_30_2024_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember_Vg2IkYLjME2M1RDpLQhp_w" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" scale="3" id="Tc_AvA-NN-GK06oqOG1p8fh8Q_21_13">2,368</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.11%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.37%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_4_1_2024_To_6_30_2024_sROrhhIG1EWJb6sdFVCV5A" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" scale="3" id="Tc_rrlb5HmubEaS8SeH3KEdKQ_21_19">2,368</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.49%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:33.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;margin:0pt 0pt 0pt 12pt;">Dividends ($<ix:nonFraction unitRef="Unit_Divide_USD_shares_0ZfRDiWNfk6kp61F6IdjQA" contextRef="Duration_4_1_2024_To_6_30_2024_sROrhhIG1EWJb6sdFVCV5A" decimals="2" format="ixt:numdotdecimal" name="us-gaap:CommonStockDividendsPerShareDeclared" scale="0" id="Narr_HQ2Llde5C0qqPYSQFt9KCw">0.30</ix:nonFraction> per share)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.8%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.03%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.21%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.3%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.3%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_4_1_2024_To_6_30_2024_us-gaap_StatementEquityComponentsAxis_us-gaap_RetainedEarningsMember_MTAAMIW_sE-DxCrnUDth7g" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DividendsCommonStockCash" scale="3" id="Tc_oJ4AdNS2mEq_--4Ec_R5ww_22_16">10,713</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.11%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.37%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_4_1_2024_To_6_30_2024_sROrhhIG1EWJb6sdFVCV5A" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DividendsCommonStockCash" scale="3" id="Tc_txlcazbruEuLHuMfrsr8fw_22_19">10,713</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.49%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:33.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;margin:0pt 0pt 0pt 12pt;">Share repurchase</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.8%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.03%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.21%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.08%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt;"> (<ix:nonFraction unitRef="Unit_Standard_shares_YK1c03HsOkOiDLLsAeYHoA" contextRef="Duration_4_1_2024_To_6_30_2024_us-gaap_StatementEquityComponentsAxis_us-gaap_TreasuryStockCommonMember_iuV_4b6WkESZTYOaWSSz5g" decimals="INF" format="ixt:numdotdecimal" name="us-gaap:TreasuryStockSharesAcquired" scale="0" id="Tc_QHJ2A2nDjEix_IxN4WVhXg_23_7">34,997</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_4_1_2024_To_6_30_2024_us-gaap_StatementEquityComponentsAxis_us-gaap_TreasuryStockCommonMember_iuV_4b6WkESZTYOaWSSz5g" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:TreasuryStockValueAcquiredCostMethod" scale="3" id="Tc_BpEQBxy3lkuwJqz9VNwivw_23_10">10,844</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.3%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.3%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.11%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.37%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_4_1_2024_To_6_30_2024_sROrhhIG1EWJb6sdFVCV5A" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:TreasuryStockValueAcquiredCostMethod" scale="3" id="Tc_ZbI6kRJbn0GPCVE15ypU8g_23_19">10,844</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.49%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:33.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;margin:0pt;">BALANCE AT JUNE 30, 2024</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.8%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_shares_YK1c03HsOkOiDLLsAeYHoA" contextRef="As_Of_6_30_2024_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember_FsF6nm3makmkjOm3DJrFOw" decimals="INF" format="ixt:numdotdecimal" name="us-gaap:CommonStockSharesIssued" scale="0" id="Tc_xlSBdbcSS0OaMHejotje_A_24_2">41,123,365</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.03%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.21%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="As_Of_6_30_2024_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember_FsF6nm3makmkjOm3DJrFOw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:StockholdersEquity" scale="3" id="Tc_SNvAjYF1hkOrsBrDSXZTqg_24_5">411</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt;"> (<ix:nonFraction unitRef="Unit_Standard_shares_YK1c03HsOkOiDLLsAeYHoA" contextRef="As_Of_6_30_2024_us-gaap_StatementEquityComponentsAxis_us-gaap_TreasuryStockCommonMember_rplrCduHPUKkd5ni2h63_Q" decimals="INF" format="ixt:numdotdecimal" name="us-gaap:TreasuryStockCommonShares" sign="-" scale="0" id="Tc_wMfJcCGdKk6R4iEqW6diKw_24_7">5,431,971</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="As_Of_6_30_2024_us-gaap_StatementEquityComponentsAxis_us-gaap_TreasuryStockCommonMember_rplrCduHPUKkd5ni2h63_Q" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:StockholdersEquity" sign="-" scale="3" id="Tc_CPFpwhjzK0-SBNFpAc7blw_24_10">225,573</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.3%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="As_Of_6_30_2024_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember_Esh6OYjwZUCcuWrfy0pzEA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:StockholdersEquity" scale="3" id="Tc_0V2g2OlEMEGjB8_ftc0asg_24_13">349,099</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.3%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="As_Of_6_30_2024_us-gaap_StatementEquityComponentsAxis_us-gaap_RetainedEarningsMember_1uRWP4PGY0CHlwtNC16vmg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:StockholdersEquity" scale="3" id="Tc_BsKP9DnCIUqFs8gd4K44_w_24_16">1,358,357</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.11%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.37%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="As_Of_6_30_2024_SiyrixYS5kCDbEg8NlCx0g" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:StockholdersEquity" scale="3" id="Tc_23vFRLafL02OgqInfChZJA_24_19">1,482,294</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.49%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:33.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;margin:0pt 0pt 0pt 12pt;">Net income</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.8%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.03%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.21%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_7_1_2024_To_9_30_2024_us-gaap_StatementEquityComponentsAxis_us-gaap_RetainedEarningsMember_b-0313COyUGZN-vuWAQxJw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:ProfitLoss" scale="3" id="Tc_EbBstV8Pck-CjvICFp6RoQ_25_16">146,235</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.11%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.37%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_7_1_2024_To_9_30_2024_XquWrHsdeEmkK9F8qXf6qA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:ProfitLoss" scale="3" id="Tc_pGtfsY0HXUuEvSxACIL1Mg_25_19">146,235</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.49%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:33.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;margin:0pt 0pt 0pt 12pt;">Issuance of Stock:</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.8%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.03%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.21%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.3%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.3%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.11%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.37%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.49%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:33.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;margin:0pt 0pt 0pt 18pt;">Issuance of shares for options exercised</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.8%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.03%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.21%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.11%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.37%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.49%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:33.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;margin:0pt 0pt 0pt 18pt;">Issuance of restricted stock &amp; performance stock</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.8%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.03%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.21%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_shares_YK1c03HsOkOiDLLsAeYHoA" contextRef="Duration_7_1_2024_To_9_30_2024_us-gaap_StatementEquityComponentsAxis_us-gaap_TreasuryStockCommonMember_OHlyn-cLJE6WED7jje2D4g" decimals="INF" format="ixt:numdotdecimal" name="us-gaap:StockIssuedDuringPeriodSharesShareBasedCompensation" scale="0" id="Tc_AnR3Y0TtYkuHgtt_OOT7MQ_28_7">1,434</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_7_1_2024_To_9_30_2024_us-gaap_StatementEquityComponentsAxis_us-gaap_TreasuryStockCommonMember_OHlyn-cLJE6WED7jje2D4g" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation" scale="3" id="Tc_pbss7p6pHk-nyofcs-YH3w_28_10">66</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.3%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_7_1_2024_To_9_30_2024_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember_GC_A98EUY0OVhREw-KFEtQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation" sign="-" scale="3" id="Tc_ni7kVKPtyEuTXzoaIFU4hw_28_13">66</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.3%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.11%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.37%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.49%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:33.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;margin:0pt 0pt 0pt 12pt;">Shares received in lieu of tax withholding on vested stock</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.8%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.03%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.21%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt;"> (<ix:nonFraction unitRef="Unit_Standard_shares_YK1c03HsOkOiDLLsAeYHoA" contextRef="Duration_7_1_2024_To_9_30_2024_us-gaap_StatementEquityComponentsAxis_us-gaap_TreasuryStockCommonMember_OHlyn-cLJE6WED7jje2D4g" decimals="INF" format="ixt:numdotdecimal" name="us-gaap:SharesPaidForTaxWithholdingForShareBasedCompensation" scale="0" id="Tc__jyuQpDeD0-oxJU7duFQsg_29_7">309</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_7_1_2024_To_9_30_2024_us-gaap_StatementEquityComponentsAxis_us-gaap_TreasuryStockCommonMember_OHlyn-cLJE6WED7jje2D4g" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation" scale="3" id="Tc_soBDI2icv0eJDytUBp2h7w_29_10">104</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.11%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.37%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_7_1_2024_To_9_30_2024_XquWrHsdeEmkK9F8qXf6qA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation" scale="3" id="Tc_UNsQroq2C0WBHfbEMIvAIQ_29_19">104</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.49%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:33.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;margin:0pt 0pt 0pt 12pt;">Stock-based compensation</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.8%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.03%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.21%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.3%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_7_1_2024_To_9_30_2024_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember_GC_A98EUY0OVhREw-KFEtQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" scale="3" id="Tc_B5n54RkakUuoZX32njUn6w_30_13">1,149</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.3%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.11%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.37%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_7_1_2024_To_9_30_2024_XquWrHsdeEmkK9F8qXf6qA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" scale="3" id="Tc_Zr8ZqeXmk0qFtp2wcB0xIQ_30_19">1,149</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.49%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:33.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;margin:0pt 0pt 0pt 12pt;">Dividends ($<ix:nonFraction unitRef="Unit_Divide_USD_shares_0ZfRDiWNfk6kp61F6IdjQA" contextRef="Duration_7_1_2024_To_9_30_2024_XquWrHsdeEmkK9F8qXf6qA" decimals="2" format="ixt:numdotdecimal" name="us-gaap:CommonStockDividendsPerShareDeclared" scale="0" id="Narr_VnFsUL_HsEO_mzr8tJfUgA">0.30</ix:nonFraction> per share)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.8%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.03%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.21%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_7_1_2024_To_9_30_2024_us-gaap_StatementEquityComponentsAxis_us-gaap_RetainedEarningsMember_b-0313COyUGZN-vuWAQxJw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DividendsCommonStockCash" scale="3" id="Tc_3qmck8keKEqtd3hr0Su_cg_31_16">10,688</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.11%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.37%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_7_1_2024_To_9_30_2024_XquWrHsdeEmkK9F8qXf6qA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DividendsCommonStockCash" scale="3" id="Tc_fEx4so_r-0aoInFjTjulsw_31_19">10,688</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.49%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:33.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;margin:0pt 0pt 0pt 12pt;">Share repurchase</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.8%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.03%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.21%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.08%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt;"> (<ix:nonFraction unitRef="Unit_Standard_shares_YK1c03HsOkOiDLLsAeYHoA" contextRef="Duration_7_1_2024_To_9_30_2024_us-gaap_StatementEquityComponentsAxis_us-gaap_TreasuryStockCommonMember_OHlyn-cLJE6WED7jje2D4g" decimals="INF" format="ixt:numdotdecimal" name="us-gaap:TreasuryStockSharesAcquired" scale="0" id="Tc_qMmS9tYAeUOSLDs3v_psYw_32_7">99,961</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_7_1_2024_To_9_30_2024_us-gaap_StatementEquityComponentsAxis_us-gaap_TreasuryStockCommonMember_OHlyn-cLJE6WED7jje2D4g" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:TreasuryStockValueAcquiredCostMethod" scale="3" id="Tc_jN8aSKXf9UaUT_s80IySpw_32_10">31,164</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.3%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.3%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.11%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.37%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_7_1_2024_To_9_30_2024_XquWrHsdeEmkK9F8qXf6qA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:TreasuryStockValueAcquiredCostMethod" scale="3" id="Tc_fjuHYrdmpEG20eo9XJHqqw_32_19">31,164</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.49%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:33.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;margin:0pt;">BALANCE AT SEPTEMBER 30, 2024</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.8%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_shares_YK1c03HsOkOiDLLsAeYHoA" contextRef="As_Of_9_30_2024_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember_ooz0_FoGDUONfNpJABpC_A" decimals="INF" format="ixt:numdotdecimal" name="us-gaap:CommonStockSharesIssued" scale="0" id="Tc_Ic6txZmX8UW3xWZp3Ri9NQ_33_2">41,123,365</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.03%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.21%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="As_Of_9_30_2024_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember_ooz0_FoGDUONfNpJABpC_A" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:StockholdersEquity" scale="3" id="Tc_x5ou4zJMR0OE2VRsPm67kg_33_5">411</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.08%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt;"> (<ix:nonFraction unitRef="Unit_Standard_shares_YK1c03HsOkOiDLLsAeYHoA" contextRef="As_Of_9_30_2024_us-gaap_StatementEquityComponentsAxis_us-gaap_TreasuryStockCommonMember_SF1yafOekU-tXEsRPH5BZA" decimals="INF" format="ixt:numdotdecimal" name="us-gaap:TreasuryStockCommonShares" sign="-" scale="0" id="Tc_n8sfk9KWJ0qFyxG_4eF6iw_33_7">5,530,807</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="As_Of_9_30_2024_us-gaap_StatementEquityComponentsAxis_us-gaap_TreasuryStockCommonMember_SF1yafOekU-tXEsRPH5BZA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:StockholdersEquity" sign="-" scale="3" id="Tc_dR-hLWOT-Uu1A9yS-GD65Q_33_10">256,775</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.3%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="As_Of_9_30_2024_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember_YSdubrY4XkOM19Wz565jjQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:StockholdersEquity" scale="3" id="Tc_Juv4YoT8LUqdQH-LERFScg_33_13">350,182</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.3%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="As_Of_9_30_2024_us-gaap_StatementEquityComponentsAxis_us-gaap_RetainedEarningsMember_9Q60Oh9Ah0OkbWnQEVoujg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:StockholdersEquity" scale="3" id="Tc_hFjmVu06eUiIXu5Z9T2d1A_33_16">1,493,904</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.11%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.37%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:right;margin:0pt 2.25pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="As_Of_9_30_2024_um13j0l3zk2ITGaiED1DFA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:StockholdersEquity" scale="3" id="Tc_2DJk2K6cg0WX7EI7uH0qew_33_19">1,587,722</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.49%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:10pt 0pt 0pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:10pt 0pt 0pt 0pt;">The accompanying notes are an integral part of these consolidated financial statements.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></div></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:12pt 0pt 0pt 0pt;">5</p></div></div>
<div style="background-color:#000000;clear:both;height:2pt;page-break-after:always;width:79.41%;border:0;margin:30pt 10.29% 30pt 10.29%;"></div><div style="max-width:100%;padding-left:10.29%;padding-right:10.29%;position:relative;"><div style="margin-top:21.6pt;min-height:41.4pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 30pt 0pt;"><a href="#Toc"><span style="font-style:normal;font-weight:normal;">Table of Contents</span></a></p></div><div style="clear:both;margin-left:-10.0pt;margin-right:-10.0pt;max-width:100%;position:relative;width:calc(100% + 20.0pt);"><div style="padding-left:10pt;padding-right:10pt;position:relative;width:100%;"><a id="_47ff9e23_62dd_4295_a794_3b0184c800e2"></a><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 6pt 0pt;"><b style="font-weight:bold;">COMFORT SYSTEMS USA,&#160;INC.</b></p><a id="CONSOLIDATEDSTATEMENTSOFCASHFLOWS_486675"></a><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 6pt 0pt;"><b style="font-weight:bold;">CONSOLIDATED STATEMENTS OF CASH FLOWS</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 6pt 0pt;"><b style="font-weight:bold;">(In Thousands)</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 6pt 0pt;"><b style="font-weight:bold;">(Unaudited)</b></p><a id="_30307c34_96ca_4bce_bcd2_429cf05d67a6"></a><a id="Tc_jxzbQCj_dk6bYDFCoZFD_A_1_2"></a><a id="Tc_bSVTTsG7BUeAvCKRxohB1g_2_2"></a><a id="Tc__Ool6c1SwUS5Zyjo3eoA7Q_3_2"></a><a id="Tc_nTDk5VJN5kK8HSvWrRqEOw_3_5"></a><a id="Tc_tRu4pqo1HEGq_Ys-ycGk-A_4_0"></a><a id="Tc_qGyBqq4wX0WeBb6-d43kGQ_5_0"></a><a id="Tc__v9ukIy1q0yTQLXgm8wGvQ_5_2"></a><a id="Tc_Jm-BK7flx0euZcU5KgH9hg_5_5"></a><a id="Tc_VG-HBEn7Lku_dX9r86xC6Q_6_0"></a><a id="Tc_EAaXZ8L3ZkeFOU0KgKZwoQ_7_0"></a><a id="Tc__BPq8lcblE2NyENFBNwzSg_8_0"></a><a id="Tc_yjy1GaXoBEC6yMp5mPk9gg_9_0"></a><a id="Tc_uwHFgcnKVEmXC9axTMMm8Q_10_0"></a><a id="Tc_elK5U73GfE6x2Nts9PUgBg_11_0"></a><a id="Tc_9emWExvIQUCeTC-iYVX6ww_12_0"></a><a id="Tc_Sd60-fXoj0a6XSBX4VG-YA_13_0"></a><a id="Tc_VR0DFb0YiEyOXgD0b6sTCg_14_0"></a><a id="Tc_OoizDokub06IqPbJE3Siag_15_0"></a><a id="Tc_rGF_pTt9_Ee58ht7IqJmKw_16_0"></a><a id="Tc_l6BI1NxYTUWe8IRWiwS6jw_17_0"></a><a id="Tc_sz5FYjPgd0uhdxE3pICqYQ_18_0"></a><a id="Tc_Xbh_s5cHCkqEyBkP8CnP4A_19_0"></a><a id="Tc_utWqqD2hw0WZR6a-PcQcAw_20_0"></a><a id="Tc_TbY-6Bd4g0Kr0rOcR9cqrw_21_0"></a><a id="Tc_uzsiojHNy0uB852uvNLEaQ_22_0"></a><a id="Tc_in_PCKhyOkG77A2fCo3PWg_23_0"></a><a id="Tc_rF32x_3wF0iOJOM77YIfNA_24_0"></a><a id="Tc_0WvY8knGGk6tW0DgmwRdCQ_25_0"></a><a id="Tc_rS-MEHP7AU6qkZtNoVVStA_26_0"></a><a id="Tc_Yu0UzEc8UkOsd3ME6u4ZNA_27_0"></a><a id="Tc_Qhn4lZPEZkW7dzIxAZflBQ_28_0"></a><a id="Tc_SPnD18p8mEOwzu2QZDNtaA_29_0"></a><a id="Tc_bD4Plr2Z30SSNJkpkrBVLg_30_0"></a><a id="Tc_xxw5o7mP4EGlm837ISyFHw_31_0"></a><a id="Tc_0h8851L5z0qlvNUAex6eyg_32_0"></a><a id="Tc_UB9Yk06sLU2GELjvdpwCAg_33_0"></a><a id="Tc_B1V8c51RBkSfkyGjr3E3gA_34_0"></a><a id="Tc_8Vx_HfrmnE2bLhcaCh6h1Q_35_0"></a><a id="Tc_CKXRutlxC0iryGh4qtFkFQ_36_0"></a><a id="Tc__1nB2Ey9-Uu-HeeggY1_fQ_37_0"></a><a id="Tc_nGBYj48RX0afah2a0d1FNA_37_6"></a><a id="Tc_3M3DE6FGy06GCXh1JZtxZw_38_0"></a><a id="Tc_jkX480tfJUuOVDq8q00RBA_39_0"></a><a id="Tc_LGmAs8L3AUq9sV2u0C0DLg_40_0"></a><a id="Tc_8tx1mYGXLkWUCv5nXlMrLg_41_0"></a><a id="Tc_dpqHUp8ZX0GadX7W5nLcxg_42_0"></a><a id="Tc_F4GpYv0J0U2D-NPLa6PW6w_43_0"></a><a id="Tc_Of337O4n10y64fLTLDUKMw_43_6"></a><a id="Tc_NkgSCivhSkiXNQ8gNN78QA_44_0"></a><a id="Tc_aoEcw0TexUWkSIrAayDPGQ_45_0"></a><a id="Tc_WvCLgY7OVEivY-S0J1doqg_46_0"></a><a id="Tc_1YmFANkhnkqyWzB0MCi4ww_47_0"></a><a id="Tc_w-NQz3pAPEuHXMGW_Ne-0w_48_0"></a><a id="Tc_yzEdQwK6HE6cZHUYTxZEYQ_48_2"></a><a id="Tc_rYb9Cj8TEEiezHS3WWQQdQ_48_5"></a><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:75.86%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.3%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;width:1.38%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:7.71%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.31%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;width:1.38%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:7.71%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.3%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:75.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="5" style="vertical-align:bottom;white-space:nowrap;width:20.52%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Nine Months Ended </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:75.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="5" style="vertical-align:bottom;white-space:nowrap;width:20.52%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">September 30, </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:75.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.1%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2024</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.1%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2023</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td></tr><tr><td style="vertical-align:bottom;width:75.86%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">CASH FLOWS FROM OPERATING ACTIVITIES:</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.3%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.71%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.71%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.3%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:75.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">Net income</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.71%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:ProfitLoss" scale="3" id="Tc_gfRUTywdPUKTpKMBXBMgig_5_3">376,563</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.71%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_1_1_2023_To_9_30_2023_0vpBpKZIxEC_KY5z5G8rKA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:ProfitLoss" scale="3" id="Tc_kvXa3fR7vUiwUVLcL3R7rg_5_6">231,817</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:75.86%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">Adjustments to reconcile net income to net cash provided by operating activities&#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.3%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.71%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.71%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.3%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:75.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0pt 12pt;">Amortization of identifiable intangible assets</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.71%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AmortizationOfIntangibleAssets" scale="3" id="Tc_ZxsE6q_7KUWUrYYMPzwmOA_7_3">75,224</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.71%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_1_1_2023_To_9_30_2023_0vpBpKZIxEC_KY5z5G8rKA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AmortizationOfIntangibleAssets" scale="3" id="Tc_Q7WJfRGBmEym_otY0QL9Og_7_6">32,273</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:75.86%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0pt 12pt;">Depreciation expense</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.3%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.71%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:Depreciation" scale="3" id="Tc_R4v2k2NNzESEPqcZ3nAIlg_8_3">35,377</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.71%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_1_1_2023_To_9_30_2023_0vpBpKZIxEC_KY5z5G8rKA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:Depreciation" scale="3" id="Tc_CQUlV_XAmE2kOHzrEHd_7w_8_6">27,717</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.3%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:75.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0pt 12pt;">Change in right-of-use assets</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.71%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ" decimals="-3" format="ixt:numdotdecimal" name="fix:ChangeInRightOfUseAssets" scale="3" id="Tc_9gz_fqKIgEqBtn8ry_ZFUg_9_3">22,400</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.71%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_1_1_2023_To_9_30_2023_0vpBpKZIxEC_KY5z5G8rKA" decimals="-3" format="ixt:numdotdecimal" name="fix:ChangeInRightOfUseAssets" scale="3" id="Tc_9luKDIfV1UyCtl4aOi-ZKw_9_6">19,630</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:75.86%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0pt 12pt;">Bad debt expense</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.3%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.71%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:ProvisionForDoubtfulAccounts" scale="3" id="Tc_mxkYTwmUNk-U_PSSFZyYXw_10_3">5,464</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.71%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_1_1_2023_To_9_30_2023_0vpBpKZIxEC_KY5z5G8rKA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:ProvisionForDoubtfulAccounts" scale="3" id="Tc_1etGKaieZ06LfoMmkKES3w_10_6">2,849</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.3%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:75.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0pt 12pt;">Deferred tax provision (benefit)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.71%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DeferredIncomeTaxExpenseBenefit" sign="-" scale="3" id="Tc_1qBCXxujIk-CWYIa6Rg3Kg_11_3">32,511</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.71%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_1_1_2023_To_9_30_2023_0vpBpKZIxEC_KY5z5G8rKA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DeferredIncomeTaxExpenseBenefit" scale="3" id="Tc_c6xjI-DD0kqNhipjzwjpnA_11_6">116,355</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:75.86%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0pt 12pt;">Amortization of debt financing costs</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.3%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.71%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AmortizationOfFinancingCosts" scale="3" id="Tc_G_FzZciztEixK80t9Y3JPA_12_3">514</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.71%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_1_1_2023_To_9_30_2023_0vpBpKZIxEC_KY5z5G8rKA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AmortizationOfFinancingCosts" scale="3" id="Tc_f-imaEUOS02HdW_g7PpO7w_12_6">512</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.3%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:75.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0pt 12pt;">Gain on sale of assets</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.71%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:GainLossOnSaleOfPropertyPlantEquipment" scale="3" id="Tc_Ta_ZQG46J0iUD4xbgEizoA_13_3">2,778</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.71%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_1_1_2023_To_9_30_2023_0vpBpKZIxEC_KY5z5G8rKA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:GainLossOnSaleOfPropertyPlantEquipment" scale="3" id="Tc_i7_Wji99iEWvdyHKx2ziKg_13_6">1,683</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:75.86%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0pt 12pt;">Changes in the fair value of contingent earn-out obligations</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.3%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.71%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1" scale="3" id="Tc_ZfSeBeiN8U6VSieHTefXcQ_14_3">44,434</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.71%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_1_1_2023_To_9_30_2023_0vpBpKZIxEC_KY5z5G8rKA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1" scale="3" id="Tc_x-PhSYPEZECEUXEPpFXG6w_14_6">14,207</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.3%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:75.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0pt 12pt;">Stock-based compensation</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.71%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensation" scale="3" id="Tc_xA-8ts_RC0O5woBRKcdo8Q_15_3">12,129</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.71%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_1_1_2023_To_9_30_2023_0vpBpKZIxEC_KY5z5G8rKA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensation" scale="3" id="Tc_So_70s7cfEuYjer8PyGyYw_15_6">9,128</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:75.86%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0pt 12pt;">Changes in operating assets and liabilities, net of effects of acquisitions and divestitures&#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.3%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.71%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.71%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.3%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:75.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0pt 18pt;">(Increase) decrease in&#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.71%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.71%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:75.86%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0pt 24pt;">Receivables, net</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.3%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.71%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncreaseDecreaseInAccountsReceivable" scale="3" id="Tc_Ht6DLp3SPUm718t3eHcqVQ_18_3">262,958</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.71%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_1_1_2023_To_9_30_2023_0vpBpKZIxEC_KY5z5G8rKA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncreaseDecreaseInAccountsReceivable" scale="3" id="Tc_OINxaQR5UE-UucOyexl0qA_18_6">376,282</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.3%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:75.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0pt 24pt;">Inventories</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.71%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncreaseDecreaseInInventories" sign="-" scale="3" id="Tc_EtpUIFKhzkO_zQYH5glvLg_19_3">10,088</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.71%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_1_1_2023_To_9_30_2023_0vpBpKZIxEC_KY5z5G8rKA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncreaseDecreaseInInventories" scale="3" id="Tc_jOISUWmOZ0KHHRTT9dKG1A_19_6">18,272</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:75.86%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0pt 24pt;">Prepaid expenses and other current assets</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.3%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.71%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets" sign="-" scale="3" id="Tc_3yiGOQWMJ0W5pnEmgInVpQ_20_3">15,174</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.71%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_1_1_2023_To_9_30_2023_0vpBpKZIxEC_KY5z5G8rKA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets" sign="-" scale="3" id="Tc_GAzf97NwE0CoGGONUXyqqw_20_6">2,504</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.3%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:75.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0pt 24pt;">Costs and estimated earnings in excess of billings and unbilled accounts receivable</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.71%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncreaseDecreaseInContractWithCustomerAsset" scale="3" id="Tc_dE8ixuDOrkaEchTjxwfZzg_21_3">58,473</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.71%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_1_1_2023_To_9_30_2023_0vpBpKZIxEC_KY5z5G8rKA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncreaseDecreaseInContractWithCustomerAsset" scale="3" id="Tc_s2hP2Upxe0qaldp-wzW0Hg_21_6">5,326</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:75.86%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0pt 24pt;">Other noncurrent assets</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.3%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.71%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncreaseDecreaseInOtherOperatingAssets" scale="3" id="Tc_EUcZXUV1AUWbT8AqhNv6BQ_22_3">1,882</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.71%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_1_1_2023_To_9_30_2023_0vpBpKZIxEC_KY5z5G8rKA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncreaseDecreaseInOtherOperatingAssets" scale="3" id="Tc_Enuhg5gjZ0qHJ3k_l81skA_22_6">247</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.3%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:75.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0pt 18pt;">Increase (decrease) in&#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.71%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.71%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:75.86%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0pt 24pt;">Accounts payable and accrued liabilities</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.3%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.71%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncreaseDecreaseInAccountsPayableAndAccruedLiabilities" scale="3" id="Tc_IF-qkkO1HU-KBN0J8RrW8g_24_3">323,756</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.71%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_1_1_2023_To_9_30_2023_0vpBpKZIxEC_KY5z5G8rKA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncreaseDecreaseInAccountsPayableAndAccruedLiabilities" scale="3" id="Tc_VRWLdfvbikm-Es_G5xo8DA_24_6">185,382</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.3%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:75.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0pt 24pt;">Billings in excess of costs and estimated earnings and deferred revenue</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.71%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncreaseDecreaseInContractWithCustomerLiability" scale="3" id="Tc_YlMuq8OEkESqve-GEOIVQg_25_3">80,448</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.71%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_1_1_2023_To_9_30_2023_0vpBpKZIxEC_KY5z5G8rKA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncreaseDecreaseInContractWithCustomerLiability" scale="3" id="Tc_TXHaqWqjF02s74G-509YeA_25_6">217,148</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:75.86%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0pt 24pt;">Other long-term liabilities</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.3%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;width:1.38%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.71%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncreaseDecreaseInOtherOperatingLiabilities" sign="-" scale="3" id="Tc_1Vk651xgIkyOFhaJEknbEw_26_3">4,375</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;width:1.38%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.71%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_1_1_2023_To_9_30_2023_0vpBpKZIxEC_KY5z5G8rKA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncreaseDecreaseInOtherOperatingLiabilities" scale="3" id="Tc_OSDVXxB1vUqNqNxL26M_aA_26_6">8,848</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.3%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:75.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0pt 36pt;">Net cash provided by operating activities</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;width:1.38%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.71%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:NetCashProvidedByUsedInOperatingActivities" scale="3" id="Tc_wuiiFSvVpU23in5DMat6Kw_27_3">638,594</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;width:1.38%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.71%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_1_1_2023_To_9_30_2023_0vpBpKZIxEC_KY5z5G8rKA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:NetCashProvidedByUsedInOperatingActivities" scale="3" id="Tc_0IDNxSGj-U2x0FYWSffPJw_27_6">466,560</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:75.86%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">CASH FLOWS FROM INVESTING ACTIVITIES:</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.3%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.71%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.71%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.3%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:75.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0pt 18pt;">Purchases of property and equipment</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.71%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:PaymentsToAcquirePropertyPlantAndEquipment" scale="3" id="Tc_riq2KdFOjEy1fU0fLXXXcg_29_3">70,395</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.71%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_1_1_2023_To_9_30_2023_0vpBpKZIxEC_KY5z5G8rKA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:PaymentsToAcquirePropertyPlantAndEquipment" scale="3" id="Tc_eGZsaQvP-0a0EBVAzQF6aw_29_6">69,574</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:75.86%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0pt 18pt;">Proceeds from sales of property and equipment</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.3%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.71%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:ProceedsFromSaleOfPropertyPlantAndEquipment" scale="3" id="Tc_F2zZP08HfEWS60NCxUeT9A_30_3">3,611</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.71%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_1_1_2023_To_9_30_2023_0vpBpKZIxEC_KY5z5G8rKA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:ProceedsFromSaleOfPropertyPlantAndEquipment" scale="3" id="Tc_PSb0tMMmakWNsGnFndYOdw_30_6">5,093</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.3%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:75.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0pt 18pt;">Cash paid for acquisitions, net of cash acquired</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.71%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired" scale="3" id="Tc_E6QZ-aJxtkyF5QzeFTiyhQ_31_3">235,466</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.71%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_1_1_2023_To_9_30_2023_0vpBpKZIxEC_KY5z5G8rKA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired" scale="3" id="Tc_-Zrucd3PgEaOsO8D36xU5g_31_6">53,404</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:75.86%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0pt 18pt;">Payments for investments</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.3%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;width:1.38%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.71%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:PaymentsToAcquireInvestments" scale="3" id="Tc_WA6iXfLF8EanYlo0wx99ZA_32_3">1,770</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;width:1.38%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.71%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_1_1_2023_To_9_30_2023_0vpBpKZIxEC_KY5z5G8rKA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:PaymentsToAcquireInvestments" scale="3" id="Tc_zhE0jQiYg0OXaQUP3ZhRiw_32_6">1,240</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.3%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:75.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0pt 36pt;">Net cash used in investing activities</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;width:1.38%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.71%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:NetCashProvidedByUsedInInvestingActivities" sign="-" scale="3" id="Tc_xLdiekFYC02z2Br7ABY43g_33_3">304,020</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;width:1.38%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.71%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_1_1_2023_To_9_30_2023_0vpBpKZIxEC_KY5z5G8rKA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:NetCashProvidedByUsedInInvestingActivities" sign="-" scale="3" id="Tc_OvLflfM7_06n8BRteL-0jw_33_6">119,125</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:75.86%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">CASH FLOWS FROM FINANCING ACTIVITIES:</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.3%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.71%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.71%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.3%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:75.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0pt 18pt;">Proceeds from revolving credit facility</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.71%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:ProceedsFromLongTermLinesOfCredit" scale="3" id="Tc_C6dfJCvecES62T3G_t9u-w_35_3">182,000</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.71%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_1_1_2023_To_9_30_2023_0vpBpKZIxEC_KY5z5G8rKA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:ProceedsFromLongTermLinesOfCredit" scale="3" id="Tc_CvlwarWVIE2l_k9I0AWFvQ_35_6">285,000</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:75.86%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0pt 18pt;">Payments on revolving credit facility</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.3%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.71%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:RepaymentsOfLongTermLinesOfCredit" scale="3" id="Tc_I_M0iZxs5kakIrhMIZSaSg_36_3">182,000</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.71%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_1_1_2023_To_9_30_2023_0vpBpKZIxEC_KY5z5G8rKA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:RepaymentsOfLongTermLinesOfCredit" scale="3" id="Tc_tzOvNvNNf0iick2BZ45YYA_36_6">500,000</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.3%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:75.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0pt 18pt;">Proceeds from other debt</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.71%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:ProceedsFromOtherDebt" scale="3" id="Tc_3-HCa1Krg0WwymFimZgsyA_37_3">640</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.71%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:75.86%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0pt 18pt;">Payments on other debt</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.3%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.71%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:RepaymentsOfOtherDebt" scale="3" id="Tc_chyhNOvmbEeKL5OBzvJc_Q_38_3">26,550</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.71%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_1_1_2023_To_9_30_2023_0vpBpKZIxEC_KY5z5G8rKA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:RepaymentsOfOtherDebt" scale="3" id="Tc_FyEvdHSCUEOtMoM_bBP4MA_38_6">1,980</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.3%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:75.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0pt 18pt;">Payments of dividends to stockholders</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.71%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:PaymentsOfDividendsCommonStock" scale="3" id="Tc_kod6XNjEj063_sgScxFHGQ_39_3">30,322</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.71%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_1_1_2023_To_9_30_2023_0vpBpKZIxEC_KY5z5G8rKA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:PaymentsOfDividendsCommonStock" scale="3" id="Tc_Hxi-HEC2NkK77DIyYzfKbQ_39_6">21,455</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:75.86%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0pt 18pt;">Share repurchases</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.3%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.71%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:PaymentsForRepurchaseOfCommonStock" scale="3" id="Tc_PWvhtcBdaEaBe7PY-ZI-Vg_40_3">42,024</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.71%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_1_1_2023_To_9_30_2023_0vpBpKZIxEC_KY5z5G8rKA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:PaymentsForRepurchaseOfCommonStock" scale="3" id="Tc_LXmv8FFvWUOAfItzZsLjZA_40_6">8,563</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.3%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:75.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0pt 18pt;">Shares received in lieu of tax withholding</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.71%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:PaymentsRelatedToTaxWithholdingForShareBasedCompensation" scale="3" id="Tc_uxTRYTJi1EmqZua0TLuJrA_41_3">7,292</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.71%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_1_1_2023_To_9_30_2023_0vpBpKZIxEC_KY5z5G8rKA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:PaymentsRelatedToTaxWithholdingForShareBasedCompensation" scale="3" id="Tc_RzPXdMZw_0uRcnXXAlhWnA_41_6">4,725</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:75.86%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0pt 18pt;">Proceeds from exercise of options</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.3%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.71%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:ProceedsFromStockOptionsExercised" scale="3" id="Tc_hgwY9VPdiUy8Hu77sugoLg_42_3">27</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.71%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_1_1_2023_To_9_30_2023_0vpBpKZIxEC_KY5z5G8rKA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:ProceedsFromStockOptionsExercised" scale="3" id="Tc_QcmECcVcFUKB4g--GnJk8Q_42_6">18</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.3%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:75.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0pt 18pt;">Deferred acquisition payments</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.71%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ" decimals="-3" format="ixt:numdotdecimal" name="fix:DeferredAcquisitionPayments" scale="3" id="Tc_BOjmGb6bmE65JEavGR9OSg_43_3">50</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.71%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:75.86%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0pt 18pt;">Payments for contingent consideration arrangements</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.3%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;width:1.38%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.71%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:PaymentForContingentConsiderationLiabilityFinancingActivities" scale="3" id="Tc_cQOYMHv-PU6zZbnMPmUZvg_44_3">18,570</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;width:1.38%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.71%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_1_1_2023_To_9_30_2023_0vpBpKZIxEC_KY5z5G8rKA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:PaymentForContingentConsiderationLiabilityFinancingActivities" scale="3" id="Tc_K_eJKLIU0EG-ltDjxFPGaQ_44_6">15,321</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.3%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:75.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0pt 36pt;">Net cash used in financing activities</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;width:1.38%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.71%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:NetCashProvidedByUsedInFinancingActivities" sign="-" scale="3" id="Tc_SWptHVIlBEe5PQV1E5WW_g_45_3">124,141</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;width:1.38%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.71%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_1_1_2023_To_9_30_2023_0vpBpKZIxEC_KY5z5G8rKA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:NetCashProvidedByUsedInFinancingActivities" sign="-" scale="3" id="Tc_Gi8EpTQQtU2rP_rjB2p6yw_45_6">267,026</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:75.86%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">NET INCREASE IN CASH AND CASH EQUIVALENTS</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.3%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;width:1.38%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.71%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect" scale="3" id="Tc_SZRb6scRskS5-srOETIFdg_46_3">210,433</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;width:1.38%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.71%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_1_1_2023_To_9_30_2023_0vpBpKZIxEC_KY5z5G8rKA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect" scale="3" id="Tc_GL_ptS3WqkGGaMpHqtd7Ow_46_6">80,409</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.3%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:75.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">CASH AND CASH EQUIVALENTS, beginning of period</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;width:1.38%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.71%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="As_Of_12_31_2023_X7eqeHRTF0mRLJW7InVDdA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" scale="3" id="Tc_NpE5roUqNkmD5lEKD99uyA_47_3">205,150</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;width:1.38%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.71%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="As_Of_12_31_2022_-q309bsKT0i3jZ5ZPwDgew" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" scale="3" id="Tc_IysSzLkAr06BHfRT-NoXaw_47_6">57,214</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:75.86%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">CASH AND CASH EQUIVALENTS, end of period</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.3%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;width:1.38%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.71%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="As_Of_9_30_2024_um13j0l3zk2ITGaiED1DFA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" scale="3" id="Tc_bfCxh2YZD02aq9S_8UImsg_48_3">415,583</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;width:1.38%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.71%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="As_Of_9_30_2023_Cz0YiFrEwkyvL950Hk4Vxw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" scale="3" id="Tc_Ij1HsvgYQkeCxSV57_IuRg_48_6">137,623</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.3%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:9pt;text-align:center;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:9pt;text-align:center;margin:0pt;">The accompanying notes are an integral part of these consolidated financial statements.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:9pt;text-align:center;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></div></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:12pt 0pt 0pt 0pt;">6</p></div></div>
<div style="background-color:#000000;clear:both;height:2pt;page-break-after:always;width:79.41%;border:0;margin:30pt 10.29% 30pt 10.29%;"></div><div style="max-width:100%;padding-left:10.29%;padding-right:10.29%;position:relative;"><div style="margin-top:21.6pt;min-height:41.4pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 30pt 0pt;"><a href="#Toc"><span style="font-style:normal;font-weight:normal;">Table of Contents</span></a></p></div><div style="clear:both;margin-left:-10.0pt;margin-right:-10.0pt;max-width:100%;position:relative;width:calc(100% + 20.0pt);"><div style="padding-left:10pt;padding-right:10pt;position:relative;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:4pt;font-weight:bold;visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">COMFORT SYSTEMS USA,&#160;INC.</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p><a id="CONDENSEDNOTESTOCONSOLIDATEDFINANCIALSTA"></a><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">CONDENSED NOTES TO CONSOLIDATED FINANCIAL STATEMENTS</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">September 30, 2024</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">(Unaudited)</b></p><ix:nonNumeric contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ" name="us-gaap:NatureOfOperations" id="Tb_dK0UbZM5bkyDuUmkyBYhlw" escape="true"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">1. Business and Organization</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">Comfort Systems USA, Inc., a Delaware corporation, provides comprehensive mechanical and electrical contracting services, which principally includes heating, ventilation and air conditioning (&#8220;HVAC&#8221;), plumbing, electrical, piping and controls, as well as off-site construction, monitoring and fire protection. We build, install, maintain, repair and replace mechanical, electrical and plumbing (&#8220;MEP&#8221;) systems throughout the United States. The terms &#8220;Comfort Systems,&#8221; &#8220;we,&#8221; &#8220;us,&#8221; or the &#8220;Company,&#8221; refer to Comfort Systems USA,&#160;Inc. or Comfort Systems USA,&#160;Inc. and its consolidated subsidiaries, as appropriate in the context.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></ix:nonNumeric><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><ix:nonNumeric contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ" name="us-gaap:BasisOfPresentationAndSignificantAccountingPoliciesTextBlock" id="Tb_wbw08kSFckq-MATUzfnvZg" continuedAt="Tb_wbw08kSFckq-MATUzfnvZg_cont1" escape="true"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">2. Summary of Significant Accounting Policies and Estimates</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 0pt 36pt;"><span style="font-style:italic;font-weight:bold;margin-left:0pt;visibility:hidden;">&#8203;</span></p><ix:nonNumeric contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ" name="us-gaap:BasisOfAccountingPolicyPolicyTextBlock" id="Tb_CHTKuwZCzUKxIHzX-Zectg" escape="true"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 0pt 36pt;"><span style="font-style:italic;font-weight:bold;">Basis of Presentation</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">These interim statements should be read in conjunction with the historical Consolidated Financial Statements and related notes of Comfort Systems included in the Annual Report on Form&#160;10-K as filed with the Securities and Exchange Commission (&#8220;SEC&#8221;) for the year ended December 31, 2023 (the &#8220;Form&#160;10-K&#8221;).</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">The accompanying unaudited consolidated financial statements were prepared using generally accepted accounting principles for interim financial information and the instructions to Form&#160;10-Q and applicable rules of Regulation&#160;S-X of the SEC. Accordingly, these financial statements do not include all the footnotes required by generally accepted accounting principles for complete financial statements and should be read in conjunction with the Form&#160;10-K. We believe all adjustments necessary for a fair presentation of these interim statements have been included and are of a normal and recurring nature. The results of operations for interim periods are not necessarily indicative of the results for the full fiscal year. </p></ix:nonNumeric><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><ix:nonNumeric contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ" name="us-gaap:UseOfEstimates" id="Tb_0xHwRSxFBUyvscHGvqcaIQ" escape="true"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 0pt 36pt;"><span style="font-style:italic;font-weight:bold;">Use of Estimates</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">The preparation of financial statements in conformity with generally accepted accounting principles requires the use of estimates and assumptions by management in determining the reported amounts of assets and liabilities, revenue and expenses and disclosures regarding contingent assets and liabilities. Actual results could differ from those estimates. The most significant estimates used in our financial statements affect revenue and cost recognition for construction contracts, self-insurance accruals, accounting for income taxes, fair value accounting for acquisitions and the quantification of fair value for reporting units in connection with our goodwill impairment testing. </p></ix:nonNumeric><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><ix:nonNumeric contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ" name="us-gaap:NewAccountingPronouncementsPolicyPolicyTextBlock" id="Tb_Y3LR4n62ukiLugvZiJHFGQ" continuedAt="Tb_Y3LR4n62ukiLugvZiJHFGQ_cont1" escape="true"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 0pt 36pt;"><span style="font-style:italic;font-weight:bold;">Recent Accounting Pronouncements</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-style:italic;visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><i style="font-style:italic;">Recent Accounting Pronouncements Not Yet Adopted</i></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">In November 2023, the Financial Accounting Standards Board (&#8220;FASB&#8221;) issued ASU 2023-07, &#8220;Segment Reporting (Topic 280): Improvements to Reportable Segment Disclosures.&#8221; This standard requires entities to disclose, on an annual and interim basis, significant segment expenses that are regularly provided to the chief decision maker and included within each reported measure of segment profit and loss. ASU 2023-07 is effective for fiscal years beginning after December 15, 2023, and interim periods within fiscal years beginning after December 15, 2024. Early adoption is permitted. ASU 2023-07 will not have an impact on our consolidated financial position, results of operations or cash flows, but will affect our financial statement disclosures as discussed above.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">In December 2023, the FASB issued ASU 2023-09, &#8220;Income Taxes (Topic 740): Improvements to Income Tax Disclosures.&#8221; <span style="background:#ffffff;">This standard requires entities to disclose more detailed information in the reconciliation of their statutory </span></p></ix:nonNumeric></ix:nonNumeric></div></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:12pt 0pt 0pt 0pt;">7</p></div></div>
<div style="background-color:#000000;clear:both;height:2pt;page-break-after:always;width:79.41%;border:0;margin:30pt 10.29% 30pt 10.29%;"></div><div style="max-width:100%;padding-left:10.29%;padding-right:10.29%;position:relative;"><div style="margin-top:21.6pt;min-height:41.4pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 30pt 0pt;"><a href="#Toc"><span style="font-style:normal;font-weight:normal;">Table of Contents</span></a></p></div><div style="clear:both;margin-left:-10.0pt;margin-right:-10.0pt;max-width:100%;position:relative;width:calc(100% + 20.0pt);"><div style="padding-left:10pt;padding-right:10pt;position:relative;width:100%;"><ix:continuation id="Tb_wbw08kSFckq-MATUzfnvZg_cont1" continuedAt="Tb_wbw08kSFckq-MATUzfnvZg_cont2"><ix:continuation id="Tb_Y3LR4n62ukiLugvZiJHFGQ_cont1"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="background:#ffffff;">tax rate to their effective tax rate. The standard also requires entities to make additional disclosures on income taxes paid as well as on certain income statement-related items. ASU 2023-09 is effective for fiscal years beginning after December 15, 2024</span><span style="background:#ffffff;">.</span><span style="background:#ffffff;"> Early adoption is permitted. This standard will not have an impact on our consolidated financial position, results of operations or cash flows, but will affect our financial statement disclosures as discussed above.</span></p></ix:continuation><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="font-style:italic;font-weight:bold;visibility:hidden;">&#8203;</span></p><ix:nonNumeric contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ" name="us-gaap:RevenueFromContractWithCustomerPolicyTextBlock" id="Tb_hmcWVkel-kqEMru8wlyncw" escape="true"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 0pt 36pt;"><span style="font-style:italic;font-weight:bold;">Revenue Recognition</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">We recognize revenue over time for all of our services as we perform them because (i) control continuously transfers to that customer as work progresses, and (ii) we have the right to bill the customer as costs are incurred. The customer typically controls the work in process, as evidenced either by contractual termination clauses or by our rights to payment for work performed to date, plus a reasonable profit, for delivery of products or services that do not have an alternative use to the Company.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="white-space:pre-wrap;"> For the reasons listed above, revenue is recognized based on the extent of progress towards completion of the performance obligation. The selection of the method to measure progress towards completion requires judgment and is based on the nature of the products or services to be provided. We generally use a cost-to-cost input method to measure our progress towards satisfaction of the performance obligation for our contracts, as it best depicts the transfer of assets to the customer that occurs as we incur costs on our contracts. Under the cost-to-cost input method, the extent of progress towards completion is measured based on the ratio of costs incurred to date to the total estimated costs at completion of the performance obligation. Revenue, including estimated fees or profits, is recorded proportionally as costs are incurred. Costs to fulfill include labor, materials, subcontractors&#8217; costs, other direct costs and an allocation of indirect costs.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">For a small portion of our business in which our services are delivered in the form of service maintenance agreements for existing systems to be repaired and maintained, as opposed to constructed, our performance obligation is to maintain the customer&#8217;s mechanical system for a specific period of time. Similar to construction jobs, we recognize revenue over time; however, for service maintenance agreements in which the full cost to provide services may not be known, we generally use an input method to recognize revenue, which is based on the amount of time we have provided our services out of the total time we have been contracted to perform those services. Our revenue recognition policy is further discussed in Note&#160;3 &#8220;Revenue from Contracts with Customers.&#8221;</p></ix:nonNumeric><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><ix:nonNumeric contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ" name="us-gaap:CreditLossFinancialInstrumentPolicyTextBlock" id="Tb_HfBiHoAj2kSw2jM4hpSg6w" continuedAt="Tb_HfBiHoAj2kSw2jM4hpSg6w_cont1" escape="true"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="font-style:italic;font-weight:bold;">Accounts Receivable and Allowance for Credit Losses</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">We are required to estimate and record the expected credit losses over the contractual life of our financial assets measured at amortized cost, including billed and unbilled accounts receivable, other receivables and contract assets. Accounts receivable include amounts from work completed in which we have billed or have an unconditional right to bill our customers. Our trade receivables are contractually due in less than a year.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">We estimate our credit losses using a loss-rate method for each of our identified portfolio segments. Our portfolio segments are construction, service and other. While our construction and service financial assets are often with the same subset of customers and industries, our construction financial assets will generally have a lower loss-rate than service financial assets due to lien rights, which we are more likely to have on construction jobs. These lien rights result in lower credit loss expenses on average compared to receivables that do not have lien rights. Financial assets classified as &#8220;other&#8221; include receivables that are not related to our core revenue producing activities, such as receivables related to our acquisition activity from former owners, our vendor rebate program or receivables for estimated losses in excess of our insurance deductible, which are accrued with a corresponding accrued insurance liability.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">Loss rates for our portfolios are based on numerous factors, including our history of credit loss expense by portfolio, the financial strength of our customers and counterparties in each portfolio, the aging of our receivables, our expectation of likelihood of payment, macroeconomic trends in the U.S. and the current and forecasted nonresidential construction market trends in the U.S.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">In addition to the loss-rate calculations discussed above, we also record allowance for credit losses for specific receivables that are deemed to have a higher risk profile than the rest of the respective pool of receivables (<i style="font-style:italic;">e.g.</i>, when we hold concerns about a specific customer going bankrupt and no longer being able to pay the receivables due to us).</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></ix:nonNumeric></ix:continuation></div></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:12pt 0pt 0pt 0pt;">8</p></div></div>
<div style="background-color:#000000;clear:both;height:2pt;page-break-after:always;width:79.41%;border:0;margin:30pt 10.29% 30pt 10.29%;"></div><div style="max-width:100%;padding-left:10.29%;padding-right:10.29%;position:relative;"><div style="margin-top:21.6pt;min-height:41.4pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 30pt 0pt;"><a href="#Toc"><span style="font-style:normal;font-weight:normal;">Table of Contents</span></a></p></div><div style="clear:both;margin-left:-10.0pt;margin-right:-10.0pt;max-width:100%;position:relative;width:calc(100% + 20.0pt);"><div style="padding-left:10pt;padding-right:10pt;position:relative;width:100%;"><ix:continuation id="Tb_wbw08kSFckq-MATUzfnvZg_cont2"><ix:continuation id="Tb_HfBiHoAj2kSw2jM4hpSg6w_cont1"></ix:continuation><ix:nonNumeric contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ" name="us-gaap:TradeAndOtherAccountsReceivableUnbilledReceivablesPolicy" id="Tb_3dQG06Ai8kefT0wVpPeTsQ" escape="true"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="font-style:italic;font-weight:bold;">Unbilled Accounts Receivable</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">Unbilled accounts receivable are amounts due to us that we have earned under a contract where our right to payment is unconditional. A right to consideration is unconditional if only the passage of time is required before payment of the consideration is due. </p></ix:nonNumeric><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><ix:nonNumeric contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ" name="us-gaap:IncomeTaxPolicyTextBlock" id="Tb_pAkXBAuUqEGwzozPpQ-XEA" escape="true"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="font-style:italic;font-weight:bold;">Income Taxes</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">We conduct business throughout the United States in virtually all fifty states. Our effective tax rate changes based upon our relative profitability, or lack thereof, in the federal and various state jurisdictions with differing tax rates and rules. In addition, discrete items such as tax law changes, judgments and legal structures, can impact our effective tax rate. These items can also include the tax treatment for impairment of goodwill and other intangible assets, changes in fair value of acquisition-related assets and liabilities, uncertain tax positions, and accounting for losses associated with underperforming operations. </p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">The Inflation Reduction Act was enacted on August 16, 2022. This law, among other provisions, provides a corporate alternative minimum tax on adjusted financial statement income over $1 billion, which is effective for tax years beginning after December 31, 2022, and a 1% excise tax on net corporate stock repurchases after December 31, 2022. The impact of the excise tax is recorded in &#8220;Treasury Stock&#8221; within our Consolidated Balance Sheet. These provisions were not material to our current year overall financial results, financial position and cash flows. </p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">In early September 2023, the IRS issued interim guidance addressing, together with other topics, the treatment of research and experimental (&#8220;R&amp;E&#8221;) expenditures for taxpayers using the percentage of completion method to account for taxable income from long-term contracts. We relied on such guidance for the 2022 tax year, and the resultant reduction in taxable revenue offsets the deferral of tax deductions for R&amp;E expenditures pursuant to the Tax Cuts and Jobs Act (2017) for the 2022 tax year. We filed our 2022 federal tax return in October 2023 requesting a refund of our $<ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_9_1_2023_To_9_30_2023_C6BTPqBxtkOfHGcvUcDV1g" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:IncreaseDecreaseInIncomeTaxesReceivable" scale="6" id="Narr_vLqIAvgfDke3Dw5u_VUBig">107.1</ix:nonFraction> million overpayment, which had not been received as of September 30, 2024.</p></ix:nonNumeric><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="font-style:italic;font-weight:bold;visibility:hidden;">&#8203;</span></p><ix:nonNumeric contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ" name="us-gaap:FairValueOfFinancialInstrumentsPolicy" id="Tb_5k7mTRHMZ0K-3A5NhDSikg" escape="true"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="font-style:italic;font-weight:bold;">Financial Instruments</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">Our financial instruments consist of cash and cash equivalents, accounts receivable, other receivables, accounts payable and life insurance policies, for which we deem the carrying values approximate their fair values due to the short-term nature of these instruments, as well as notes to former owners and a revolving credit facility. </p></ix:nonNumeric><ix:nonNumeric contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ" name="us-gaap:EquitySecuritiesWithoutReadilyDeterminableFairValuePolicyTextBlock" id="Tb_4qeDhVlqIUCBZyVeiHYBkw" escape="true"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="font-style:italic;font-weight:bold;">Investments</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">We have a $<ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="As_Of_9_30_2024_um13j0l3zk2ITGaiED1DFA" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:EquitySecuritiesWithoutReadilyDeterminableFairValueAmount" scale="6" id="Narr_4n1ADEltpUSdtbL9ODdZew">6.1</ix:nonFraction> million investment in a construction-focused technology fund with a fair value that is not readily determinable and is recorded at cost. This investment is included in &#8220;Other Noncurrent Assets&#8221; in our Consolidated Balance Sheet and is reviewed quarterly for impairment.&#160;We did not recognize any impairments in the current year related to this investment.</p></ix:nonNumeric></ix:continuation><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><ix:nonNumeric contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ" name="us-gaap:RevenueFromContractWithCustomerTextBlock" id="Group_9sy55jJsC0eKLO0RDE4PSQ" continuedAt="Group_9sy55jJsC0eKLO0RDE4PSQ_cont1" escape="true"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">3. Revenue from Contracts with Customers</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">Revenue is recognized when control of the promised goods or services is transferred to our customers, in an amount that reflects the consideration to which we expect to be entitled in exchange for those goods or services. Sales-based taxes are excluded from revenue.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">We provide mechanical and electrical contracting services. Our mechanical segment principally includes HVAC, plumbing, piping and controls, as well as off-site construction, monitoring and fire protection. Our electrical segment includes installation and servicing of electrical systems. We build, install, maintain, repair and replace products and systems throughout the United States. All of our revenue is recognized over time as we deliver goods and services to our customers. Revenue can be earned based on an agreed-upon fixed price or based on actual costs incurred, marked up at an agreed-upon percentage.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></ix:nonNumeric></div></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:12pt 0pt 0pt 0pt;">9</p></div></div>
<div style="background-color:#000000;clear:both;height:2pt;page-break-after:always;width:79.41%;border:0;margin:30pt 10.29% 30pt 10.29%;"></div><div style="max-width:100%;padding-left:10.29%;padding-right:10.29%;position:relative;"><div style="margin-top:21.6pt;min-height:41.4pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 30pt 0pt;"><a href="#Toc"><span style="font-style:normal;font-weight:normal;">Table of Contents</span></a></p></div><div style="clear:both;margin-left:-10.0pt;margin-right:-10.0pt;max-width:100%;position:relative;width:calc(100% + 20.0pt);"><div style="padding-left:10pt;padding-right:10pt;position:relative;width:100%;"><ix:continuation id="Group_9sy55jJsC0eKLO0RDE4PSQ_cont1" continuedAt="Group_9sy55jJsC0eKLO0RDE4PSQ_cont2"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">We account for a contract when: (i) it has approval and commitment from both parties, (ii) the rights of the parties are identified, (iii) payment terms are identified, (iv) the contract has commercial substance, and (v) collectability of consideration is probable. We consider the start of a project to be when the above criteria have been met and we either have written authorization from the customer to proceed or an executed contract.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">We generally do not incur significant incremental costs related to obtaining or fulfilling a contract prior to the start of a project. On rare occasions, when significant pre-contract costs are incurred, they are capitalized and amortized over the life of the contract using a cost-to-cost input method to measure progress towards contract completion. We do not currently have any capitalized obtainment or fulfillment costs in our Consolidated Balance Sheet and have not incurred any impairment loss on such costs in the current year.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">Due to the nature of the work required to be performed on many of our performance obligations, the estimation of total revenue and cost at completion (the process described below in more detail) is complex, subject to many variables and requires significant judgment. The consideration to which we are entitled on our long-term contracts may include both fixed and variable amounts. Variable amounts can either increase or decrease the transaction price. A common example of variable amounts that can either increase or decrease contract value are pending change orders that represent contract modifications for which a change in scope has been authorized or acknowledged by our customer, but the final adjustment to contract price is yet to be negotiated. Other examples of positive variable revenue include amounts awarded upon achievement of certain performance metrics, program milestones or cost of completion date targets and can be based upon customer discretion. Variable amounts can result in a deduction from contract revenue if we fail to meet stated performance requirements, such as complying with the construction schedule.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">We include estimated amounts of variable consideration in the contract price to the extent it is probable that a significant reversal of cumulative revenue recognized will not occur when the uncertainty associated with the variable consideration is resolved. Our estimates of variable consideration and determination of whether to include estimated amounts in the contract price are based largely on an assessment of our anticipated performance and all information (historical, current and forecasted) that is reasonably available to us. We reassess the amount of variable consideration each accounting period until the uncertainty associated with the variable consideration is resolved. Changes in the assessed amount of variable consideration are accounted for prospectively as a cumulative adjustment to revenue recognized in the current period.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">Contracts are often modified to account for changes in contract specifications and requirements. We consider contract modifications to exist when the modification either creates new, or changes the existing, enforceable rights and obligations. Most of our contract modifications are for goods or services that are not distinct from the existing performance obligation(s). The effect of a contract modification on the transaction price, and our measure of progress for the performance obligation to which it relates, is recognized as an adjustment to revenue (either as an increase or decrease) on a cumulative catch-up basis. </p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">We have a Company-wide policy requiring periodic review of the Estimate at Completion in which management reviews the progress and execution of our performance obligations and estimated remaining obligations. As part of this process, management reviews information including, but not limited to, any outstanding key contract matters, progress towards completion and the related program schedule, identified risks and opportunities and the related changes in estimates of revenue and costs. The risks and opportunities include management's judgment about the ability and cost to achieve the schedule (<i style="font-style:italic;">e.g.</i>, the number and type of milestone events), technical requirements (<i style="font-style:italic;">e.g.</i>, a newly developed product versus a mature product) and other contract requirements. Management must make assumptions and estimates regarding labor productivity and availability, the complexity of the work to be performed, the availability of materials, the length of time to complete the performance obligation (<i style="font-style:italic;">e.g.</i>, to estimate increases in wages and prices for materials and related support cost allocations), execution by our subcontractors, the availability and timing of funding from our customer, and overhead cost rates, among other variables. </p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">Based on this analysis, any adjustments to revenue, cost of services, and the related impact to operating income are recognized as necessary in the quarter when they become known. These adjustments may result from positive program performance if we determine we will be successful in mitigating risks surrounding the technical, schedule and cost aspects of those performance obligations or realizing related opportunities and may result in an increase in operating income during the performance of individual performance obligations. Likewise, if we determine we will not be </p></ix:continuation></div></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:12pt 0pt 0pt 0pt;">10</p></div></div>
<div style="background-color:#000000;clear:both;height:2pt;page-break-after:always;width:79.41%;border:0;margin:30pt 10.29% 30pt 10.29%;"></div><div style="max-width:100%;padding-left:10.29%;padding-right:10.29%;position:relative;"><div style="margin-top:21.6pt;min-height:41.4pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 30pt 0pt;"><a href="#Toc"><span style="font-style:normal;font-weight:normal;">Table of Contents</span></a></p></div><div style="clear:both;margin-left:-10.0pt;margin-right:-10.0pt;max-width:100%;position:relative;width:calc(100% + 20.0pt);"><div style="padding-left:10pt;padding-right:10pt;position:relative;width:100%;"><a id="_33fe3f48_630c_4261_9e66_cba89dd578a4"></a><a id="Tc_iEKVwDvFv0KHPh7e3aU3PQ_1_2"></a><a id="Tc_ct-NCsTsIU2P4UdUE3WdCQ_1_14"></a><a id="Tc_uWsuEoaLAkGg7ccoYcQtaA_2_0"></a><a id="Tc_xdjcu8DGF0Osdzve9cNOKw_2_2"></a><a id="Tc_uxshql6ExE-2l9itFfv1bg_2_8"></a><a id="Tc_fl7bTABPFkq0Lim9aPLLUA_2_14"></a><a id="Tc_rKTQUD6ZgUm0RxWB9ArgyQ_2_20"></a><a id="Tc_ABHnAQwejEuEbDDSKBz-LA_3_0"></a><a id="Tc_Vws1ZEk7J0SvY1wb4oN5ZA_3_2"></a><a id="Tc_mnxGt0CHgk2xDGXDihjlzQ_3_6"></a><a id="Tc_GKBqNV9HAUawam_Y-HoUQw_3_8"></a><a id="Tc_DZzTnY5LwUaz-W1mZrhe3w_3_12"></a><a id="Tc_iatSLmRxSU2E29oMRgFYXA_3_14"></a><a id="Tc__LAx7iyEGUeAQSmmkYtaCA_3_18"></a><a id="Tc_OGR_HzLaiUybKmenn-ibLw_3_20"></a><a id="Tc_ZhU_X1fXaUKYNkMzWqwi9g_3_24"></a><a id="Tc_5q2qt2zYHkyljbXtbPzsYw_4_0"></a><a id="Tc_DD-IQ4mfHkKMC9uCuZSgvA_4_6"></a><a id="Tc_65OyCjhLVky2lP9K3XDwcA_4_12"></a><a id="Tc_8u1TmqtA4UyYTMmRWMoBnQ_4_18"></a><a id="Tc_EVk0UvThNEKg8a95xS_l4w_4_24"></a><a id="Tc_OER8r2PU5UWkHmXAP0VcZw_5_0"></a><a id="Tc_nNjhrDxJ50ewuJdPdEzwNg_5_2"></a><a id="Tc_gq0bDayUV0iDcGWbCjRg2w_5_6"></a><a id="Tc_toOtua3N1kazTvAnnl-LdQ_5_8"></a><a id="Tc_yhjRYGBFYEeG3it8UeEOTQ_5_12"></a><a id="Tc_VLPV6dko-kmRgQIx5ILMaA_5_14"></a><a id="Tc_Tr4jb5zE0keZBw-vjCdcNw_5_18"></a><a id="Tc_FxgqC5QCsUmhNFIIMe3-nQ_5_20"></a><a id="Tc_40Y8f9yO3kmJwgUrHXktrQ_5_24"></a><a id="Tc_Lz_5OY6ajEyPAEBHN02qLA_7_2"></a><a id="Tc_qJS3JxZiYkCkhoqE4u0KnQ_7_14"></a><a id="Tc_NZvFPVwyEkaBG8IbvSEjpQ_8_0"></a><a id="Tc_HI2ssY39qUqSXQkHcm5AQA_8_2"></a><a id="Tc_yjiHthY1SEqpVAKi9VihFg_8_8"></a><a id="Tc_Bs2JCLFJdkueSYT17Z6Rgg_8_14"></a><a id="Tc_84PeaKzXdES8tr-ukf35Hw_8_20"></a><a id="Tc_YSKzX5jbiE2rRcaOFjMBlA_9_0"></a><a id="Tc_9ckHOtRYGU67ZfttQyChgw_9_2"></a><a id="Tc_GizS0K2Lz0qs0Yho_SgumA_9_6"></a><a id="Tc_MXGe-MugIUiBCG1KWS6QwQ_9_8"></a><a id="Tc_1W_AtGF5rEyVk-mKNvr7uw_9_12"></a><a id="Tc_SQo3dywzCEuO0oorKpBGNg_9_14"></a><a id="Tc_I1NKEMtPrUueEGy-yqqRrA_9_18"></a><a id="Tc_SE8n9hy8IkiquKKgdPiwNA_9_20"></a><a id="Tc_3qEPhff5eUeA2YlwKuxSFA_9_24"></a><a id="Tc_r1I_OB4hw0-0ieJ730KYdw_10_0"></a><a id="Tc_lJqcMvVhmUaSuPiVkblPIQ_10_6"></a><a id="Tc_kS7rYrGdFUiVJs3gMw_d2A_10_12"></a><a id="Tc_VaXkAcIQqUeDLuYRjoxYxA_10_18"></a><a id="Tc_BhHqS1OSc0WllfDJnFJU_g_10_24"></a><a id="Tc_Idk0tk_sfESVQiD6Tx8g6w_11_0"></a><a id="Tc_CEH-Qfi24kWms1fCJXJIwg_11_6"></a><a id="Tc_fd-LVcfwxU68ipg24Z1PJQ_11_12"></a><a id="Tc_2k1oNuardkSfpVe9uzm-ow_11_18"></a><a id="Tc_bio88iEEeUG0TWrvnAKNdQ_11_24"></a><a id="Tc__45E1e5vf0KPsFjRSUV8mA_12_0"></a><a id="Tc_iypdDW20vUOUtQW_AlittQ_12_6"></a><a id="Tc_QNySVZWeoUqig6w2CPZGiA_12_12"></a><a id="Tc_FIyRzsUHCU26t0LTS_zLgg_12_18"></a><a id="Tc_DAYPQxGTo0mO93zsduoHRw_12_24"></a><a id="Tc_yCuRt7VM10ucH3D6ldwStQ_13_0"></a><a id="Tc_eMpIpnXZX0e_w1ftjL12fA_13_6"></a><a id="Tc_VpU7wkOeh0uotCY2dO6Igg_13_12"></a><a id="Tc_vJGayiX3SUSh3Q0ms0TOvA_13_18"></a><a id="Tc_FgvbskrKbUCtRoTRxJ-qsw_13_24"></a><a id="Tc_UaAsKyZhNku-gHJv_kPLKw_14_0"></a><a id="Tc_thpjUJpT40ijC0D3tOjKOg_14_6"></a><a id="Tc_gG_EPeO_hEWoyYKO2FcwbA_14_12"></a><a id="Tc_uzL0O5T3WkG1CxFBYXB1Vw_14_18"></a><a id="Tc_wMWJkn0nmUucI4WvVZ94sQ_14_24"></a><a id="Tc_12wR1ZHbck-9FD4FVG-9zg_15_0"></a><a id="Tc_81ZgHJmyAUKwi_ZVx6E0WQ_15_6"></a><a id="Tc_2rMr46PzEEu4Nl6sh6qZKA_15_12"></a><a id="Tc_PSBVMkpk10WJDa-iQ5GdFg_15_18"></a><a id="Tc__TkI0UN9GkOeV0hb-Y4QRA_15_24"></a><a id="Tc_c7s-bmPawUeJCn0IsUz3ng_16_0"></a><a id="Tc_wzIhd21voUW0iCalMBiXBw_16_6"></a><a id="Tc_G46uHWjDaEqKuST07gCPyg_16_12"></a><a id="Tc_Tt9UHShoFk6MekE_9R2RaA_16_18"></a><a id="Tc_nMNpCNd36EObyXm_B3gVjA_16_24"></a><a id="Tc_4JrGnvANO0CW8nsx5rWGAw_17_0"></a><a id="Tc_ACGgBbrUwkCqtLr9xzNZLw_17_6"></a><a id="Tc_WOZyppQM60q1lbBWfQ0UNg_17_12"></a><a id="Tc_UH1GV6Jl7kKa0ZfuxBfiaA_17_18"></a><a id="Tc_QricrmGR6k262of0LZSEMw_17_24"></a><a id="Tc_Ro9v7DKSTkyVex1b_dqSag_18_0"></a><a id="Tc_pCvZ6RrEvECoXZOTQNHQfA_18_2"></a><a id="Tc_gD7Y1QSQDUSQ_CuyTPiqjw_18_6"></a><a id="Tc_4dBvGAVByk67DEi6APD8FA_18_8"></a><a id="Tc_qT9zg57aMUWiGbRAKZ01_Q_18_12"></a><a id="Tc_yRMtcNl0YEi_0QxsyHTwYA_18_14"></a><a id="Tc_vQMxnbZuckCV6ra9GpahMg_18_18"></a><a id="Tc_h3DxVcUJGES3d_l4Lo4LAA_18_20"></a><a id="Tc_DXaxAvNueUa_B72zDRa15w_18_24"></a><a id="Tc_6NTZ4oWxWUm8M4xS72SYgw_20_2"></a><a id="Tc_6NqfHJuw5kaJL5-3nOlWWg_20_14"></a><a id="Tc_jbySwL33_U6K4zwKtDJHbw_21_0"></a><a id="Tc_A60UCO5oAEC-0b0P368M4w_21_2"></a><a id="Tc_yOhUdsb11kOTLGhbsfUp6g_21_8"></a><a id="Tc_la2vA_YSSkqH7BxDhrU3Tg_21_14"></a><a id="Tc_jJb7R-wUC0WMJYx8iQcv7A_21_20"></a><a id="Tc_klykggy6RU-3uekWU7MhTw_22_0"></a><a id="Tc_HLkqhAA8PUiVaStW0WSnRA_22_2"></a><a id="Tc_xke8HrQ3PE-eL5pkl0HkPA_22_6"></a><a id="Tc_J-wzBtyBOk6ctRF_0ofeQQ_22_8"></a><a id="Tc_HaE0S9J3E024m_b0asTteA_22_12"></a><a id="Tc_qT-uHg71mU-mns_y5kDi8w_22_14"></a><a id="Tc_d_kVfI8aE0Ws85z2vPGqJQ_22_18"></a><a id="Tc_1Lt2RezM1U2j8VrLJpZmpw_22_20"></a><a id="Tc_uZjziyjPX0ezzb4ljc0jfg_22_24"></a><a id="Tc_Ybp8NWXJ-E6sss_zrYZw4w_23_0"></a><a id="Tc__pv-0a8h80642p6Ap7YUAA_23_6"></a><a id="Tc_UWzMXa1lM0Oc-EgzXOj5Vw_23_12"></a><a id="Tc_m5XFIKHQcUi_jpYmVMFoCQ_23_18"></a><a id="Tc_4akyk7TGWEu5teMs5KDWWg_23_24"></a><a id="Tc_FU3jPUe5kku1OuU0e_UQnw_24_0"></a><a id="Tc_u5WbBPPmkESyTjoifL5b9w_24_6"></a><a id="Tc_iwhEa2Dwj0Osr9DJbzB7wQ_24_12"></a><a id="Tc_71pqjHYj70qOq0u7CTdXlA_24_18"></a><a id="Tc_9rt5bfm2MEuVOV4r6YnJAw_24_24"></a><a id="Tc_VoYoN586R0OlvSA14Dm99w_25_0"></a><a id="Tc_xoL1Qh640k2iK6t6FPx04w_25_6"></a><a id="Tc_eba6mMm_v06lQAaW73rJ-Q_25_12"></a><a id="Tc_Zy7H-3AYokmPJ1E0jeP96g_25_18"></a><a id="Tc_R3A-SmrhW0SA0wwTl_KfQw_25_24"></a><a id="Tc_kRm_3bmb0UqcX1RrN_P6pA_26_0"></a><a id="Tc_M_TKo3k1Zka0sOdphk5BZw_26_2"></a><a id="Tc_LMx2gHQkbkCsaFIhdKX_aw_26_6"></a><a id="Tc__Uc9u1jTS0KhSyvDNZfajQ_26_8"></a><a id="Tc_PQHVXwvCRkCjxEH6jLiZMA_26_12"></a><a id="Tc_z4GTpVGQTE-Babm_I7yj5A_26_14"></a><a id="Tc_2Za-5t5EYkO62IkrXKuE3w_26_18"></a><a id="Tc_KUkW1Aj5HkKkPFQUygbzuA_26_20"></a><a id="Tc_Koe-IutxbE2hbDN8voy2MA_26_24"></a><ix:continuation id="Group_9sy55jJsC0eKLO0RDE4PSQ_cont2" continuedAt="Group_9sy55jJsC0eKLO0RDE4PSQ_cont3"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">successful in mitigating these risks or realizing related opportunities, these adjustments may result in a decrease in operating income. Changes in estimates of revenue, cost of services and the related impact to operating income are recognized quarterly on a cumulative catch-up basis, meaning we recognize in the current period the cumulative effect of the changes on current and prior periods based on our <span style="background:#ffffff;">progress towards complete satisfaction of a performance obligation</span>. A significant change in one or more of these estimates could affect the profitability of one or more of our performance obligations. For projects in which estimates of total costs to be incurred on a performance obligation exceed total estimates of revenue to be earned, a provision for the entire loss on the performance obligation is recognized in the period the loss is determined. </p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">During the three months ended September 30, 2024 and 2023, net revenue recognized from our performance obligations partially satisfied in the previous period positively impacted revenue by <ix:nonFraction unitRef="Unit_Standard_pure_0GIr2wv4rk-T38a8Lz0A5w" contextRef="Duration_7_1_2024_To_9_30_2024_XquWrHsdeEmkK9F8qXf6qA" decimals="3" format="ixt:numdotdecimal" name="fix:ContractWithCustomerPerformanceObligationSatisfiedInPreviousPeriodPercentage" scale="-2" id="Narr_M8IRoldDBEWdxfhkN9YhZg">1.7</ix:nonFraction>% and <ix:nonFraction unitRef="Unit_Standard_pure_0GIr2wv4rk-T38a8Lz0A5w" contextRef="Duration_7_1_2023_To_9_30_2023_S4fUa5HYuk6ZPxhUrn5m5w" decimals="3" format="ixt:numdotdecimal" name="fix:ContractWithCustomerPerformanceObligationSatisfiedInPreviousPeriodPercentage" scale="-2" id="Narr_EC8zAmtQWECnqCsJBKLFwA">0.8</ix:nonFraction>%, respectively, as a result of changes in estimates associated with performance obligations on contracts. During the nine months ended September 30, 2024 and 2023, net revenue recognized from our performance obligations partially satisfied in the previous period positively impacted revenue by <ix:nonFraction unitRef="Unit_Standard_pure_0GIr2wv4rk-T38a8Lz0A5w" contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ" decimals="3" format="ixt:numdotdecimal" name="fix:ContractWithCustomerPerformanceObligationSatisfiedInPreviousPeriodPercentage" scale="-2" id="Narr_VFqsKRQXy0qkvfJ1c-3oqA">2.7</ix:nonFraction>% and <ix:nonFraction unitRef="Unit_Standard_pure_0GIr2wv4rk-T38a8Lz0A5w" contextRef="Duration_1_1_2023_To_9_30_2023_0vpBpKZIxEC_KY5z5G8rKA" decimals="3" format="ixt:numdotdecimal" name="fix:ContractWithCustomerPerformanceObligationSatisfiedInPreviousPeriodPercentage" scale="-2" id="Narr_DF6i8XLyJEiOf5onNJ6lgw">1.3</ix:nonFraction>%<span style="white-space:pre-wrap;">, respectively, as a result of changes in estimates associated with performance obligations on contracts.   </span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="font-style:italic;font-weight:bold;">Disaggregation of Revenue</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">Our consolidated 2024 revenue was derived from contracts to provide service activities in the mechanical and electrical segments we serve. Refer to Note 11 &#8220;Segment Information&#8221; for additional information on our reportable segments. We disaggregate our revenue from contracts with customers by activity, customer type and service provided, as we believe it best depicts how the nature, amount, timing and uncertainty of our revenue and cash flows are affected by economic factors. <ix:nonNumeric contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ" name="us-gaap:DisaggregationOfRevenueTableTextBlock" id="Group_1rA3AmrV_keFZudjVdtl0A" continuedAt="Group_1rA3AmrV_keFZudjVdtl0A_2" escape="true">See details in the following tables (dollars in thousands):</ix:nonNumeric></p><ix:continuation id="Group_1rA3AmrV_keFZudjVdtl0A_2"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 0pt 36pt;"><span style="margin-left:0pt;visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:24.07%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:24.07%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="10" style="vertical-align:bottom;white-space:nowrap;width:35.03%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Three Months Ended September 30, </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="11" style="vertical-align:bottom;white-space:nowrap;width:36.57%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Nine Months Ended September 30, </b></p></td></tr><tr><td style="vertical-align:bottom;width:24.07%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><b style="font-weight:bold;">Revenue by Service Provided</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;</b></p></td><td colspan="4" style="vertical-align:bottom;white-space:nowrap;width:16.04%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2024</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;</b></p></td><td colspan="4" style="vertical-align:bottom;white-space:nowrap;width:16.04%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2023</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;</b></p></td><td colspan="4" style="vertical-align:bottom;white-space:nowrap;width:16.04%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2024</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;</b></p></td><td colspan="4" style="vertical-align:bottom;white-space:nowrap;width:16.04%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2023</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:24.07%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">Mechanical Segment</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_7_1_2024_To_9_30_2024_srt_ProductOrServiceAxis_fix_MechanicalSegmentMember_zSjBPjtYwUi_X1HFKHPBRA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:Revenues" scale="3" id="Tc_Kc18MMybOUqL6JuB4Jo4KQ_3_3">1,438,617</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">&#160;&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_pure_0GIr2wv4rk-T38a8Lz0A5w" contextRef="Duration_7_1_2024_To_9_30_2024_srt_ProductOrServiceAxis_fix_MechanicalSegmentMember_zSjBPjtYwUi_X1HFKHPBRA" decimals="3" format="ixt:numdotdecimal" name="fix:PercentageOfRevenueFromContractWithCustomer" scale="-2" id="Tc_HAEdWRuRcEC4r1uYAph_TQ_3_5">79.4</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_7_1_2023_To_9_30_2023_srt_ProductOrServiceAxis_fix_MechanicalSegmentMember_ERE56cXrDkqqTstR-ZqOmw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:Revenues" scale="3" id="Tc_4xQxiF6HS0usrgOS5NfGVg_3_9">1,031,310</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">&#160;&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_pure_0GIr2wv4rk-T38a8Lz0A5w" contextRef="Duration_7_1_2023_To_9_30_2023_srt_ProductOrServiceAxis_fix_MechanicalSegmentMember_ERE56cXrDkqqTstR-ZqOmw" decimals="3" format="ixt:numdotdecimal" name="fix:PercentageOfRevenueFromContractWithCustomer" scale="-2" id="Tc_nGo_cvCvyEmefwYQ5Vc5iA_3_11">74.8</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_1_1_2024_To_9_30_2024_srt_ProductOrServiceAxis_fix_MechanicalSegmentMember_dvUOkdhSUkekmtE7VK9W8Q" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:Revenues" scale="3" id="Tc_C_ggkz1rPEmVsnTPNc5L3w_3_15">4,075,305</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">&#160;&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_pure_0GIr2wv4rk-T38a8Lz0A5w" contextRef="Duration_1_1_2024_To_9_30_2024_srt_ProductOrServiceAxis_fix_MechanicalSegmentMember_dvUOkdhSUkekmtE7VK9W8Q" decimals="3" format="ixt:numdotdecimal" name="fix:PercentageOfRevenueFromContractWithCustomer" scale="-2" id="Tc_DYHzH6HGPE2fVyapq_qRIA_3_17">79.0</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_1_1_2023_To_9_30_2023_srt_ProductOrServiceAxis_fix_MechanicalSegmentMember_5Zvwx1aGcUmEmUz8Y0iq0g" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:Revenues" scale="3" id="Tc_W317tO0hdUmvhAgAJXVQZQ_3_21">2,925,848</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">&#160;&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_pure_0GIr2wv4rk-T38a8Lz0A5w" contextRef="Duration_1_1_2023_To_9_30_2023_srt_ProductOrServiceAxis_fix_MechanicalSegmentMember_5Zvwx1aGcUmEmUz8Y0iq0g" decimals="3" format="ixt:numdotdecimal" name="fix:PercentageOfRevenueFromContractWithCustomer" scale="-2" id="Tc_3LE-_LAIHU2CtN52imSrrQ_3_23">76.0</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">%</p></td></tr><tr><td style="vertical-align:bottom;width:24.07%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">Electrical Segment</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_7_1_2024_To_9_30_2024_srt_ProductOrServiceAxis_fix_ElectricalSegmentMember_x3CnBCq-ukmmkcOLyaXSzw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:Revenues" scale="3" id="Tc__M7NrTZMZkajcPlkjaTo_w_4_3">373,749</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_pure_0GIr2wv4rk-T38a8Lz0A5w" contextRef="Duration_7_1_2024_To_9_30_2024_srt_ProductOrServiceAxis_fix_ElectricalSegmentMember_x3CnBCq-ukmmkcOLyaXSzw" decimals="3" format="ixt:numdotdecimal" name="fix:PercentageOfRevenueFromContractWithCustomer" scale="-2" id="Tc_y0Px6JGN10GXmdvPJdiydg_4_5">20.6</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_7_1_2023_To_9_30_2023_srt_ProductOrServiceAxis_fix_ElectricalSegmentMember_EhM9QnB9q0KvmMWYVDF6Zg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:Revenues" scale="3" id="Tc_esQB8EFs7EytGF7x2CewYg_4_9">346,814</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_pure_0GIr2wv4rk-T38a8Lz0A5w" contextRef="Duration_7_1_2023_To_9_30_2023_srt_ProductOrServiceAxis_fix_ElectricalSegmentMember_EhM9QnB9q0KvmMWYVDF6Zg" decimals="3" format="ixt:numdotdecimal" name="fix:PercentageOfRevenueFromContractWithCustomer" scale="-2" id="Tc_wqjYM94ltEiG3CpDwZsn7A_4_11">25.2</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_1_1_2024_To_9_30_2024_srt_ProductOrServiceAxis_fix_ElectricalSegmentMember_o0t0pUlXiUyaiEyLXjNLqg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:Revenues" scale="3" id="Tc_i38CIMWoTEOy8msG1qflTw_4_15">1,084,367</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_pure_0GIr2wv4rk-T38a8Lz0A5w" contextRef="Duration_1_1_2024_To_9_30_2024_srt_ProductOrServiceAxis_fix_ElectricalSegmentMember_o0t0pUlXiUyaiEyLXjNLqg" decimals="3" format="ixt:numdotdecimal" name="fix:PercentageOfRevenueFromContractWithCustomer" scale="-2" id="Tc_rUZEeKJnKEaOJa3a2frYRQ_4_17">21.0</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_1_1_2023_To_9_30_2023_srt_ProductOrServiceAxis_fix_ElectricalSegmentMember_2uWX4c1lfk6w485DVAhWOQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:Revenues" scale="3" id="Tc_rdZIKS-Ca0G-dwkHHWIE7w_4_21">923,346</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_pure_0GIr2wv4rk-T38a8Lz0A5w" contextRef="Duration_1_1_2023_To_9_30_2023_srt_ProductOrServiceAxis_fix_ElectricalSegmentMember_2uWX4c1lfk6w485DVAhWOQ" decimals="3" format="ixt:numdotdecimal" name="fix:PercentageOfRevenueFromContractWithCustomer" scale="-2" id="Tc_XrC_GMO_lkuJbKK1ycfUAg_4_23">24.0</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">%</p></td></tr><tr><td style="vertical-align:bottom;width:24.07%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">Total </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.48%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_7_1_2024_To_9_30_2024_XquWrHsdeEmkK9F8qXf6qA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:Revenues" scale="3" id="Tc_wqPDVvHE8UC7SfjkjTtPUw_5_3">1,812,366</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_pure_0GIr2wv4rk-T38a8Lz0A5w" contextRef="Duration_7_1_2024_To_9_30_2024_XquWrHsdeEmkK9F8qXf6qA" decimals="3" format="ixt:numdotdecimal" name="fix:PercentageOfRevenueFromContractWithCustomer" scale="-2" id="Tc_WYO6in6tWUeqrmQqN0bjnA_5_5">100.0</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.48%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_7_1_2023_To_9_30_2023_S4fUa5HYuk6ZPxhUrn5m5w" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:Revenues" scale="3" id="Tc_akg_5fcvwU6BOLIhne0rGw_5_9">1,378,124</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_pure_0GIr2wv4rk-T38a8Lz0A5w" contextRef="Duration_7_1_2023_To_9_30_2023_S4fUa5HYuk6ZPxhUrn5m5w" decimals="3" format="ixt:numdotdecimal" name="fix:PercentageOfRevenueFromContractWithCustomer" scale="-2" id="Tc_byeG7YVgDkGGiIFJ1oS43Q_5_11">100.0</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.48%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:Revenues" scale="3" id="Tc_38VrzZjTdESI3HNr4cumqw_5_15">5,159,672</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_pure_0GIr2wv4rk-T38a8Lz0A5w" contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ" decimals="3" format="ixt:numdotdecimal" name="fix:PercentageOfRevenueFromContractWithCustomer" scale="-2" id="Tc_NpsN-ENk-UeiCN-hIe_uDg_5_17">100.0</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.48%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_1_1_2023_To_9_30_2023_0vpBpKZIxEC_KY5z5G8rKA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:Revenues" scale="3" id="Tc_Ux-bmktrfEydMGom9-rGFg_5_21">3,849,194</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_pure_0GIr2wv4rk-T38a8Lz0A5w" contextRef="Duration_1_1_2023_To_9_30_2023_0vpBpKZIxEC_KY5z5G8rKA" decimals="3" format="ixt:numdotdecimal" name="fix:PercentageOfRevenueFromContractWithCustomer" scale="-2" id="Tc_FC6f_7VjrUa0AJMDTRcfmQ_5_23">100.0</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">%</p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:24.07%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:24.07%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="10" style="vertical-align:bottom;white-space:nowrap;width:35.03%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Three Months Ended September 30, </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="11" style="vertical-align:bottom;white-space:nowrap;width:36.57%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Nine Months Ended September 30, </b></p></td></tr><tr><td style="vertical-align:bottom;width:24.07%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><b style="font-weight:bold;">Revenue by Type of Customer</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="4" style="vertical-align:bottom;white-space:nowrap;width:16.04%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2024</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="4" style="vertical-align:bottom;white-space:nowrap;width:16.04%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2023</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="4" style="vertical-align:bottom;white-space:nowrap;width:16.04%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2024</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="4" style="vertical-align:bottom;white-space:nowrap;width:16.04%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2023</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td></tr><tr><td style="vertical-align:bottom;width:24.07%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">Technology</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_7_1_2024_To_9_30_2024_srt_MajorCustomersAxis_fix_TechnologyMember_KsDxF3geU0unObVLWO98Dg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:Revenues" scale="3" id="Tc_0U3taksU4EqRobz_RgrLDg_9_3">615,398</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_pure_0GIr2wv4rk-T38a8Lz0A5w" contextRef="Duration_7_1_2024_To_9_30_2024_srt_MajorCustomersAxis_fix_TechnologyMember_KsDxF3geU0unObVLWO98Dg" decimals="3" format="ixt:numdotdecimal" name="fix:PercentageOfRevenueFromContractWithCustomer" scale="-2" id="Tc_31WwBP3liUGQlb22yCdO7Q_9_5">34.0</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_7_1_2023_To_9_30_2023_srt_MajorCustomersAxis_fix_TechnologyMember_f_AWks4nDUO_PVuPOxT2Ug" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:Revenues" scale="3" id="Tc_5ADzS3pDx0OKJksjcb0mZA_9_9">303,847</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_pure_0GIr2wv4rk-T38a8Lz0A5w" contextRef="Duration_7_1_2023_To_9_30_2023_srt_MajorCustomersAxis_fix_TechnologyMember_f_AWks4nDUO_PVuPOxT2Ug" decimals="3" format="ixt:numdotdecimal" name="fix:PercentageOfRevenueFromContractWithCustomer" scale="-2" id="Tc_yooH39hT90qmjpOjzr6azA_9_11">22.0</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_1_1_2024_To_9_30_2024_srt_MajorCustomersAxis_fix_TechnologyMember_8Ha7PafjlUqeoARzwkE3eg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:Revenues" scale="3" id="Tc_iP2fq0GEokaf2-AFwCsjeg_9_15">1,641,525</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_pure_0GIr2wv4rk-T38a8Lz0A5w" contextRef="Duration_1_1_2024_To_9_30_2024_srt_MajorCustomersAxis_fix_TechnologyMember_8Ha7PafjlUqeoARzwkE3eg" decimals="3" format="ixt:numdotdecimal" name="fix:PercentageOfRevenueFromContractWithCustomer" scale="-2" id="Tc_t3LhSDFzGUyOQ-XTASpdVw_9_17">31.8</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_1_1_2023_To_9_30_2023_srt_MajorCustomersAxis_fix_TechnologyMember_gsMI6hHvYEeyed_Plm-HmA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:Revenues" scale="3" id="Tc_r2D3ZlQvaUKEcNA0GLND0Q_9_21">795,327</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_pure_0GIr2wv4rk-T38a8Lz0A5w" contextRef="Duration_1_1_2023_To_9_30_2023_srt_MajorCustomersAxis_fix_TechnologyMember_gsMI6hHvYEeyed_Plm-HmA" decimals="3" format="ixt:numdotdecimal" name="fix:PercentageOfRevenueFromContractWithCustomer" scale="-2" id="Tc_zVxXcZBf50uCjMzSfHNXeg_9_23">20.7</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">%</p></td></tr><tr><td style="vertical-align:bottom;width:24.07%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">Manufacturing</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_7_1_2024_To_9_30_2024_srt_MajorCustomersAxis_fix_ManufacturingCustomerMember_DlSkW78ckESme-WbVK0ifw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:Revenues" scale="3" id="Tc_IP1b2kIYLESJwqS7dLW_ZQ_10_3">452,157</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_pure_0GIr2wv4rk-T38a8Lz0A5w" contextRef="Duration_7_1_2024_To_9_30_2024_srt_MajorCustomersAxis_fix_ManufacturingCustomerMember_DlSkW78ckESme-WbVK0ifw" decimals="3" format="ixt:numdotdecimal" name="fix:PercentageOfRevenueFromContractWithCustomer" scale="-2" id="Tc_AZPLoK5nrU2XhXobE-Rn0w_10_5">24.9</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_7_1_2023_To_9_30_2023_srt_MajorCustomersAxis_fix_ManufacturingCustomerMember_d8LstyS2_0eYmjU47uflpA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:Revenues" scale="3" id="Tc__K41KgngMUqx-W0hN-hTDQ_10_9">469,173</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_pure_0GIr2wv4rk-T38a8Lz0A5w" contextRef="Duration_7_1_2023_To_9_30_2023_srt_MajorCustomersAxis_fix_ManufacturingCustomerMember_d8LstyS2_0eYmjU47uflpA" decimals="3" format="ixt:numdotdecimal" name="fix:PercentageOfRevenueFromContractWithCustomer" scale="-2" id="Tc_NOa6LyozhE-jxsCuf7PRhA_10_11">34.0</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_1_1_2024_To_9_30_2024_srt_MajorCustomersAxis_fix_ManufacturingCustomerMember_at5IYry25U-KfN2L9AzS_Q" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:Revenues" scale="3" id="Tc_sHubI5CO-0ywIgAf5uQGow_10_15">1,439,772</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_pure_0GIr2wv4rk-T38a8Lz0A5w" contextRef="Duration_1_1_2024_To_9_30_2024_srt_MajorCustomersAxis_fix_ManufacturingCustomerMember_at5IYry25U-KfN2L9AzS_Q" decimals="3" format="ixt:numdotdecimal" name="fix:PercentageOfRevenueFromContractWithCustomer" scale="-2" id="Tc_iucdfyhJ-EKRCzDGGPMdWQ_10_17">27.9</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_1_1_2023_To_9_30_2023_srt_MajorCustomersAxis_fix_ManufacturingCustomerMember_1ntFAqiRBU-LgOlfAwP-XQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:Revenues" scale="3" id="Tc_FkVWWxohmEiF1cLEAHEG_A_10_21">1,271,348</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_pure_0GIr2wv4rk-T38a8Lz0A5w" contextRef="Duration_1_1_2023_To_9_30_2023_srt_MajorCustomersAxis_fix_ManufacturingCustomerMember_1ntFAqiRBU-LgOlfAwP-XQ" decimals="3" format="ixt:numdotdecimal" name="fix:PercentageOfRevenueFromContractWithCustomer" scale="-2" id="Tc_hZuR2UI_dUK6JwMu6nU82Q_10_23">33.0</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">%</p></td></tr><tr><td style="vertical-align:bottom;width:24.07%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">Education</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_7_1_2024_To_9_30_2024_srt_MajorCustomersAxis_fix_EducationMember_3s_WeWJeO02h2rX6ci5CYA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:Revenues" scale="3" id="Tc_uRKarVtay0Shq3opPFk57A_11_3">195,737</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_pure_0GIr2wv4rk-T38a8Lz0A5w" contextRef="Duration_7_1_2024_To_9_30_2024_srt_MajorCustomersAxis_fix_EducationMember_3s_WeWJeO02h2rX6ci5CYA" decimals="3" format="ixt:numdotdecimal" name="fix:PercentageOfRevenueFromContractWithCustomer" scale="-2" id="Tc_-seIZWV7CUi7mwZ39mGPrQ_11_5">10.8</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_7_1_2023_To_9_30_2023_srt_MajorCustomersAxis_fix_EducationMember_IXPI4j2t1EuVO_835l-ROg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:Revenues" scale="3" id="Tc_gRuNo81WC0-O9sULjDUoiA_11_9">139,206</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_pure_0GIr2wv4rk-T38a8Lz0A5w" contextRef="Duration_7_1_2023_To_9_30_2023_srt_MajorCustomersAxis_fix_EducationMember_IXPI4j2t1EuVO_835l-ROg" decimals="3" format="ixt:numdotdecimal" name="fix:PercentageOfRevenueFromContractWithCustomer" scale="-2" id="Tc_GbKEnPoqXk6sRZo73tLctg_11_11">10.1</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_1_1_2024_To_9_30_2024_srt_MajorCustomersAxis_fix_EducationMember_7MnM8jwS_Umjv2UlYVMfxQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:Revenues" scale="3" id="Tc_ylYgGJMyMUuzh_OFx6QMsg_11_15">523,153</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_pure_0GIr2wv4rk-T38a8Lz0A5w" contextRef="Duration_1_1_2024_To_9_30_2024_srt_MajorCustomersAxis_fix_EducationMember_7MnM8jwS_Umjv2UlYVMfxQ" decimals="3" format="ixt:numdotdecimal" name="fix:PercentageOfRevenueFromContractWithCustomer" scale="-2" id="Tc_aEEAqlwIsUyBesADbN4Qgw_11_17">10.1</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_1_1_2023_To_9_30_2023_srt_MajorCustomersAxis_fix_EducationMember_RzrHrhvZOEqM88oaj1mOWw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:Revenues" scale="3" id="Tc_dSnfPTGnYkG9MmNuGASY4g_11_21">376,637</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_pure_0GIr2wv4rk-T38a8Lz0A5w" contextRef="Duration_1_1_2023_To_9_30_2023_srt_MajorCustomersAxis_fix_EducationMember_RzrHrhvZOEqM88oaj1mOWw" decimals="3" format="ixt:numdotdecimal" name="fix:PercentageOfRevenueFromContractWithCustomer" scale="-2" id="Tc_N0stX73itUmIvnLzfgkt7g_11_23">9.8</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">%</p></td></tr><tr><td style="vertical-align:bottom;width:24.07%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">Healthcare</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_7_1_2024_To_9_30_2024_srt_MajorCustomersAxis_fix_HealthcareSectorCustomerMember_iM7xuXrB1UGGGYT2NTTnKw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:Revenues" scale="3" id="Tc_0S7fmB7y8U63xOPKOmApDA_12_3">149,974</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_pure_0GIr2wv4rk-T38a8Lz0A5w" contextRef="Duration_7_1_2024_To_9_30_2024_srt_MajorCustomersAxis_fix_HealthcareSectorCustomerMember_iM7xuXrB1UGGGYT2NTTnKw" decimals="3" format="ixt:numdotdecimal" name="fix:PercentageOfRevenueFromContractWithCustomer" scale="-2" id="Tc_AG3OcPwwrUSLooaiJ_qdpA_12_5">8.3</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_7_1_2023_To_9_30_2023_srt_MajorCustomersAxis_fix_HealthcareSectorCustomerMember_98MrGE2fNEW16lWzpetk6A" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:Revenues" scale="3" id="Tc_fHdiH2Vb1EOfQd0127AioA_12_9">133,130</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_pure_0GIr2wv4rk-T38a8Lz0A5w" contextRef="Duration_7_1_2023_To_9_30_2023_srt_MajorCustomersAxis_fix_HealthcareSectorCustomerMember_98MrGE2fNEW16lWzpetk6A" decimals="3" format="ixt:numdotdecimal" name="fix:PercentageOfRevenueFromContractWithCustomer" scale="-2" id="Tc_QhysT92YQkC8k21MG3FoWA_12_11">9.7</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_1_1_2024_To_9_30_2024_srt_MajorCustomersAxis_fix_HealthcareSectorCustomerMember_qD7fXzmzKkm_9Q_7qkwq4A" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:Revenues" scale="3" id="Tc_5fWhqKrQ80S61ddj3FztpA_12_15">424,450</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_pure_0GIr2wv4rk-T38a8Lz0A5w" contextRef="Duration_1_1_2024_To_9_30_2024_srt_MajorCustomersAxis_fix_HealthcareSectorCustomerMember_qD7fXzmzKkm_9Q_7qkwq4A" decimals="3" format="ixt:numdotdecimal" name="fix:PercentageOfRevenueFromContractWithCustomer" scale="-2" id="Tc_BkFK7k8qNkqSSjmz0H1Ttw_12_17">8.2</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_1_1_2023_To_9_30_2023_srt_MajorCustomersAxis_fix_HealthcareSectorCustomerMember_DQuFCD0170O_Pg1jeSAQdQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:Revenues" scale="3" id="Tc_W0Dn11ERY0e6_kwkvY9JvA_12_21">431,329</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_pure_0GIr2wv4rk-T38a8Lz0A5w" contextRef="Duration_1_1_2023_To_9_30_2023_srt_MajorCustomersAxis_fix_HealthcareSectorCustomerMember_DQuFCD0170O_Pg1jeSAQdQ" decimals="3" format="ixt:numdotdecimal" name="fix:PercentageOfRevenueFromContractWithCustomer" scale="-2" id="Tc_4dodzskNWEinLDR0T1ILuA_12_23">11.2</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">%</p></td></tr><tr><td style="vertical-align:bottom;width:24.07%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">Office Buildings</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_7_1_2024_To_9_30_2024_srt_MajorCustomersAxis_fix_OfficeBuildingCustomerMember_jctX_m442UmvBsXqlaT9Yg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:Revenues" scale="3" id="Tc_O3pXsFPN_Ey--MFKOcHa7A_13_3">109,233</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_pure_0GIr2wv4rk-T38a8Lz0A5w" contextRef="Duration_7_1_2024_To_9_30_2024_srt_MajorCustomersAxis_fix_OfficeBuildingCustomerMember_jctX_m442UmvBsXqlaT9Yg" decimals="3" format="ixt:numdotdecimal" name="fix:PercentageOfRevenueFromContractWithCustomer" scale="-2" id="Tc_RU3lCZcioEeOFsoUHA9uNQ_13_5">6.0</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_7_1_2023_To_9_30_2023_srt_MajorCustomersAxis_fix_OfficeBuildingCustomerMember_pHSah2Q_ZkafnHa1Q7RhOg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:Revenues" scale="3" id="Tc_KHzh7_0P7E6mNG81lDcqWQ_13_9">104,937</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_pure_0GIr2wv4rk-T38a8Lz0A5w" contextRef="Duration_7_1_2023_To_9_30_2023_srt_MajorCustomersAxis_fix_OfficeBuildingCustomerMember_pHSah2Q_ZkafnHa1Q7RhOg" decimals="3" format="ixt:numdotdecimal" name="fix:PercentageOfRevenueFromContractWithCustomer" scale="-2" id="Tc_Obj1U-Z7HkG0tCcBzsLkvw_13_11">7.6</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_1_1_2024_To_9_30_2024_srt_MajorCustomersAxis_fix_OfficeBuildingCustomerMember_BcP-IXTgNUGzTH6kcfg3Zw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:Revenues" scale="3" id="Tc_COsjjsvyEUKbbl2m5U9f2A_13_15">326,137</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_pure_0GIr2wv4rk-T38a8Lz0A5w" contextRef="Duration_1_1_2024_To_9_30_2024_srt_MajorCustomersAxis_fix_OfficeBuildingCustomerMember_BcP-IXTgNUGzTH6kcfg3Zw" decimals="3" format="ixt:numdotdecimal" name="fix:PercentageOfRevenueFromContractWithCustomer" scale="-2" id="Tc_rUgDj5XbmUWs7HUlJyOSKA_13_17">6.3</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_1_1_2023_To_9_30_2023_srt_MajorCustomersAxis_fix_OfficeBuildingCustomerMember_5ck-_ey1iEmhLHtML0T7Qw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:Revenues" scale="3" id="Tc_B_DVK5SynkyNkbPksZAR4A_13_21">299,103</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_pure_0GIr2wv4rk-T38a8Lz0A5w" contextRef="Duration_1_1_2023_To_9_30_2023_srt_MajorCustomersAxis_fix_OfficeBuildingCustomerMember_5ck-_ey1iEmhLHtML0T7Qw" decimals="3" format="ixt:numdotdecimal" name="fix:PercentageOfRevenueFromContractWithCustomer" scale="-2" id="Tc_EwdYcjvfv0GA5rCCXTA-dw_13_23">7.8</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">%</p></td></tr><tr><td style="vertical-align:bottom;width:24.07%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">Retail, Restaurants and Entertainment</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_7_1_2024_To_9_30_2024_srt_MajorCustomersAxis_fix_RetailRestaurantsAndEntertainmentMember_FdEm-EcqqEOqEpuOJGXGqQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:Revenues" scale="3" id="Tc__kwqPIUIAEy0IuD2IM7V4A_14_3">114,572</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_pure_0GIr2wv4rk-T38a8Lz0A5w" contextRef="Duration_7_1_2024_To_9_30_2024_srt_MajorCustomersAxis_fix_RetailRestaurantsAndEntertainmentMember_FdEm-EcqqEOqEpuOJGXGqQ" decimals="3" format="ixt:numdotdecimal" name="fix:PercentageOfRevenueFromContractWithCustomer" scale="-2" id="Tc_VqEWRo4hZ06ondQH6VpKWQ_14_5">6.3</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_7_1_2023_To_9_30_2023_srt_MajorCustomersAxis_fix_RetailRestaurantsAndEntertainmentMember_jGe7tXzCSUazhQentwBi6g" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:Revenues" scale="3" id="Tc_vtFRzckmzUSk_1WCzgG9oQ_14_9">77,802</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_pure_0GIr2wv4rk-T38a8Lz0A5w" contextRef="Duration_7_1_2023_To_9_30_2023_srt_MajorCustomersAxis_fix_RetailRestaurantsAndEntertainmentMember_jGe7tXzCSUazhQentwBi6g" decimals="3" format="ixt:numdotdecimal" name="fix:PercentageOfRevenueFromContractWithCustomer" scale="-2" id="Tc_1t4P1T5tN0eM-0QjGO9INg_14_11">5.6</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_1_1_2024_To_9_30_2024_srt_MajorCustomersAxis_fix_RetailRestaurantsAndEntertainmentMember_mSxxcWu0iEGriS1GvinPXg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:Revenues" scale="3" id="Tc_ig5LCgoRHUaQJVSFlSMOgw_14_15">309,658</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_pure_0GIr2wv4rk-T38a8Lz0A5w" contextRef="Duration_1_1_2024_To_9_30_2024_srt_MajorCustomersAxis_fix_RetailRestaurantsAndEntertainmentMember_mSxxcWu0iEGriS1GvinPXg" decimals="3" format="ixt:numdotdecimal" name="fix:PercentageOfRevenueFromContractWithCustomer" scale="-2" id="Tc_CCg6t-pJH0iShZsLXJNJnA_14_17">6.0</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_1_1_2023_To_9_30_2023_srt_MajorCustomersAxis_fix_RetailRestaurantsAndEntertainmentMember_iRcGOwE8BkqMimheyifr0Q" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:Revenues" scale="3" id="Tc_l-0V5scXWEWGPuTcZhP98Q_14_21">234,779</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_pure_0GIr2wv4rk-T38a8Lz0A5w" contextRef="Duration_1_1_2023_To_9_30_2023_srt_MajorCustomersAxis_fix_RetailRestaurantsAndEntertainmentMember_iRcGOwE8BkqMimheyifr0Q" decimals="3" format="ixt:numdotdecimal" name="fix:PercentageOfRevenueFromContractWithCustomer" scale="-2" id="Tc_cSsSS4JnbkiTus6D30setQ_14_23">6.1</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">%</p></td></tr><tr><td style="vertical-align:bottom;width:24.07%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">Government</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_7_1_2024_To_9_30_2024_srt_MajorCustomersAxis_fix_GovernmentCustomerMember_6rJ0v9NfEkehmj1jbsxjTA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:Revenues" scale="3" id="Tc_HuMPYQ_XQUydXB2CULrrmQ_15_3">92,555</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_pure_0GIr2wv4rk-T38a8Lz0A5w" contextRef="Duration_7_1_2024_To_9_30_2024_srt_MajorCustomersAxis_fix_GovernmentCustomerMember_6rJ0v9NfEkehmj1jbsxjTA" decimals="3" format="ixt:numdotdecimal" name="fix:PercentageOfRevenueFromContractWithCustomer" scale="-2" id="Tc_bQj-OJM0aUGJ4prreO-SXQ_15_5">5.1</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_7_1_2023_To_9_30_2023_srt_MajorCustomersAxis_fix_GovernmentCustomerMember_lu4XhCrd50S4x-cEsGLwMA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:Revenues" scale="3" id="Tc_pabRg2d3UUSMt8i7Le0C6w_15_9">85,220</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_pure_0GIr2wv4rk-T38a8Lz0A5w" contextRef="Duration_7_1_2023_To_9_30_2023_srt_MajorCustomersAxis_fix_GovernmentCustomerMember_lu4XhCrd50S4x-cEsGLwMA" decimals="3" format="ixt:numdotdecimal" name="fix:PercentageOfRevenueFromContractWithCustomer" scale="-2" id="Tc_lFpGysyypUKnbKBCs7U5Bg_15_11">6.3</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_1_1_2024_To_9_30_2024_srt_MajorCustomersAxis_fix_GovernmentCustomerMember_Bn5B0HvRvkyNvOiVoQwe-A" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:Revenues" scale="3" id="Tc_SF99kfhrZEOSymCwrkFdwg_15_15">271,429</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_pure_0GIr2wv4rk-T38a8Lz0A5w" contextRef="Duration_1_1_2024_To_9_30_2024_srt_MajorCustomersAxis_fix_GovernmentCustomerMember_Bn5B0HvRvkyNvOiVoQwe-A" decimals="3" format="ixt:numdotdecimal" name="fix:PercentageOfRevenueFromContractWithCustomer" scale="-2" id="Tc_TctyJ9or40K6IFeyzLJCWA_15_17">5.3</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_1_1_2023_To_9_30_2023_srt_MajorCustomersAxis_fix_GovernmentCustomerMember_KZybkavxEES6_Y1Ef66T9w" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:Revenues" scale="3" id="Tc_RNXpxT8FK02t2LyP9cgdTQ_15_21">227,232</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_pure_0GIr2wv4rk-T38a8Lz0A5w" contextRef="Duration_1_1_2023_To_9_30_2023_srt_MajorCustomersAxis_fix_GovernmentCustomerMember_KZybkavxEES6_Y1Ef66T9w" decimals="3" format="ixt:numdotdecimal" name="fix:PercentageOfRevenueFromContractWithCustomer" scale="-2" id="Tc_mAnHxiAj3k6jQKGLxpy9Lw_15_23">5.9</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">%</p></td></tr><tr><td style="vertical-align:bottom;width:24.07%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">Multi-Family and Residential</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_7_1_2024_To_9_30_2024_srt_MajorCustomersAxis_fix_MultiFamilyAndResidentialMember_yHQoZtxDMUS7uq8YgHlu8g" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:Revenues" scale="3" id="Tc_a9HnBr9wLUeTwu6yyWDxsw_16_3">33,838</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_pure_0GIr2wv4rk-T38a8Lz0A5w" contextRef="Duration_7_1_2024_To_9_30_2024_srt_MajorCustomersAxis_fix_MultiFamilyAndResidentialMember_yHQoZtxDMUS7uq8YgHlu8g" decimals="3" format="ixt:numdotdecimal" name="fix:PercentageOfRevenueFromContractWithCustomer" scale="-2" id="Tc_PEsHVByFR0q1wV_BrUIzSQ_16_5">1.9</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_7_1_2023_To_9_30_2023_srt_MajorCustomersAxis_fix_MultiFamilyAndResidentialMember_lXNLSArRmEWGe3DLspPuEQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:Revenues" scale="3" id="Tc_KT86ODy-nEWGVJWue7RFhg_16_9">45,523</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_pure_0GIr2wv4rk-T38a8Lz0A5w" contextRef="Duration_7_1_2023_To_9_30_2023_srt_MajorCustomersAxis_fix_MultiFamilyAndResidentialMember_lXNLSArRmEWGe3DLspPuEQ" decimals="3" format="ixt:numdotdecimal" name="fix:PercentageOfRevenueFromContractWithCustomer" scale="-2" id="Tc_EbqhEdkXxkS4iDo6aNAxVA_16_11">3.3</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_1_1_2024_To_9_30_2024_srt_MajorCustomersAxis_fix_MultiFamilyAndResidentialMember__QFzND4WM0qZXRCC48RVPg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:Revenues" scale="3" id="Tc_kxT4qz0xjkqKFMmhodoThQ_16_15">110,870</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_pure_0GIr2wv4rk-T38a8Lz0A5w" contextRef="Duration_1_1_2024_To_9_30_2024_srt_MajorCustomersAxis_fix_MultiFamilyAndResidentialMember__QFzND4WM0qZXRCC48RVPg" decimals="3" format="ixt:numdotdecimal" name="fix:PercentageOfRevenueFromContractWithCustomer" scale="-2" id="Tc_NCYAaGzV2EuAd0ZMzfKVtw_16_17">2.2</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_1_1_2023_To_9_30_2023_srt_MajorCustomersAxis_fix_MultiFamilyAndResidentialMember_gt6wgJzRZEayKVY24Ip8yQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:Revenues" scale="3" id="Tc_ICZD0jnyh0qo1cI73MiIVw_16_21">136,825</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_pure_0GIr2wv4rk-T38a8Lz0A5w" contextRef="Duration_1_1_2023_To_9_30_2023_srt_MajorCustomersAxis_fix_MultiFamilyAndResidentialMember_gt6wgJzRZEayKVY24Ip8yQ" decimals="3" format="ixt:numdotdecimal" name="fix:PercentageOfRevenueFromContractWithCustomer" scale="-2" id="Tc_XL6eoSjBDUCAvr2R1crAJw_16_23">3.5</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">%</p></td></tr><tr><td style="vertical-align:bottom;width:24.07%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">Other</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.48%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_7_1_2024_To_9_30_2024_srt_MajorCustomersAxis_us-gaap_OtherCustomerMember_ooxekhUnHkC59OhygvzcEg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:Revenues" scale="3" id="Tc_AZT32KGx006ahlfTrpc49w_17_3">48,902</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_pure_0GIr2wv4rk-T38a8Lz0A5w" contextRef="Duration_7_1_2024_To_9_30_2024_srt_MajorCustomersAxis_us-gaap_OtherCustomerMember_ooxekhUnHkC59OhygvzcEg" decimals="3" format="ixt:numdotdecimal" name="fix:PercentageOfRevenueFromContractWithCustomer" scale="-2" id="Tc_HYEVJTmk3kWBc0uvN1XGmQ_17_5">2.7</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.48%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_7_1_2023_To_9_30_2023_srt_MajorCustomersAxis_us-gaap_OtherCustomerMember_VGlfj-1TzEmnVzKTrmKWiQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:Revenues" scale="3" id="Tc_Eh1MNVX3aka7ew6QCy4C-g_17_9">19,286</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_pure_0GIr2wv4rk-T38a8Lz0A5w" contextRef="Duration_7_1_2023_To_9_30_2023_srt_MajorCustomersAxis_us-gaap_OtherCustomerMember_VGlfj-1TzEmnVzKTrmKWiQ" decimals="3" format="ixt:numdotdecimal" name="fix:PercentageOfRevenueFromContractWithCustomer" scale="-2" id="Tc_giAyzj5P0UyU4nFbeOjyTQ_17_11">1.4</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.48%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_1_1_2024_To_9_30_2024_srt_MajorCustomersAxis_us-gaap_OtherCustomerMember_3oz8P6zHak-9HhcCONsscQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:Revenues" scale="3" id="Tc_CI64Oar7AkKzoFQGq4_QbQ_17_15">112,678</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_pure_0GIr2wv4rk-T38a8Lz0A5w" contextRef="Duration_1_1_2024_To_9_30_2024_srt_MajorCustomersAxis_us-gaap_OtherCustomerMember_3oz8P6zHak-9HhcCONsscQ" decimals="3" format="ixt:numdotdecimal" name="fix:PercentageOfRevenueFromContractWithCustomer" scale="-2" id="Tc_8d6VoT7NAUKvMn93r1XGRw_17_17">2.2</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.48%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_1_1_2023_To_9_30_2023_srt_MajorCustomersAxis_us-gaap_OtherCustomerMember_1dZZBF2VrkuIAaJtkjLDMw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:Revenues" scale="3" id="Tc_C9gDAKAns06X5ajnUPwF0Q_17_21">76,614</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_pure_0GIr2wv4rk-T38a8Lz0A5w" contextRef="Duration_1_1_2023_To_9_30_2023_srt_MajorCustomersAxis_us-gaap_OtherCustomerMember_1dZZBF2VrkuIAaJtkjLDMw" decimals="3" format="ixt:numdotdecimal" name="fix:PercentageOfRevenueFromContractWithCustomer" scale="-2" id="Tc_y0dZNMEXpk6uQfhr0ivbAg_17_23">2.0</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">%</p></td></tr><tr><td style="vertical-align:bottom;width:24.07%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">Total </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.48%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_7_1_2024_To_9_30_2024_XquWrHsdeEmkK9F8qXf6qA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:Revenues" scale="3" id="Tc_zebvIADh0Uql7JV0q5uPRg_18_3">1,812,366</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_pure_0GIr2wv4rk-T38a8Lz0A5w" contextRef="Duration_7_1_2024_To_9_30_2024_XquWrHsdeEmkK9F8qXf6qA" decimals="3" format="ixt:numdotdecimal" name="fix:PercentageOfRevenueFromContractWithCustomer" scale="-2" id="Tc_N-Eug3VI50C4DEe3PIesZw_18_5">100.0</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.48%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_7_1_2023_To_9_30_2023_S4fUa5HYuk6ZPxhUrn5m5w" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:Revenues" scale="3" id="Tc_iu0NyW2vpUqkw7ab0DYX-A_18_9">1,378,124</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_pure_0GIr2wv4rk-T38a8Lz0A5w" contextRef="Duration_7_1_2023_To_9_30_2023_S4fUa5HYuk6ZPxhUrn5m5w" decimals="3" format="ixt:numdotdecimal" name="fix:PercentageOfRevenueFromContractWithCustomer" scale="-2" id="Tc_YgGmYvbD5kmcs62EA5lz8Q_18_11">100.0</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.48%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:Revenues" scale="3" id="Tc_Uoifuw8Mn0GMYwsoX2zKFw_18_15">5,159,672</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_pure_0GIr2wv4rk-T38a8Lz0A5w" contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ" decimals="3" format="ixt:numdotdecimal" name="fix:PercentageOfRevenueFromContractWithCustomer" scale="-2" id="Tc_2AdZQ8EWDkGlJkNVe4yp4g_18_17">100.0</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.48%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_1_1_2023_To_9_30_2023_0vpBpKZIxEC_KY5z5G8rKA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:Revenues" scale="3" id="Tc__qZg61pIV0K5AZNEGyP92Q_18_21">3,849,194</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_pure_0GIr2wv4rk-T38a8Lz0A5w" contextRef="Duration_1_1_2023_To_9_30_2023_0vpBpKZIxEC_KY5z5G8rKA" decimals="3" format="ixt:numdotdecimal" name="fix:PercentageOfRevenueFromContractWithCustomer" scale="-2" id="Tc_exPRvx-lu0u-vsusnXHZ0w_18_23">100.0</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">%</p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:24.07%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:24.07%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="10" style="vertical-align:bottom;white-space:nowrap;width:35.03%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Three Months Ended September 30, </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="11" style="vertical-align:bottom;white-space:nowrap;width:36.57%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Nine Months Ended September 30, </b></p></td></tr><tr><td style="vertical-align:bottom;width:24.07%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><b style="font-weight:bold;">Revenue by Activity Type</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="4" style="vertical-align:bottom;white-space:nowrap;width:16.04%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2024</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="4" style="vertical-align:bottom;white-space:nowrap;width:16.04%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2023</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="4" style="vertical-align:bottom;white-space:nowrap;width:16.04%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2024</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="4" style="vertical-align:bottom;white-space:nowrap;width:16.04%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2023</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td></tr><tr><td style="vertical-align:bottom;width:24.07%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">New Construction</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_7_1_2024_To_9_30_2024_us-gaap_StatementBusinessSegmentsAxis_fix_NewConstructionMember_TPRoRp0_rkeI19wbVGoUiw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:Revenues" scale="3" id="Tc_nsX5hpcX0kCaRJZP-87xwg_22_3">949,035</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_pure_0GIr2wv4rk-T38a8Lz0A5w" contextRef="Duration_7_1_2024_To_9_30_2024_us-gaap_StatementBusinessSegmentsAxis_fix_NewConstructionMember_TPRoRp0_rkeI19wbVGoUiw" decimals="3" format="ixt:numdotdecimal" name="fix:PercentageOfRevenueFromContractWithCustomer" scale="-2" id="Tc_6-MK6DzvvkuikQvnLqnLaA_22_5">52.4</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_7_1_2023_To_9_30_2023_us-gaap_StatementBusinessSegmentsAxis_fix_NewConstructionMember_X-8Qi_Gr-EqavravxT4Tmw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:Revenues" scale="3" id="Tc_W_oggsw5iE-0aeutV2WjJw_22_9">798,289</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_pure_0GIr2wv4rk-T38a8Lz0A5w" contextRef="Duration_7_1_2023_To_9_30_2023_us-gaap_StatementBusinessSegmentsAxis_fix_NewConstructionMember_X-8Qi_Gr-EqavravxT4Tmw" decimals="3" format="ixt:numdotdecimal" name="fix:PercentageOfRevenueFromContractWithCustomer" scale="-2" id="Tc_XgSLhlmoEEmWPZVXNole_Q_22_11">57.9</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_1_1_2024_To_9_30_2024_us-gaap_StatementBusinessSegmentsAxis_fix_NewConstructionMember_1OFwKv6p1E-T4eLsC_JEsg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:Revenues" scale="3" id="Tc_J0fwrtZIvkqkLgJys0P4eQ_22_15">2,930,283</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_pure_0GIr2wv4rk-T38a8Lz0A5w" contextRef="Duration_1_1_2024_To_9_30_2024_us-gaap_StatementBusinessSegmentsAxis_fix_NewConstructionMember_1OFwKv6p1E-T4eLsC_JEsg" decimals="3" format="ixt:numdotdecimal" name="fix:PercentageOfRevenueFromContractWithCustomer" scale="-2" id="Tc_OmX-0RxFfUKCY6Vj_r3vMQ_22_17">56.8</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_1_1_2023_To_9_30_2023_us-gaap_StatementBusinessSegmentsAxis_fix_NewConstructionMember_vZyk2ScSaUWum8ZsO7KiAw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:Revenues" scale="3" id="Tc_RuSDnS7nSE2g9ADRFxdtpA_22_21">2,108,153</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_pure_0GIr2wv4rk-T38a8Lz0A5w" contextRef="Duration_1_1_2023_To_9_30_2023_us-gaap_StatementBusinessSegmentsAxis_fix_NewConstructionMember_vZyk2ScSaUWum8ZsO7KiAw" decimals="3" format="ixt:numdotdecimal" name="fix:PercentageOfRevenueFromContractWithCustomer" scale="-2" id="Tc_xxl8POw7pkeYbpFKW4hpCw_22_23">54.8</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">%</p></td></tr><tr><td style="vertical-align:bottom;width:24.07%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">Existing Building Construction</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_7_1_2024_To_9_30_2024_us-gaap_StatementBusinessSegmentsAxis_fix_ExistingBuildingConstructionMember_xsHcU1o_pk6S278XapX_zw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:Revenues" scale="3" id="Tc_lyVP4WKOLE6qPuFjTAGTQg_23_3">570,288</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_pure_0GIr2wv4rk-T38a8Lz0A5w" contextRef="Duration_7_1_2024_To_9_30_2024_us-gaap_StatementBusinessSegmentsAxis_fix_ExistingBuildingConstructionMember_xsHcU1o_pk6S278XapX_zw" decimals="3" format="ixt:numdotdecimal" name="fix:PercentageOfRevenueFromContractWithCustomer" scale="-2" id="Tc_JNR68YSFo0q5t6scawLoiQ_23_5">31.5</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_7_1_2023_To_9_30_2023_us-gaap_StatementBusinessSegmentsAxis_fix_ExistingBuildingConstructionMember_FXRjqCbVgEKB2tybWB0X-g" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:Revenues" scale="3" id="Tc_SIaYmcxxq0eO3a4D9ZYR9w_23_9">305,795</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_pure_0GIr2wv4rk-T38a8Lz0A5w" contextRef="Duration_7_1_2023_To_9_30_2023_us-gaap_StatementBusinessSegmentsAxis_fix_ExistingBuildingConstructionMember_FXRjqCbVgEKB2tybWB0X-g" decimals="3" format="ixt:numdotdecimal" name="fix:PercentageOfRevenueFromContractWithCustomer" scale="-2" id="Tc_vkaUpGnj_kuZNzfXLgORlw_23_11">22.2</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_1_1_2024_To_9_30_2024_us-gaap_StatementBusinessSegmentsAxis_fix_ExistingBuildingConstructionMember_kFgT68z3yEm6YFsca1c4sQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:Revenues" scale="3" id="Tc_qBBXKnOC7kKs2aFFYyZpkg_23_15">1,407,231</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_pure_0GIr2wv4rk-T38a8Lz0A5w" contextRef="Duration_1_1_2024_To_9_30_2024_us-gaap_StatementBusinessSegmentsAxis_fix_ExistingBuildingConstructionMember_kFgT68z3yEm6YFsca1c4sQ" decimals="3" format="ixt:numdotdecimal" name="fix:PercentageOfRevenueFromContractWithCustomer" scale="-2" id="Tc_tikDA9Iq6E6LOROTrIx9Qw_23_17">27.3</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_1_1_2023_To_9_30_2023_us-gaap_StatementBusinessSegmentsAxis_fix_ExistingBuildingConstructionMember_n_MbMVArkEyX3wbyy5U5Rw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:Revenues" scale="3" id="Tc__DApExSFK0Goh6-2OIpbMA_23_21">974,085</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_pure_0GIr2wv4rk-T38a8Lz0A5w" contextRef="Duration_1_1_2023_To_9_30_2023_us-gaap_StatementBusinessSegmentsAxis_fix_ExistingBuildingConstructionMember_n_MbMVArkEyX3wbyy5U5Rw" decimals="3" format="ixt:numdotdecimal" name="fix:PercentageOfRevenueFromContractWithCustomer" scale="-2" id="Tc_s67f1reXUkCfqRpENMfu0Q_23_23">25.3</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">%</p></td></tr><tr><td style="vertical-align:bottom;width:24.07%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">Service Projects</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_7_1_2024_To_9_30_2024_us-gaap_StatementBusinessSegmentsAxis_fix_ServiceProjectsMember_v1xTvZU3H0O-NNEJG5Wuag" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:Revenues" scale="3" id="Tc_C3Ak6SiMJ0iFx4-rIFGA0g_24_3">125,249</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_pure_0GIr2wv4rk-T38a8Lz0A5w" contextRef="Duration_7_1_2024_To_9_30_2024_us-gaap_StatementBusinessSegmentsAxis_fix_ServiceProjectsMember_v1xTvZU3H0O-NNEJG5Wuag" decimals="3" format="ixt:numdotdecimal" name="fix:PercentageOfRevenueFromContractWithCustomer" scale="-2" id="Tc_U5lC2ujsFkOZTgcTjSKZig_24_5">6.9</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_7_1_2023_To_9_30_2023_us-gaap_StatementBusinessSegmentsAxis_fix_ServiceProjectsMember_BIAAdohKR0KkRoxqv355pQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:Revenues" scale="3" id="Tc_57rA1v72lEK6qczRreTDXQ_24_9">117,202</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_pure_0GIr2wv4rk-T38a8Lz0A5w" contextRef="Duration_7_1_2023_To_9_30_2023_us-gaap_StatementBusinessSegmentsAxis_fix_ServiceProjectsMember_BIAAdohKR0KkRoxqv355pQ" decimals="3" format="ixt:numdotdecimal" name="fix:PercentageOfRevenueFromContractWithCustomer" scale="-2" id="Tc_3QwllkSTykCuaN9SSTXFJA_24_11">8.5</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_1_1_2024_To_9_30_2024_us-gaap_StatementBusinessSegmentsAxis_fix_ServiceProjectsMember_UXRSMj4jZEaQfly5_6v8FA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:Revenues" scale="3" id="Tc_1t7gUUvauUeRvUNBjXNtSw_24_15">355,643</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_pure_0GIr2wv4rk-T38a8Lz0A5w" contextRef="Duration_1_1_2024_To_9_30_2024_us-gaap_StatementBusinessSegmentsAxis_fix_ServiceProjectsMember_UXRSMj4jZEaQfly5_6v8FA" decimals="3" format="ixt:numdotdecimal" name="fix:PercentageOfRevenueFromContractWithCustomer" scale="-2" id="Tc_r0tafU4-6UCXeB90rv_aeg_24_17">6.9</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_1_1_2023_To_9_30_2023_us-gaap_StatementBusinessSegmentsAxis_fix_ServiceProjectsMember_haGwYoQcvUCiGoQWZ1VG1w" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:Revenues" scale="3" id="Tc_5nTaMH_lakSa01qV6RgelA_24_21">335,053</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_pure_0GIr2wv4rk-T38a8Lz0A5w" contextRef="Duration_1_1_2023_To_9_30_2023_us-gaap_StatementBusinessSegmentsAxis_fix_ServiceProjectsMember_haGwYoQcvUCiGoQWZ1VG1w" decimals="3" format="ixt:numdotdecimal" name="fix:PercentageOfRevenueFromContractWithCustomer" scale="-2" id="Tc_vUasZ4RNMEG1ElGtS86dKA_24_23">8.7</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">%</p></td></tr><tr><td style="vertical-align:bottom;width:24.07%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">Service Calls, Maintenance and Monitoring</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_7_1_2024_To_9_30_2024_us-gaap_StatementBusinessSegmentsAxis_fix_ServiceCallsMaintenanceAndMonitoringMember_nRP3Zz-B5UeD5mhLWvsftg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:Revenues" scale="3" id="Tc_Go8NQVoMpk2CXjBiOuKokQ_25_3">167,794</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_pure_0GIr2wv4rk-T38a8Lz0A5w" contextRef="Duration_7_1_2024_To_9_30_2024_us-gaap_StatementBusinessSegmentsAxis_fix_ServiceCallsMaintenanceAndMonitoringMember_nRP3Zz-B5UeD5mhLWvsftg" decimals="3" format="ixt:numdotdecimal" name="fix:PercentageOfRevenueFromContractWithCustomer" scale="-2" id="Tc_72OJs8apG0WTU3Znzq4UJQ_25_5">9.2</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_7_1_2023_To_9_30_2023_us-gaap_StatementBusinessSegmentsAxis_fix_ServiceCallsMaintenanceAndMonitoringMember_NQSFRlXpkEGM1kjrMGGdkg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:Revenues" scale="3" id="Tc_J9XOdUM9DU-5kxa_MwxrWg_25_9">156,838</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_pure_0GIr2wv4rk-T38a8Lz0A5w" contextRef="Duration_7_1_2023_To_9_30_2023_us-gaap_StatementBusinessSegmentsAxis_fix_ServiceCallsMaintenanceAndMonitoringMember_NQSFRlXpkEGM1kjrMGGdkg" decimals="3" format="ixt:numdotdecimal" name="fix:PercentageOfRevenueFromContractWithCustomer" scale="-2" id="Tc_IoGSxX-lLkOw7PmVyvUEEw_25_11">11.4</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_1_1_2024_To_9_30_2024_us-gaap_StatementBusinessSegmentsAxis_fix_ServiceCallsMaintenanceAndMonitoringMember_g7dgBZVClUiBSjvSBcXJLA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:Revenues" scale="3" id="Tc_-D4QGCW0P0uRmYrVFSJT0Q_25_15">466,515</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_pure_0GIr2wv4rk-T38a8Lz0A5w" contextRef="Duration_1_1_2024_To_9_30_2024_us-gaap_StatementBusinessSegmentsAxis_fix_ServiceCallsMaintenanceAndMonitoringMember_g7dgBZVClUiBSjvSBcXJLA" decimals="3" format="ixt:numdotdecimal" name="fix:PercentageOfRevenueFromContractWithCustomer" scale="-2" id="Tc_w1lflx5x-kmB3h7BBByMVw_25_17">9.0</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_1_1_2023_To_9_30_2023_us-gaap_StatementBusinessSegmentsAxis_fix_ServiceCallsMaintenanceAndMonitoringMember_8McghxnrdUmSrStHl4sMXQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:Revenues" scale="3" id="Tc_2MkSXFp0pEu3mzjSvcn5Zw_25_21">431,903</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_pure_0GIr2wv4rk-T38a8Lz0A5w" contextRef="Duration_1_1_2023_To_9_30_2023_us-gaap_StatementBusinessSegmentsAxis_fix_ServiceCallsMaintenanceAndMonitoringMember_8McghxnrdUmSrStHl4sMXQ" decimals="3" format="ixt:numdotdecimal" name="fix:PercentageOfRevenueFromContractWithCustomer" scale="-2" id="Tc_AHNHuhjeOkCXG9zlX0AXcw_25_23">11.2</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">%</p></td></tr><tr><td style="vertical-align:bottom;width:24.07%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">Total </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.48%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_7_1_2024_To_9_30_2024_XquWrHsdeEmkK9F8qXf6qA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:Revenues" scale="3" id="Tc_1H0-iUcGFEO1Lqng5f2xzw_26_3">1,812,366</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_pure_0GIr2wv4rk-T38a8Lz0A5w" contextRef="Duration_7_1_2024_To_9_30_2024_XquWrHsdeEmkK9F8qXf6qA" decimals="3" format="ixt:numdotdecimal" name="fix:PercentageOfRevenueFromContractWithCustomer" scale="-2" id="Tc__83bNbk2i0yjlXO82ZtzSQ_26_5">100.0</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.48%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_7_1_2023_To_9_30_2023_S4fUa5HYuk6ZPxhUrn5m5w" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:Revenues" scale="3" id="Tc_fCGl-Oe-Ck2dE0qiSNV7wg_26_9">1,378,124</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_pure_0GIr2wv4rk-T38a8Lz0A5w" contextRef="Duration_7_1_2023_To_9_30_2023_S4fUa5HYuk6ZPxhUrn5m5w" decimals="3" format="ixt:numdotdecimal" name="fix:PercentageOfRevenueFromContractWithCustomer" scale="-2" id="Tc_gazq5KMkJkGjDK4y-iq0WQ_26_11">100.0</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.48%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:Revenues" scale="3" id="Tc_NpBgJZOHxEaV1Z04uAEpWA_26_15">5,159,672</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_pure_0GIr2wv4rk-T38a8Lz0A5w" contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ" decimals="3" format="ixt:numdotdecimal" name="fix:PercentageOfRevenueFromContractWithCustomer" scale="-2" id="Tc_jiBn5-VU2kCzMTcYofGQQA_26_17">100.0</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.48%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_1_1_2023_To_9_30_2023_0vpBpKZIxEC_KY5z5G8rKA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:Revenues" scale="3" id="Tc_QCs-bgw4j0SAePeELzYSQw_26_21">3,849,194</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_pure_0GIr2wv4rk-T38a8Lz0A5w" contextRef="Duration_1_1_2023_To_9_30_2023_0vpBpKZIxEC_KY5z5G8rKA" decimals="3" format="ixt:numdotdecimal" name="fix:PercentageOfRevenueFromContractWithCustomer" scale="-2" id="Tc_vWlOMZ5lZ0y7D_JHT0ed5w_26_23">100.0</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">%</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></ix:continuation><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="font-style:italic;font-weight:bold;">Contract Assets and Liabilities</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">Contract assets include unbilled amounts typically resulting from sales under long term contracts when the cost-to-cost method of revenue recognition is used, revenue recognized exceeds the amount billed to the customer and right to </p></ix:continuation></div></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:12pt 0pt 0pt 0pt;">11</p></div></div>
<div style="background-color:#000000;clear:both;height:2pt;page-break-after:always;width:79.41%;border:0;margin:30pt 10.29% 30pt 10.29%;"></div><div style="max-width:100%;padding-left:10.29%;padding-right:10.29%;position:relative;"><div style="margin-top:21.6pt;min-height:41.4pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 30pt 0pt;"><a href="#Toc"><span style="font-style:normal;font-weight:normal;">Table of Contents</span></a></p></div><div style="clear:both;margin-left:-10.0pt;margin-right:-10.0pt;max-width:100%;position:relative;width:calc(100% + 20.0pt);"><div style="padding-left:10pt;padding-right:10pt;position:relative;width:100%;"><a id="_28648184_f42e_4921_a4d8_c7d0c6c12caf"></a><a id="Tc_BOgxo7VRmEOSlZ-CHi1IwA_1_1"></a><a id="Tc_gEX_8alkf0ykN_D9wvzBtA_1_4"></a><a id="Tc_YcIvLdv0hkmUtahyJ02w1A_2_0"></a><a id="Tc_H2pLFwl81EefuzzKy6vnJA_3_0"></a><a id="Tc_CD1gya5EcEK0VfI-CIiuoQ_3_1"></a><a id="Tc_4tL3SgJD2EaUDK7gT3meMA_3_4"></a><a id="Tc_tkRmFCEOB0udlx6eUehN_Q_4_0"></a><a id="Tc_MDFMtjclUkSc337CpRpogg_5_0"></a><a id="Tc_ECEA-Eq0-kynWVEi1H0VZw_5_1"></a><a id="Tc_3F_OO-HFf0-8lwTvRbQk7g_5_4"></a><ix:continuation id="Group_9sy55jJsC0eKLO0RDE4PSQ_cont3"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">payment is conditional or subject to completing a milestone, such as a phase of the project. Contract assets are not considered to have a significant financing component, as they are intended to protect the customer in the event that we do not perform our obligations under the contract. </p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">Contract liabilities consist of advance payments and billings in excess of revenue recognized. Advanced payments from customers related to work not yet started are classified as deferred revenue. Contract liabilities are not considered to have a significant financing component, as they are used to meet working capital requirements that are generally higher in the early stages of a contract and are intended to protect us from the other party failing to meet its obligations under the contract. Our contract assets and liabilities are reported in a net position on a contract-by-contract basis at the end of each reporting period. </p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><ix:nonNumeric contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ" name="us-gaap:ContractWithCustomerAssetAndLiabilityTableTextBlock" id="Group_7S-YE160a0qkfeeymf9kgQ" escape="true"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">Contract assets and liabilities in the Consolidated Balance Sheet consisted of the following amounts as of September 30, 2024 and December 31, 2023 (in thousands):</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:middle;width:61.71%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="position:absolute;top:50%;transform:translate(0,-50%);width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:3.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:14.19%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:3.87%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:3.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:14.15%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:middle;width:61.71%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:17.22%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0.05pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">September 30, 2024</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0.05pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:17.18%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0.05pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">December 31, 2023</b></p></td></tr><tr><td style="vertical-align:middle;width:61.71%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;">Contract assets:</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.19%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.15%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:middle;width:61.71%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="white-space:pre-wrap;">   Costs and estimated earnings in excess of billings, less allowance for credit losses</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.19%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="As_Of_9_30_2024_um13j0l3zk2ITGaiED1DFA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:ContractWithCustomerAssetNet" scale="3" id="Tc_0hEui9XLcESxD01uI06yGA_3_2">73,934</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.15%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="As_Of_12_31_2023_X7eqeHRTF0mRLJW7InVDdA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:ContractWithCustomerAssetNet" scale="3" id="Tc_RNLVvvvtxU-dLEo2oBKepQ_3_5">28,084</ix:nonFraction></p></td></tr><tr><td style="vertical-align:middle;width:61.71%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;">Contract liabilities:</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.19%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.15%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:middle;width:61.71%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="white-space:pre-wrap;">   Billings in excess of costs and estimated earnings and deferred revenue</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.19%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="As_Of_9_30_2024_um13j0l3zk2ITGaiED1DFA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:ContractWithCustomerLiabilityCurrent" scale="3" id="Tc_u9c5pboYREq3ekszQ_Y5bQ_5_2">1,197,532</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.15%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="As_Of_12_31_2023_X7eqeHRTF0mRLJW7InVDdA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:ContractWithCustomerLiabilityCurrent" scale="3" id="Tc_hUTZ0MSg70KIIOaLuQSRrQ_5_5">909,538</ix:nonFraction></p></td></tr></table></ix:nonNumeric><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="margin-bottom:5pt;margin-top:5pt;visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 13.19pt 0pt;">In the first nine months of 2024 and 2023, we recognized revenue of $<ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:ContractWithCustomerLiabilityRevenueRecognized" scale="6" id="Narr_4hsH_lAum0GBFXOoFW6EaA">767.3</ix:nonFraction> million and $<ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_1_1_2023_To_9_30_2023_0vpBpKZIxEC_KY5z5G8rKA" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:ContractWithCustomerLiabilityRevenueRecognized" scale="6" id="Narr_ZsnUdycKaEiAnDR3GTxApw">482.9</ix:nonFraction> million related to our contract liabilities at January 1, 2024 and January 1, 2023, respectively.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">We did <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_1_1_2023_To_9_30_2023_0vpBpKZIxEC_KY5z5G8rKA" decimals="0" format="ixt-sec:numwordsen" name="us-gaap:ContractWithCustomerAssetCreditLossExpense" scale="0" id="Narr_-0L6qZsnVUiBY3I9KrxrlQ"><ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ" decimals="0" format="ixt-sec:numwordsen" name="us-gaap:ContractWithCustomerAssetCreditLossExpense" scale="0" id="Narr_WtDfOErNFECyS_QX70QPtQ">no</ix:nonFraction></ix:nonFraction>t have any impairment losses recognized on our receivables or contract assets in the first nine months of 2024 and 2023.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="font-style:italic;font-weight:bold;">Remaining Performance Obligations</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="font-style:italic;font-weight:bold;visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">Remaining construction performance obligations represent the remaining transaction price of firm orders for which work has not been performed and exclude unexercised contract options. As of September 30, 2024, the aggregate amount of the transaction price allocated to remaining performance obligations was $<ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="As_Of_9_30_2024_us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis_fix_cnst_date_20240401_R4HBB7Adtki0cTpCVHmm3A" decimals="-7" format="ixt:numdotdecimal" name="us-gaap:RevenueRemainingPerformanceObligation" scale="9" id="Narr_-iRpWQZrFEyirOcw-VJc4A">5.68</ix:nonFraction> billion. The Company expects to recognize revenue on approximately <ix:nonFraction unitRef="Unit_Standard_pure_0GIr2wv4rk-T38a8Lz0A5w" contextRef="As_Of_9_30_2024_srt_RangeAxis_srt_MinimumMember_us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis_fix_cnst_date_20240401_KhHzX-P3hUuZ9un5V7uebg" decimals="2" format="ixt:numdotdecimal" name="us-gaap:RevenueRemainingPerformanceObligationPercentage" scale="-2" id="Narr_Tr0XUw2C9U2C5z97R7msZA">65</ix:nonFraction>-<ix:nonFraction unitRef="Unit_Standard_pure_0GIr2wv4rk-T38a8Lz0A5w" contextRef="As_Of_9_30_2024_srt_RangeAxis_srt_MaximumMember_us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis_fix_cnst_date_20240401_BllO1xJM-EiQTJc1oaHdoQ" decimals="2" format="ixt:numdotdecimal" name="us-gaap:RevenueRemainingPerformanceObligationPercentage" scale="-2" id="Narr_eD5cLhZ3wEmGoqCrax4GNQ">75</ix:nonFraction>% of the remaining performance obligations over the next <ix:nonNumeric contextRef="As_Of_9_30_2024_us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis_fix_cnst_date_20240401_R4HBB7Adtki0cTpCVHmm3A" format="ixt-sec:durwordsen" name="us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1" id="Narr_Tw2Lh0YnDUGB9ycKgcrxzQ">12 months</ix:nonNumeric>, with the remaining recognized thereafter. Our service maintenance agreements are generally <ix:nonNumeric contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ" format="ixt-sec:durwordsen" name="fix:RenewableServiceMaintenanceAgreementsTerm" id="Narr_D1B4_mc_4kSHusxzj2qZlw">one-year</ix:nonNumeric> renewable agreements. We have adopted the practical expedient that allows us to not include service maintenance contracts with a total term of <ix:nonNumeric contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ" format="ixt:booleantrue" name="us-gaap:RevenuePracticalExpedientRemainingPerformanceObligation" id="Narr_DMZTvmepbkqEwlvysvuxaA">one</ix:nonNumeric><span style="white-space:pre-wrap;"> year or less; therefore, we do not report unfulfilled performance obligations for service maintenance agreements.  </span></p></ix:continuation><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><ix:nonNumeric contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ" name="us-gaap:FairValueDisclosuresTextBlock" id="Tb_Ef0HQOdYREOif67Kk6EwEw" continuedAt="Tb_Ef0HQOdYREOif67Kk6EwEw_cont1" escape="true"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">4. Fair Value Measurements</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 6pt 0pt;"><span style="display:inline-block;text-indent:0pt;width:36pt;"></span><span style="font-style:italic;font-weight:bold;">Interest Rate Risk Management and Derivative Instruments</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">At times, we use derivative instruments to manage exposure to market risk,&#160;including&#160;interest rate risk. Unsettled amounts under our interest rate swaps, if any,&#160;are recorded in the Consolidated Balance Sheet at fair value in &#8220;Other Receivables&#8221; or &#8220;Other Current Liabilities.&#8221; Gains and losses on our interest rate swaps are recorded in the Consolidated Statement of Operations in &#8220;Interest Expense.&#8221; We currently do not have any derivatives that are accounted for as hedges under ASC 815.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="display:inline-block;text-indent:0pt;width:36pt;"></span><span style="font-style:italic;font-weight:bold;">Fair Value Measurement</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">We classify and disclose assets and liabilities carried at fair value in one of the following three categories:</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;width:100%;border:0pt;"><tr><td style="width:36pt;"/><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">&#9679;</td><td style="padding:0pt;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">Level&#160;1&#8212;quoted prices in active markets for identical assets and liabilities;</span></td></tr></table><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;width:100%;border:0pt;"><tr><td style="width:36pt;"/><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">&#9679;</td><td style="padding:0pt;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">Level&#160;2&#8212;observable market-based inputs or unobservable inputs that are corroborated by market data; and</span></td></tr></table><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;width:100%;border:0pt;"><tr><td style="width:36pt;"/><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">&#9679;</td><td style="padding:0pt;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">Level&#160;3&#8212;significant unobservable inputs in which little or no market data exists, therefore requiring an entity to develop its own assumptions.</span></td></tr></table></ix:nonNumeric></div></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:12pt 0pt 0pt 0pt;">12</p></div></div>
<div style="background-color:#000000;clear:both;height:2pt;page-break-after:always;width:79.41%;border:0;margin:30pt 10.29% 30pt 10.29%;"></div><div style="max-width:100%;padding-left:10.29%;padding-right:10.29%;position:relative;"><div style="margin-top:21.6pt;min-height:41.4pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 30pt 0pt;"><a href="#Toc"><span style="font-style:normal;font-weight:normal;">Table of Contents</span></a></p></div><div style="clear:both;margin-left:-10.0pt;margin-right:-10.0pt;max-width:100%;position:relative;width:calc(100% + 20.0pt);"><div style="padding-left:10pt;padding-right:10pt;position:relative;width:100%;"><a id="_1b7474af_fc4e_472b_a043_c18a0a52138d"></a><a id="Tc_Kd-GpiuIGk-qERsOGQkbsw_1_2"></a><a id="Tc_J9N4a8RtKUacgLjFpzmeyw_2_2"></a><a id="Tc__Ar_piskJkO65KxmSwynbA_2_5"></a><a id="Tc_hNwWCrl6NkKdz2ntgDQmQA_2_8"></a><a id="Tc_DZ67tUj_K02tZ_-Qm2tgmw_2_11"></a><a id="Tc_YdSFMmZYYUmkWRmSkgedeQ_3_0"></a><a id="Tc_Wy4Q1UY-p0mP4_xOr5HljA_3_2"></a><a id="Tc_x1iBWbOh-U2dYpcYdLc2vA_3_5"></a><a id="Tc_LkleOd9_SkeWFiQlxUdQ2A_3_6"></a><a id="Tc_HFT48zJCOk2MRDtvtxoxxw_3_8"></a><a id="Tc_AiT2udLq10yP6_WlilzHHg_3_9"></a><a id="Tc_Zh5pddUUTEePnbLTlPgzxg_3_11"></a><a id="Tc_Tb5BThMVX0OVs1H4aGrR8w_4_0"></a><a id="Tc_dPQdZlPQ90SqeIVcRL_lVg_4_2"></a><a id="Tc_k-DF4urKQk-Lm1VyjRXtqw_4_3"></a><a id="Tc_EFA6BKTrLEW8T47lil9PZQ_4_5"></a><a id="Tc_NQDK547-U0e7F9TUECQxZg_4_6"></a><a id="Tc_tsjl-pKbgUSZuUSFjRJ8-Q_4_8"></a><a id="Tc_3balPVQ3XU2Ck96JNEFp3g_4_11"></a><a id="Tc_K5aGeFISk0eCS1KMUP9sYw_6_2"></a><a id="Tc_q9PsTMhYzky3wvxWSZ3l0w_7_2"></a><a id="Tc__Nf2yrc5F0WrDDtnhaUdEQ_7_5"></a><a id="Tc_hc_SlAoVy02m1qwM0D2Jvw_7_8"></a><a id="Tc_NQ0i1gGna0KqUtmB5rwpRA_7_11"></a><a id="Tc_6wra8SSZ6UqeqHcrBsYUpQ_8_0"></a><a id="Tc_cOEMrr9gnEyNGng5idmOtg_8_2"></a><a id="Tc_J8qqaT-M8EOpLXKkDR4eww_8_5"></a><a id="Tc_CmUsOdfmt02Ha12VXvidHw_8_6"></a><a id="Tc_Aaa7gtoXMEOTlD5b104cAA_8_8"></a><a id="Tc_dVLeT-01K0WXdrVQzx0hOg_8_9"></a><a id="Tc_igQ9oOXvfUe3osunQewEGA_8_11"></a><a id="Tc_UdMFXq4kdkWW18-2M6gtVw_9_0"></a><a id="Tc_7thJ71ghb0CvlxAYdErl8g_9_2"></a><a id="Tc_Vwoh0joo1U2R56o3RRKrnw_9_3"></a><a id="Tc_WW9MVontUkWxUUdFPKibmg_9_5"></a><a id="Tc_98W3kPgRlEyEQPMqiVA15A_9_8"></a><a id="Tc_TvPrPGTtTkqTP6ZEsoz8KA_9_9"></a><a id="Tc_JwC1fQVkeEm6heTCTplu9Q_9_11"></a><a id="Tc_7IMonxXmb0yn4tUmWqoOww_10_0"></a><a id="Tc_6GRRnV6d-kuHy60JF2Xl4w_10_2"></a><a id="Tc_YIh9vAwpnEmS4VtA1HEWQA_10_3"></a><a id="Tc_IXjOInTU4EeAkQH5Yvq0NQ_10_5"></a><a id="Tc_x2bEDReuHU2QxXjhYH33vQ_10_6"></a><a id="Tc_bL5yZcrRDESon-3Iam7WWA_10_8"></a><a id="Tc_Zx3vjCMUsU2t8jK8smnmtQ_10_11"></a><a id="_cc28969e_8dd9_42a7_a7b3_102ed407e71d"></a><a id="Tc_Pp7Vw8x7yUCaom_OMXNHJA_1_2"></a><a id="Tc_vkiHZyT9cUuQEDYiO8MacA_1_5"></a><a id="Tc_i8zui_W44ES202eZphE-gg_2_2"></a><a id="Tc_LzzMNBwS2Euf_5c8cQxOkA_2_5"></a><a id="Tc_CzMwMnMp2U2C9OsPmRmjfg_3_0"></a><a id="Tc_-szI_aow_kKyRgmLkxbBWg_3_2"></a><a id="Tc_AXXEEc3KKUCnraLLHLsE2w_3_5"></a><a id="Tc_EbLAUD4ojUqxMmYvla9APA_4_0"></a><a id="Tc_hLI0Zql3p0KcxWws4QaYyg_5_0"></a><a id="Tc_7y9U_udDzEa9j45amGXXQQ_6_0"></a><a id="Tc_1fXAHggqo0iR0qdSiFz_qQ_7_0"></a><a id="Tc_HmPemMKsLUu2ekizzvdcOQ_7_2"></a><a id="Tc_iMMrvJxb-UeLADwesX54ag_7_5"></a><ix:continuation id="Tb_Ef0HQOdYREOif67Kk6EwEw_cont1"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><ix:nonNumeric contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ" name="us-gaap:ScheduleOfFairValueAssetsAndLiabilitiesMeasuredOnRecurringBasisTableTextBlock" id="Tb_vAStEgffUEC2mKAleRqTuA" escape="true"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">The following table summarizes the fair values, and levels within the fair value hierarchy in which the fair value measurements are included, for assets and liabilities measured on a recurring basis as of September 30, 2024 and December 31, 2023 (in thousands):</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:58.98%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:7.81%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:6.86%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:7.81%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:7.81%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:58.98%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="11" style="vertical-align:bottom;white-space:nowrap;width:39.37%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Fair&#160;Value&#160;Measurements&#160;at&#160;September 30, 2024</b></p></td></tr><tr><td style="vertical-align:bottom;width:58.98%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:8.84%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Level&#160;1</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:7.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Level&#160;2</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:8.84%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Level&#160;3</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:8.84%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Total</b></p></td></tr><tr><td style="vertical-align:bottom;width:58.98%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Cash and cash equivalents</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.81%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="As_Of_9_30_2024_us-gaap_FairValueByFairValueHierarchyLevelAxis_us-gaap_FairValueInputsLevel1Member_us-gaap_FairValueByMeasurementFrequencyAxis_us-gaap_FairValueMeasurementsRecurringMember_cYZklQkgzUO7e0HBwuxYsg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:CashAndCashEquivalentsFairValueDisclosure" scale="3" id="Tc_AmpEgTsmGUK_k55eu-VrXA_3_3">415,583</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.86%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.81%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.81%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="As_Of_9_30_2024_us-gaap_FairValueByMeasurementBasisAxis_us-gaap_EstimateOfFairValueFairValueDisclosureMember_us-gaap_FairValueByMeasurementFrequencyAxis_us-gaap_FairValueMeasurementsRecurringMember_mMGWK0XHXU-gmD_1-Ip02w" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:CashAndCashEquivalentsFairValueDisclosure" scale="3" id="Tc_52jsZQn6vE2pXEsZqtDPwA_3_12">415,583</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:58.98%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Contingent earn-out obligations</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.81%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.81%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="As_Of_9_30_2024_us-gaap_FairValueByFairValueHierarchyLevelAxis_us-gaap_FairValueInputsLevel3Member_us-gaap_FairValueByMeasurementFrequencyAxis_us-gaap_FairValueMeasurementsRecurringMember_5Yh2p4vMrE2MelwjCJo5zQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue" scale="3" id="Tc_E11GX5_aHU-WEXEauu-FZw_4_9">103,238</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.81%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="As_Of_9_30_2024_us-gaap_FairValueByMeasurementBasisAxis_us-gaap_EstimateOfFairValueFairValueDisclosureMember_us-gaap_FairValueByMeasurementFrequencyAxis_us-gaap_FairValueMeasurementsRecurringMember_mMGWK0XHXU-gmD_1-Ip02w" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue" scale="3" id="Tc_MDoMsIte60OhjdCYpaKx2g_4_12">103,238</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:58.98%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:11pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:11pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:11pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.81%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:11pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:11pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:11pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:11pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:11pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:11pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.81%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:11pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:11pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:11pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.81%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:11pt;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:58.98%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="11" style="vertical-align:bottom;white-space:nowrap;width:39.37%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Fair&#160;Value&#160;Measurements&#160;at&#160;December 31, 2023</b></p></td></tr><tr><td style="vertical-align:bottom;width:58.98%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:8.84%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Level&#160;1</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:7.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Level&#160;2</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:8.84%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Level&#160;3</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:8.84%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Total</b></p></td></tr><tr><td style="vertical-align:bottom;width:58.98%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Cash and cash equivalents</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.81%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="As_Of_12_31_2023_us-gaap_FairValueByFairValueHierarchyLevelAxis_us-gaap_FairValueInputsLevel1Member_us-gaap_FairValueByMeasurementFrequencyAxis_us-gaap_FairValueMeasurementsRecurringMember_Kd0jmytlNkq1QJcuaTF_Tw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:CashAndCashEquivalentsFairValueDisclosure" scale="3" id="Tc_vwEF3S7E20SzdYbjYuyzww_8_3">205,150</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.86%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.81%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.81%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="As_Of_12_31_2023_us-gaap_FairValueByMeasurementBasisAxis_us-gaap_EstimateOfFairValueFairValueDisclosureMember_us-gaap_FairValueByMeasurementFrequencyAxis_us-gaap_FairValueMeasurementsRecurringMember_6lW7BwjU8UCeo0LTvup66g" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:CashAndCashEquivalentsFairValueDisclosure" scale="3" id="Tc_QsyinvJfjkiODJBp5F9Mpg_8_12">205,150</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:58.98%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Life insurance&#8212;cash surrender value</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.81%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="As_Of_12_31_2023_us-gaap_FairValueByFairValueHierarchyLevelAxis_us-gaap_FairValueInputsLevel2Member_us-gaap_FairValueByMeasurementFrequencyAxis_us-gaap_FairValueMeasurementsRecurringMember_f9bGEi2wcECLNMoSjsii6g" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:CashSurrenderValueFairValueDisclosure" scale="3" id="Tc_SXTt1GD6FkmvI7mC7buOmA_9_6">7,473</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.81%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.81%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="As_Of_12_31_2023_us-gaap_FairValueByMeasurementBasisAxis_us-gaap_EstimateOfFairValueFairValueDisclosureMember_us-gaap_FairValueByMeasurementFrequencyAxis_us-gaap_FairValueMeasurementsRecurringMember_6lW7BwjU8UCeo0LTvup66g" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:CashSurrenderValueFairValueDisclosure" scale="3" id="Tc_w2qKe2JdF0amEIpRzpxWzw_9_12">7,473</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:58.98%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Contingent earn-out obligations</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.81%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.86%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.81%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="As_Of_12_31_2023_us-gaap_FairValueByFairValueHierarchyLevelAxis_us-gaap_FairValueInputsLevel3Member_us-gaap_FairValueByMeasurementFrequencyAxis_us-gaap_FairValueMeasurementsRecurringMember_ixgQ0Wh_OUuXKIm8Z6RKuw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue" scale="3" id="Tc_mF8T_On4NkCQjY_ZgaCcyA_10_9">44,222</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.81%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="As_Of_12_31_2023_us-gaap_FairValueByMeasurementBasisAxis_us-gaap_EstimateOfFairValueFairValueDisclosureMember_us-gaap_FairValueByMeasurementFrequencyAxis_us-gaap_FairValueMeasurementsRecurringMember_6lW7BwjU8UCeo0LTvup66g" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue" scale="3" id="Tc_kTc8b2eiHE69LqebkNBlGQ_10_12">44,222</ix:nonFraction></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></ix:nonNumeric><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">Cash and cash equivalents consist primarily of deposit accounts and highly rated money market funds at a variety of well-known institutions with original maturities of three months or less. The original cost of these assets approximates fair value due to their short-term maturity. We believe the carrying value of our debt associated with our revolving credit facility approximates its fair value due to the variable rate on such debt. We believe the carrying values of our notes to former owners approximate their fair values due to the relatively short remaining terms on these notes.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">As of December 31, 2023, we had life insurance policies covering <ix:nonFraction unitRef="Unit_Standard_employee_4_T_xVXJeUGRyiTsD-I_ag" contextRef="As_Of_12_31_2023_X7eqeHRTF0mRLJW7InVDdA" decimals="INF" format="ixt:numdotdecimal" name="fix:LifeInsuranceContractsNumberOfEmployeesCovered" scale="0" id="Narr_0G3kiRczoEaK0pMPlxJSig">131</ix:nonFraction> employees with a combined face value of $<ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="As_Of_12_31_2023_X7eqeHRTF0mRLJW7InVDdA" decimals="-5" format="ixt:numdotdecimal" name="fix:LifeInsuranceContractsFaceAmount" scale="6" id="Narr_qp4JKmfvlEaODFNzJoKp7Q">87.8</ix:nonFraction> million. The policies are invested in several investment vehicles, and the fair value measurement of the cash surrender balance associated with these policies is determined using Level&#160;2 inputs within the fair value hierarchy and will vary with investment performance. The cash surrender value of these policies is included in &#8220;Other Noncurrent Assets&#8221; in our Consolidated Balance Sheets.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">We value contingent earn-out obligations using a probability weighted discounted cash flow method. This fair value measurement is based on significant unobservable inputs in the market and thus represents a Level&#160;3 measurement within the fair value hierarchy. This analysis reflects the contractual terms of the purchase agreements (<i style="font-style:italic;">e.g.</i>, minimum and maximum payments, length of earn-out periods, manner of calculating any amounts due, etc.) and utilizes assumptions with regard to future cash flows and operating income, probabilities of achieving such future cash flows and operating income and a weighted average cost of capital. Significant changes in any of these assumptions could result in a significantly higher or lower potential liability. The contingent earn-out obligations are measured at fair value each reporting period, and changes in estimates of fair value are recognized in earnings. As of September 30, 2024, cash flows were discounted using a weighted average cost of capital ranging from <ix:nonFraction unitRef="Unit_Standard_pure_0GIr2wv4rk-T38a8Lz0A5w" contextRef="Duration_1_1_2024_To_9_30_2024_srt_RangeAxis_srt_MinimumMember_3wO7ciKypUqVRHiqsG5ULA" decimals="3" format="ixt:numdotdecimal" name="fix:WeightedAverageCostOfCapital" scale="-2" id="Narr_DlBIiFbTik-Ei2UVwY1AmA">16.0</ix:nonFraction>% to <ix:nonFraction unitRef="Unit_Standard_pure_0GIr2wv4rk-T38a8Lz0A5w" contextRef="Duration_1_1_2024_To_9_30_2024_srt_RangeAxis_srt_MaximumMember_S1BDn2duy0GGVVQoyxtpBA" decimals="3" format="ixt:numdotdecimal" name="fix:WeightedAverageCostOfCapital" scale="-2" id="Narr_YjmYuJZSzkK7xWIp4HSlyg">19.0</ix:nonFraction>%.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><ix:nonNumeric contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ" name="us-gaap:FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationTextBlock" id="Tb_JRt4TTXNl0-NH3MxBYhBag" escape="true"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">The table below presents a reconciliation of the fair value of our contingent earn-out obligations that use significant unobservable inputs (Level 3) (in thousands):</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:70.19%;"><tr style="height:1pt;"><td style="vertical-align:bottom;white-space:nowrap;width:52.96%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.65%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:3.19%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:18.15%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.65%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.84%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:16.12%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:0.73%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:0.67%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:52.96%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:21.35%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Nine Months Ended </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:18.96%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Year Ended</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.73%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:52.96%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:21.35%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">September 30, 2024</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:18.96%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">December 31, 2023</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.73%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:52.96%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Balance at beginning of period</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.65%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';">&#160;&#160;&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.19%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:18.15%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="As_Of_12_31_2023_us-gaap_FairValueByLiabilityClassAxis_fix_ContingentConsiderationObligationsMember_QiEcwmJcfkyCJZA_OIAaqw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue" scale="3" id="Tc_noXS8Tdy2UCJ8C3tLBiPnQ_3_3">44,222</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.65%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';">&#160;&#160;&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.84%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:16.12%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="As_Of_12_31_2022_us-gaap_FairValueByLiabilityClassAxis_fix_ContingentConsiderationObligationsMember_l5io3FvirkunNcDFGrPWFg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue" scale="3" id="Tc_es60JF87XESMIQyufY3ISw_3_6">32,317</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.73%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';">&#160;</span></p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:52.96%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Issuances</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.19%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:18.15%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_1_1_2024_To_9_30_2024_us-gaap_FairValueByLiabilityClassAxis_fix_ContingentConsiderationObligationsMember_lHT-Wg2JpUixTnvmQyoGPA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityIssues" scale="3" id="Tc_B5mvDV1RLk-NFtwwGyJJuQ_4_3">51,784</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.84%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:16.12%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_1_1_2023_To_12_31_2023_us-gaap_FairValueByLiabilityClassAxis_fix_ContingentConsiderationObligationsMember_NUKD-aaodUafCY7RklyjKA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityIssues" scale="3" id="Tc_dBwXZxOHWkmJQkZiGrShNA_4_6">4,315</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.73%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:52.96%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Settlements</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.65%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.19%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:18.15%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_1_1_2024_To_9_30_2024_us-gaap_FairValueByLiabilityClassAxis_fix_ContingentConsiderationObligationsMember_lHT-Wg2JpUixTnvmQyoGPA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilitySettlements" scale="3" id="Tc_a0DqxQnmeEy4PYc4sBG82g_5_3">37,202</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.65%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.84%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:16.12%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;">(<ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_1_1_2023_To_12_31_2023_us-gaap_FairValueByLiabilityClassAxis_fix_ContingentConsiderationObligationsMember_NUKD-aaodUafCY7RklyjKA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilitySettlements" scale="3" id="Tc_DDirqtGH_0use1dK3M4uog_5_6">16,017</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.73%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:52.96%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Adjustments to fair value</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.19%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:18.15%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_1_1_2024_To_9_30_2024_us-gaap_FairValueByLiabilityClassAxis_fix_ContingentConsiderationObligationsMember_lHT-Wg2JpUixTnvmQyoGPA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityGainLossIncludedInEarnings" scale="3" id="Tc_PX0b1JmBDEeC2QRBUUG2BQ_6_3">44,434</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.84%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:16.12%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_1_1_2023_To_12_31_2023_us-gaap_FairValueByLiabilityClassAxis_fix_ContingentConsiderationObligationsMember_NUKD-aaodUafCY7RklyjKA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityGainLossIncludedInEarnings" scale="3" id="Tc_3UHWGf7aqUqdfkmvOxn33g_6_6">23,607</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.73%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:52.96%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Balance at end of period</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.65%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.19%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:18.15%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="As_Of_9_30_2024_us-gaap_FairValueByLiabilityClassAxis_fix_ContingentConsiderationObligationsMember_V6NueS9puE29mSfrqUvXog" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue" scale="3" id="Tc_Dw9TCg2iuE6EdnZGo4pxyA_7_3">103,238</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.65%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.84%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:16.12%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="As_Of_12_31_2023_us-gaap_FairValueByLiabilityClassAxis_fix_ContingentConsiderationObligationsMember_QiEcwmJcfkyCJZA_OIAaqw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue" scale="3" id="Tc_xs9VdXfUN0yrnveRrQdpRg_7_6">44,222</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.73%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></ix:nonNumeric></ix:continuation><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><ix:nonNumeric contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ" name="us-gaap:BusinessCombinationDisclosureTextBlock" id="Tb_ZM-wcPJ_uUik3Ca6gvjJTg" continuedAt="Tb_ZM-wcPJ_uUik3Ca6gvjJTg_cont1" escape="true"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">5. Acquisitions</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="display:inline-block;text-indent:0pt;width:36pt;"></span><span style="font-style:italic;font-weight:bold;">Summit Industrial Construction, LLC Acquisition</span><span style="display:inline-block;width:10.1pt;"></span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="display:inline-block;text-indent:0pt;width:36pt;"></span>On February 1, 2024, we acquired Summit Industrial Construction, LLC (&#8220;Summit&#8221;). Summit is headquartered in Houston, Texas, and is a specialty industrial contractor offering engineering, design-assist and turnkey, direct hire construction services of systems serving the advanced technology, power, and industrial sectors. As a result of the </p></ix:nonNumeric></div></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:12pt 0pt 0pt 0pt;">13</p></div></div>
<div style="background-color:#000000;clear:both;height:2pt;page-break-after:always;width:79.41%;border:0;margin:30pt 10.29% 30pt 10.29%;"></div><div style="max-width:100%;padding-left:10.29%;padding-right:10.29%;position:relative;"><div style="margin-top:21.6pt;min-height:41.4pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 30pt 0pt;"><a href="#Toc"><span style="font-style:normal;font-weight:normal;">Table of Contents</span></a></p></div><div style="clear:both;margin-left:-10.0pt;margin-right:-10.0pt;max-width:100%;position:relative;width:calc(100% + 20.0pt);"><div style="padding-left:10pt;padding-right:10pt;position:relative;width:100%;"><a id="_f1d87a62_c4a7_49b0_bba5_b226e1bd44b2"></a><a id="Tc_EkMY6Fj2cE6p445V1kwGUA_1_0"></a><a id="Tc_6p66feZw00qEdV5c9G5qQA_2_0"></a><a id="Tc_dNYyancK70OWdDM6asv6Jw_2_1"></a><a id="Tc_AUIfrwhaE0G8WWK59G20Pg_3_0"></a><a id="Tc_Eb5UQa72i0Gt-e2XgHCjfw_4_0"></a><a id="Tc_s87If39PYkWHC3JAdnOFQw_5_0"></a><a id="Tc_eg8Bk_9k-UmlLqxBFsLAUQ_6_1"></a><a id="Tc_t8X8hmN2lEKGDYl2BWATkg_7_0"></a><a id="Tc_Vmy4V5z6GUCJMapobE3E2Q_8_0"></a><a id="Tc_aA_giDFAsE6BbMOhj7HHVQ_8_1"></a><a id="Tc_6Srr5hudb0maEdMEFVwx3Q_9_0"></a><a id="Tc_c3O8MkkrMk2RSki-N1OFkg_10_0"></a><a id="Tc_y2MDcXPFwU2zp7YGrRQGEw_11_0"></a><a id="Tc_vuvT8veouEuj5Aarf83shg_12_0"></a><a id="Tc_9_Mn3fej8UST4Z4xyalAUg_13_0"></a><a id="Tc_yjgLCX9B30WycPdHVlyuYQ_14_0"></a><a id="Tc_MlYavh8UTk-FQcQac9vNwA_15_0"></a><a id="Tc_EWkQ2EcJv0-UW5W_2BKg4g_16_0"></a><a id="Tc_EzlX4kXpAUm-JPlAnX2lDQ_17_0"></a><a id="Tc_B6EXffhaEka63nO4VfV6ZQ_18_0"></a><a id="Tc_ce4xFu5GekO28ytjS_C2QA_19_0"></a><a id="Tc_roU_T_CruU-FsVskDjsOtw_20_0"></a><a id="Tc_lv7MmfkWCUSsXMUz7hYemQ_21_0"></a><a id="Tc_YVVnWhYPjU2tGNWiiAOlYA_22_1"></a><a id="_67404fed_937a_4dbe_94b1_d036a205cd18"></a><a id="Tc_qGUuzEg1_kCNkrjnKM1Yaw_1_2"></a><a id="Tc_cvGm1uF2qk-m5R6_-lF6FQ_1_4"></a><a id="Tc_X42Gjyh_m0e_92ojErDhKw_1_7"></a><a id="Tc_j4-b-n6iU06meiT3CxB6yw_2_0"></a><a id="Tc_vlIdFdcw5EKiDwCJ4zKUcA_2_2"></a><a id="Tc_g8HQ0awDIk-W2Kz9Ll90Ag_2_4"></a><a id="Tc_QpxFmdnU6Ui636JKjZxRlw_2_6"></a><a id="Tc_g8bBE0BrLUSU_YJYGhfgRQ_3_0"></a><a id="Tc_4Yaqc8SRT0efUfNecPDmZg_3_2"></a><a id="Tc_dbCVVZzmHkWkHWhSv2Ppbw_3_4"></a><a id="Tc_Ja7XxnxLlkCdb42tBAYTrA_4_0"></a><a id="Tc__fZFLXndkk2MCchkS5h_aA_4_2"></a><a id="Tc_s1ZLRsBYYkCy_l6cehcmbw_5_0"></a><a id="Tc_7cGdBboKhEuNTfZPNFHhVw_5_6"></a><ix:continuation id="Tb_ZM-wcPJ_uUik3Ca6gvjJTg_cont1" continuedAt="Tb_ZM-wcPJ_uUik3Ca6gvjJTg_cont2"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">acquisition, Summit is a wholly owned subsidiary of the Company reported in our mechanical segment. Revenue attributable to Summit was $<ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_2_1_2024_To_9_30_2024_us-gaap_BusinessAcquisitionAxis_fix_SummitIndustrialConstructionLlcMember_XMYoI1-JrkOXifMp6DHBsg" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:Revenues" scale="6" id="Narr_vLigMVV9MEePF-lwW74JEw">256.2</ix:nonFraction> million for the eight months from the acquisition date. </p><ix:nonNumeric contextRef="Duration_1_1_2024_To_9_30_2024_us-gaap_BusinessAcquisitionAxis_fix_SummitIndustrialConstructionLlcMember_CxZRbwSqy0yVRiIvUOAx4A" name="us-gaap:ScheduleOfBusinessAcquisitionsByAcquisitionTextBlock" id="Tb_RX0Kd1rR9UqQ4vLZDHC-Rg" escape="true"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="display:inline-block;text-indent:0pt;width:36pt;"></span>The following summarizes the acquisition date fair value of consideration transferred and the acquisition date fair value of the identifiable assets acquired and liabilities assumed, including an amount for goodwill (in thousands):</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="display:inline-block;text-indent:0pt;width:36pt;"></span><span style="visibility:hidden;">&#8203;</span></p><div style="padding-left:40.5pt;"><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:83.34%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:81.03%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.29%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:16.66%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:81.03%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Consideration transferred:</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:16.66%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:81.03%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="white-space:pre-wrap;">  Cash paid at closing</span></p></td><td style="vertical-align:middle;width:2.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:16.66%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_2_1_2024_To_2_1_2024_us-gaap_BusinessAcquisitionAxis_fix_SummitIndustrialConstructionLlcMember_S5n0ZNTvS0KLqs4fzBJX1A" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:PaymentsToAcquireBusinessesGross" scale="3" id="Tc_NS6ERNVXB02jMDYyDYcWTA_2_2">267,500</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:81.03%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="white-space:pre-wrap;">  Working capital adjustment </span></p></td><td style="vertical-align:middle;width:2.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="color:#ff0000;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:16.66%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_2_1_2024_To_2_1_2024_us-gaap_BusinessAcquisitionAxis_fix_SummitIndustrialConstructionLlcMember_S5n0ZNTvS0KLqs4fzBJX1A" decimals="-3" format="ixt:numdotdecimal" name="fix:BusinessCombinationConsiderationTransferredWorkingCapitalAdjustment" scale="3" id="Tc_fyHhDg-poU2WmQPTRudetw_3_2">14,602</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:81.03%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="white-space:pre-wrap;">  Notes issued to former owners</span></p></td><td style="vertical-align:middle;width:2.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:16.66%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_2_1_2024_To_2_1_2024_us-gaap_BusinessAcquisitionAxis_fix_SummitIndustrialConstructionLlcMember_S5n0ZNTvS0KLqs4fzBJX1A" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationConsiderationTransferredLiabilitiesIncurred" scale="3" id="Tc_LVnBv76sn0OiLyeDrLFI5w_4_2">35,000</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:81.03%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="white-space:pre-wrap;">  Estimated fair value of contingent earn-out payments</span></p></td><td style="vertical-align:middle;width:2.29%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:16.66%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="As_Of_2_1_2024_us-gaap_BusinessAcquisitionAxis_fix_SummitIndustrialConstructionLlcMember_4nZLiHoQek-94UQ4yBtSSQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationContingentConsiderationLiability" scale="3" id="Tc_2-vYmZloYEGI96mOt1f0UA_5_2">42,732</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:81.03%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:middle;width:2.29%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:16.66%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="As_Of_2_1_2024_us-gaap_BusinessAcquisitionAxis_fix_SummitIndustrialConstructionLlcMember_4nZLiHoQek-94UQ4yBtSSQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet" scale="3" id="Tc_yzVzyDlK8U-Isbv-0YS6JQ_6_2">359,834</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:81.03%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Recognized amounts of identifiable assets acquired and liabilities assumed:</p></td><td style="vertical-align:middle;width:2.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:16.66%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:81.03%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="white-space:pre-wrap;">  Cash and cash equivalents</span></p></td><td style="vertical-align:middle;width:2.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:16.66%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="As_Of_2_1_2024_us-gaap_BusinessAcquisitionAxis_fix_SummitIndustrialConstructionLlcMember_4nZLiHoQek-94UQ4yBtSSQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents" scale="3" id="Tc_XVJ3mzJMjkyT4oR1GlUPXg_8_2">171,027</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:81.03%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="white-space:pre-wrap;">  Billed and unbilled accounts receivable</span></p></td><td style="vertical-align:middle;width:2.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:16.66%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="As_Of_2_1_2024_us-gaap_BusinessAcquisitionAxis_fix_SummitIndustrialConstructionLlcMember_4nZLiHoQek-94UQ4yBtSSQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables" scale="3" id="Tc_OovEUzhBvkOG7Q5LxMS0-w_9_2">59,846</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:81.03%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="white-space:pre-wrap;">  Prepaid expenses and other</span></p></td><td style="vertical-align:middle;width:2.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:16.66%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="As_Of_2_1_2024_us-gaap_BusinessAcquisitionAxis_fix_SummitIndustrialConstructionLlcMember_4nZLiHoQek-94UQ4yBtSSQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsPrepaidExpenseAndOtherAssets" scale="3" id="Tc_9LUJ3KCg5E6RrPlejDaVnA_10_2">1,476</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:81.03%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="white-space:pre-wrap;">  Cost and estimated earnings in excess of billings</span></p></td><td style="vertical-align:middle;width:2.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:16.66%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="As_Of_2_1_2024_us-gaap_BusinessAcquisitionAxis_fix_SummitIndustrialConstructionLlcMember_4nZLiHoQek-94UQ4yBtSSQ" decimals="-3" format="ixt:numdotdecimal" name="fix:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsCostsInExcessOfBillings" scale="3" id="Tc_5dnJ8FjtXEac-g2-M8ZUUw_11_2">578</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:81.03%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="white-space:pre-wrap;">  Property and equipment</span></p></td><td style="vertical-align:middle;width:2.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:16.66%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="As_Of_2_1_2024_us-gaap_BusinessAcquisitionAxis_fix_SummitIndustrialConstructionLlcMember_4nZLiHoQek-94UQ4yBtSSQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment" scale="3" id="Tc_ejHmGYyHbkGMrBbRE59-Ug_12_2">2,528</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:81.03%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="white-space:pre-wrap;">  Lease right-of-use asset</span></p></td><td style="vertical-align:middle;width:2.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:16.66%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="As_Of_2_1_2024_us-gaap_BusinessAcquisitionAxis_fix_SummitIndustrialConstructionLlcMember_4nZLiHoQek-94UQ4yBtSSQ" decimals="-3" format="ixt:numdotdecimal" name="fix:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseRightOfUseAssets" scale="3" id="Tc_x65fV-iNPUaZAMSbjBJs5Q_13_2">2,364</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:81.03%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="white-space:pre-wrap;">  Goodwill</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:16.66%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="As_Of_2_1_2024_us-gaap_BusinessAcquisitionAxis_fix_SummitIndustrialConstructionLlcMember_4nZLiHoQek-94UQ4yBtSSQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:Goodwill" scale="3" id="Tc_KR2ZToa_vkmNl2aBAccAlw_14_2">155,345</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:81.03%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="white-space:pre-wrap;">  Identifiable intangible assets</span></p></td><td style="vertical-align:middle;width:2.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:16.66%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="As_Of_2_1_2024_us-gaap_BusinessAcquisitionAxis_fix_SummitIndustrialConstructionLlcMember_4nZLiHoQek-94UQ4yBtSSQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles" scale="3" id="Tc_XanSg2-vmEOH6YGlv57BEw_15_2">170,100</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:81.03%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="white-space:pre-wrap;">  Other noncurrent assets</span></p></td><td style="vertical-align:middle;width:2.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:16.66%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="As_Of_2_1_2024_us-gaap_BusinessAcquisitionAxis_fix_SummitIndustrialConstructionLlcMember_4nZLiHoQek-94UQ4yBtSSQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOtherNoncurrentAssets" scale="3" id="Tc_Q4IhyN3Y6EmXNJky6MQI2A_16_2">136</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:81.03%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="white-space:pre-wrap;">  Accounts payable</span></p></td><td style="vertical-align:middle;width:2.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:16.66%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="As_Of_2_1_2024_us-gaap_BusinessAcquisitionAxis_fix_SummitIndustrialConstructionLlcMember_4nZLiHoQek-94UQ4yBtSSQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable" scale="3" id="Tc_s0xnyP_cqUqJmvgZ-i3b8w_17_2">15,130</ix:nonFraction>)</p></td></tr><tr><td style="vertical-align:bottom;width:81.03%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="white-space:pre-wrap;">  Billings in excess of costs and estimated earnings and deferred revenue</span></p></td><td style="vertical-align:middle;width:2.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:16.66%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="As_Of_2_1_2024_us-gaap_BusinessAcquisitionAxis_fix_SummitIndustrialConstructionLlcMember_4nZLiHoQek-94UQ4yBtSSQ" decimals="-3" format="ixt:numdotdecimal" name="fix:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesBillingsInExcessOfCostsAndEstimatedEarnings" scale="3" id="Tc_jz17iRohw0KbJSprv_8egw_18_2">179,895</ix:nonFraction>)</p></td></tr><tr><td style="vertical-align:bottom;width:81.03%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="white-space:pre-wrap;">  Current operating lease liabilities</span></p></td><td style="vertical-align:middle;width:2.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:16.66%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="As_Of_2_1_2024_us-gaap_BusinessAcquisitionAxis_fix_SummitIndustrialConstructionLlcMember_4nZLiHoQek-94UQ4yBtSSQ" decimals="-3" format="ixt:numdotdecimal" name="fix:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesOperatingLeaseLiabilities" scale="3" id="Tc_6s0MeSLHrkG9jO1hKGU_6Q_19_2">1,495</ix:nonFraction>)</p></td></tr><tr><td style="vertical-align:bottom;width:81.03%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="white-space:pre-wrap;">  Accrued expenses and other current liabilities</span></p></td><td style="vertical-align:middle;width:2.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:16.66%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="As_Of_2_1_2024_us-gaap_BusinessAcquisitionAxis_fix_SummitIndustrialConstructionLlcMember_4nZLiHoQek-94UQ4yBtSSQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesOther" scale="3" id="Tc_8mWA4VhziUGILNqZrLmo-Q_20_2">6,293</ix:nonFraction>)</p></td></tr><tr><td style="vertical-align:bottom;width:81.03%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="white-space:pre-wrap;">  Long-term operating lease liabilities</span></p></td><td style="vertical-align:middle;width:2.29%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:16.66%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="As_Of_2_1_2024_us-gaap_BusinessAcquisitionAxis_fix_SummitIndustrialConstructionLlcMember_4nZLiHoQek-94UQ4yBtSSQ" decimals="-3" format="ixt:numdotdecimal" name="fix:BusinessCombinationRecognizedIdentifiableAssetAcquiredAndLiabilityAssumedOperatingLeaseObligation" scale="3" id="Tc_hHEIKCdn_EG8DQ-yC_lvuQ_21_2">753</ix:nonFraction>)</p></td></tr><tr><td style="vertical-align:bottom;width:81.03%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:middle;width:2.29%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:16.66%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="As_Of_2_1_2024_us-gaap_BusinessAcquisitionAxis_fix_SummitIndustrialConstructionLlcMember_4nZLiHoQek-94UQ4yBtSSQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet" scale="3" id="Tc_3akKd66vFEu4GRPwZt1H8A_22_2">359,834</ix:nonFraction></p></td></tr></table></div></ix:nonNumeric><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="display:inline-block;text-indent:0pt;width:36pt;"></span><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="display:inline-block;text-indent:0pt;width:36pt;"></span>The allocation of the purchase price to the assets acquired and liabilities assumed is preliminary and, therefore, subject to change pending the completion of the final valuation of intangible assets and accrued liabilities. Goodwill represents the future economic benefits arising from other assets acquired that cannot be individually identified and separately recognized. The goodwill recognized as a result of the Summit acquisition is deductible for tax purposes.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="white-space:pre-wrap;">In estimating the fair value of the acquired intangible assets, we utilized the valuation methodology determined to be the most appropriate for the individual intangible asset. In order to estimate the fair value of the backlog and customer relationships, we utilized an excess earnings methodology, which consisted of the projected cash flows attributable to these assets discounted to present value using a risk-adjusted discount rate that represented the required rate of return. The trade name value was determined based on the relief-from-royalty method, which applies a royalty rate to the revenue stream attributable to this asset, and the resulting royalty payment is tax effected and discounted to present value. Some of the more significant estimates and assumptions inherent in determining the fair value of the identifiable intangible assets are associated with forecasting cash flows and profitability, which represent Level 3 inputs.  The primary assumptions used were generally based upon the present value of anticipated cash flows discounted at rates ranging from </span><ix:nonFraction unitRef="Unit_Standard_pure_0GIr2wv4rk-T38a8Lz0A5w" contextRef="Duration_2_1_2024_To_2_1_2024_srt_RangeAxis_srt_MinimumMember_us-gaap_BusinessAcquisitionAxis_fix_SummitIndustrialConstructionLlcMember_us-gaap_MeasurementInputTypeAxis_us-gaap_MeasurementInputInceptionDiscountRateMember_jsSEzNLlEE-Ex4s5gpzSkA" decimals="3" format="ixt:numdotdecimal" name="fix:CashFlowDiscountRate" scale="-2" id="Narr_wS5vEb48nkC5AWBQl8ehKA">18.5</ix:nonFraction>% to <ix:nonFraction unitRef="Unit_Standard_pure_0GIr2wv4rk-T38a8Lz0A5w" contextRef="Duration_2_1_2024_To_2_1_2024_srt_RangeAxis_srt_MaximumMember_us-gaap_BusinessAcquisitionAxis_fix_SummitIndustrialConstructionLlcMember_us-gaap_MeasurementInputTypeAxis_us-gaap_MeasurementInputInceptionDiscountRateMember_9jhFskDynU-Bp3RZFmcmmg" decimals="3" format="ixt:numdotdecimal" name="fix:CashFlowDiscountRate" scale="-2" id="Narr_WosO_H6GkkqPDlOJDk0eUA">20.5</ix:nonFraction>%. Estimated years of projected earnings generally follow the range of estimated remaining useful lives for each intangible asset class. </p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><ix:nonNumeric contextRef="Duration_1_1_2024_To_9_30_2024_us-gaap_BusinessAcquisitionAxis_fix_SummitIndustrialConstructionLlcMember_CxZRbwSqy0yVRiIvUOAx4A" name="us-gaap:ScheduleOfFiniteLivedIntangibleAssetsAcquiredAsPartOfBusinessCombinationTextBlock" id="Tb_91y1usHue0eaIOgIDAjLAQ" escape="true"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">The acquired intangible assets include the following (dollars in thousands):</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><div style="padding-left:40.5pt;"><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:84.17%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:48.39%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.19%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;width:20.3%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;width:12.51%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;width:1.72%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;width:1.72%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;width:11.41%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:48.39%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.19%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;width:20.3%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Valuation Method</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;width:12.51%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Estimated Useful Life</b></p></td><td style="vertical-align:bottom;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;width:1.72%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;width:11.41%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Estimated Fair Value</b></p></td></tr><tr><td style="vertical-align:bottom;width:48.39%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Backlog</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.19%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;width:20.3%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;">Excess earnings</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.51%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><ix:nonNumeric contextRef="Duration_2_1_2024_To_2_1_2024_us-gaap_BusinessAcquisitionAxis_fix_SummitIndustrialConstructionLlcMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_OrderOrProductionBacklogMember_XY4c7Vh_f0Wib7AmjNTmVQ" format="ixt-sec:duryear" name="us-gaap:AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife" id="Narr_CvvlZubpTEuTZSfoOKaAAQ">1.8</ix:nonNumeric> years</p></td><td style="vertical-align:bottom;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.41%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="As_Of_2_1_2024_us-gaap_BusinessAcquisitionAxis_fix_SummitIndustrialConstructionLlcMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_OrderOrProductionBacklogMember_DG1vcGdP1E-NsKJirHxzmA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles" scale="3" id="Tc_Ku1xpfXTikKLM_Yte9-AoQ_2_7">35,800</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:48.39%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Trade Name</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.19%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;width:20.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;">Relief-from-royalty</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.51%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><ix:nonNumeric contextRef="Duration_2_1_2024_To_2_1_2024_us-gaap_BusinessAcquisitionAxis_fix_SummitIndustrialConstructionLlcMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TradeNamesMember_lgAhxWYVXEu_Bz9p8cz9pg" format="ixt-sec:duryear" name="us-gaap:AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife" id="Narr_qZZZElEjh0utChlMiMtC-g">22.9</ix:nonNumeric> years</p></td><td style="vertical-align:bottom;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="As_Of_2_1_2024_us-gaap_BusinessAcquisitionAxis_fix_SummitIndustrialConstructionLlcMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TradeNamesMember_ZEDGijrvHEGoqpZCVa3O6Q" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles" scale="3" id="Tc_En3bwXIefEuVWfjQYg1nZQ_3_7">11,300</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:48.39%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Customer Relationships</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.19%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;width:20.3%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;">Excess earnings</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.51%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><ix:nonNumeric contextRef="Duration_2_1_2024_To_2_1_2024_us-gaap_BusinessAcquisitionAxis_fix_SummitIndustrialConstructionLlcMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_SR-BbGaHQU6crVtFm4Hs3A" format="ixt-sec:durwordsen" name="us-gaap:AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife" id="Tc_ITrN-MamS0iqKzOk-i6XYA_4_4">10 years</ix:nonNumeric></p></td><td style="vertical-align:bottom;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;width:1.72%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.41%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="As_Of_2_1_2024_us-gaap_BusinessAcquisitionAxis_fix_SummitIndustrialConstructionLlcMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_E_44aqF1GEeC-off1i3zFQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles" scale="3" id="Tc_sLVGCO2uV02glN6yElP0_w_4_7">123,000</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:48.39%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Total</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.19%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;width:20.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;width:12.51%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;width:1.72%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.41%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="As_Of_2_1_2024_us-gaap_BusinessAcquisitionAxis_fix_SummitIndustrialConstructionLlcMember_4nZLiHoQek-94UQ4yBtSSQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles" scale="3" id="Tc_Spe6dL92YU6KoogROKSj_Q_5_7">170,100</ix:nonFraction></p></td></tr></table></div></ix:nonNumeric><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></ix:continuation></div></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:12pt 0pt 0pt 0pt;">14</p></div></div>
<div style="background-color:#000000;clear:both;height:2pt;page-break-after:always;width:79.41%;border:0;margin:30pt 10.29% 30pt 10.29%;"></div><div style="max-width:100%;padding-left:10.29%;padding-right:10.29%;position:relative;"><div style="margin-top:21.6pt;min-height:41.4pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 30pt 0pt;"><a href="#Toc"><span style="font-style:normal;font-weight:normal;">Table of Contents</span></a></p></div><div style="clear:both;margin-left:-10.0pt;margin-right:-10.0pt;max-width:100%;position:relative;width:calc(100% + 20.0pt);"><div style="padding-left:10pt;padding-right:10pt;position:relative;width:100%;"><a id="_61d651c8_a3f9_4c11_96e3_ac51c9413c3c"></a><a id="Tc_9Tm5DcpLkUS8V9xu0ziluA_1_0"></a><a id="Tc_VkR-unq54EGpf8cUNclcng_2_0"></a><a id="Tc_RNOdGXVMB0KW2tgsaMJpDQ_2_1"></a><a id="Tc_ddP-gXxjyUqxdz5Obz88XA_3_0"></a><a id="Tc_RuD62SX9p0yLjBIF9trs9A_4_0"></a><a id="Tc_ywOjSzvPsEyYP_XC-qusPQ_5_0"></a><a id="Tc_NGrpHo3RU0iPWzU0t9ilyQ_6_1"></a><a id="Tc_T47_g8iPa0a8DdAsfoiMxg_7_0"></a><a id="Tc_X558GREzgUOQF7tzlHzEUQ_8_0"></a><a id="Tc_JY9FhUlGnUG6i1Qb6dXvTg_8_1"></a><a id="Tc_U1PDRaJHTkGQfYVSJXEYbw_9_0"></a><a id="Tc_SmEz78fuGEuLzsXK7BqNww_10_0"></a><a id="Tc_XF7iWi-cv0-PMPlwToSp7w_11_0"></a><a id="Tc_J7Q2GRa4eUmqLsF9kLJKkg_12_0"></a><a id="Tc_86nSu5VEaEGgtvXuEp4U8A_13_0"></a><a id="Tc_yzKvL-96V0C74onohNfKiA_14_0"></a><a id="Tc_iXwOW8PrqEOcv1V1vpWEJQ_15_0"></a><a id="Tc_Gs5bXE0gcE2_4YBFQfKI-Q_16_0"></a><a id="Tc_ofpAfcQrrkm2Qlq1ttKAtQ_17_0"></a><a id="Tc_16u7XsNA-kqJsVI_3bcZDg_18_0"></a><a id="Tc_xcvTYfLqM0ei8IvrbUp73w_19_0"></a><a id="Tc_BPeWMMiKRUOlyz4RjnpJ9g_20_0"></a><a id="Tc_WSxPcyS-dEWTX4f6WjQjWg_21_0"></a><a id="Tc_dCtaOlJuwkOy4vnHF9WKSQ_22_0"></a><a id="Tc_M_i6IAPT10CV9gRNmfWB5A_23_0"></a><a id="Tc_JK5-LjbyLkiu7W34PI6Zug_24_1"></a><ix:continuation id="Tb_ZM-wcPJ_uUik3Ca6gvjJTg_cont2" continuedAt="Tb_ZM-wcPJ_uUik3Ca6gvjJTg_cont3"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">The contingent earn-out obligation is associated with the achievement of <ix:nonFraction unitRef="Unit_Standard_Milestone_OLalA_yQ5Um-7AHW7XVHqw" contextRef="As_Of_2_1_2024_us-gaap_BusinessAcquisitionAxis_fix_SummitIndustrialConstructionLlcMember_us-gaap_FairValueByLiabilityClassAxis_fix_ContingentConsiderationObligationsMember_6iSMnKlf-ESVMUiNLAe0RQ" decimals="INF" format="ixt-sec:numwordsen" name="fix:BusinessCombinationNumberOfEarningsMilestones" scale="0" id="Narr_q6QElw53uU-h0CD1wWopPQ">four</ix:nonFraction> earnings milestones over a <span style="-sec-ix-hidden:Hidden_D6Z90bw5WUGuPqOyL_t0uw;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">47-month</span></span> period, and the range of each estimated milestone payment is $<ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="As_Of_2_1_2024_us-gaap_BusinessAcquisitionAxis_fix_SummitIndustrialConstructionLlcMember_us-gaap_FairValueByLiabilityClassAxis_fix_ContingentConsiderationObligationsMember_6iSMnKlf-ESVMUiNLAe0RQ" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueLow" scale="6" id="Narr_UQwf0WaG3U-Y0ljUgvjShw">2.6</ix:nonFraction> million to $<ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="As_Of_2_1_2024_us-gaap_BusinessAcquisitionAxis_fix_SummitIndustrialConstructionLlcMember_us-gaap_FairValueByLiabilityClassAxis_fix_ContingentConsiderationObligationsMember_6iSMnKlf-ESVMUiNLAe0RQ" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueHigh" scale="6" id="Narr_XPCkf2ZHrU2Zb3uBojZJng">20.5</ix:nonFraction> million. We determined the initial fair value of the contingent earn-out obligation based on the Monte Carlo Simulation method, which represents a Level 3 measurement.&#160;Cash flows were discounted using discount rates ranging from <ix:nonFraction unitRef="Unit_Standard_pure_0GIr2wv4rk-T38a8Lz0A5w" contextRef="Duration_2_1_2024_To_2_1_2024_srt_RangeAxis_srt_MinimumMember_us-gaap_BusinessAcquisitionAxis_fix_SummitIndustrialConstructionLlcMember_us-gaap_FairValueByLiabilityClassAxis_fix_ContingentConsiderationObligationsMember_us-gaap_MeasurementInputTypeAxis_us-gaap_MeasurementInputInceptionDiscountRateMember_omOpY3LNbk21p0z2y9Cidw" decimals="3" format="ixt:numdotdecimal" name="fix:CashFlowDiscountRate" scale="-2" id="Narr_Z2UZvqZYt0mOkGOc1gvYiQ">18.2</ix:nonFraction>% to <ix:nonFraction unitRef="Unit_Standard_pure_0GIr2wv4rk-T38a8Lz0A5w" contextRef="Duration_2_1_2024_To_2_1_2024_srt_RangeAxis_srt_MaximumMember_us-gaap_BusinessAcquisitionAxis_fix_SummitIndustrialConstructionLlcMember_us-gaap_FairValueByLiabilityClassAxis_fix_ContingentConsiderationObligationsMember_us-gaap_MeasurementInputTypeAxis_us-gaap_MeasurementInputInceptionDiscountRateMember_dhJ80I6zTE-y2GJjn5aLWQ" decimals="3" format="ixt:numdotdecimal" name="fix:CashFlowDiscountRate" scale="-2" id="Narr_rYftAAxZ7EisyYyBlvln2A">19.5</ix:nonFraction>%, which we believe is appropriate and representative of a market participant assumption.&#160;Subsequent to the acquisition date, the contingent earn-out obligation is remeasured at fair value each reporting period.&#160;Changes in the estimated fair value of the contingent payments subsequent to the acquisition date are recognized immediately in earnings.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="display:inline-block;text-indent:0pt;width:36pt;"></span><span style="font-style:italic;font-weight:bold;">J &amp; S Mechanical Contractors, Inc. Acquisition</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="display:inline-block;text-indent:0pt;width:36pt;"></span>On February 1, 2024, we acquired all of the issued and outstanding shares of capital stock of J &amp; S Mechanical Contractors, Inc. (&#8220;J&amp;S&#8221;). J&amp;S is headquartered in West Jordan, Utah, and provides mechanical construction services to commercial and industrial sectors, specializing in data center HVAC systems and hospital medical gas systems. As a result of the acquisition, J&amp;S is a wholly owned subsidiary of the Company reported in our mechanical segment. Revenue attributable to J&amp;S was $<ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_2_1_2024_To_9_30_2024_us-gaap_BusinessAcquisitionAxis_fix_JSMechanicalContractorsIncMember_iwZyJ5KkDkS-Op4hGo6UaQ" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:Revenues" scale="6" id="Narr_xaztpRLRTEmYKEeIfVVWEA">106.3</ix:nonFraction> million for the eight months from the acquisition date. </p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="display:inline-block;text-indent:0pt;width:36pt;"></span>The following summarizes the acquisition date fair value of consideration transferred and the acquisition date fair value of the identifiable assets acquired and liabilities assumed, including an amount for goodwill (in thousands):</p><ix:nonNumeric contextRef="Duration_1_1_2024_To_9_30_2024_us-gaap_BusinessAcquisitionAxis_fix_JSMechanicalContractorsIncMember_4Tqmm51vwU24UcfZGJNKoA" name="us-gaap:ScheduleOfBusinessAcquisitionsByAcquisitionTextBlock" id="Tb_qtEzinAPzECklzlH5NN8BQ" escape="true"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="display:inline-block;text-indent:0pt;width:36pt;"></span><span style="visibility:hidden;">&#8203;</span></p><div style="padding-left:40.5pt;"><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:85.59%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:82.58%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:3.43%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:13.97%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:82.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Consideration transferred:</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:82.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="white-space:pre-wrap;">  Cash paid at closing</span></p></td><td style="vertical-align:middle;width:3.43%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_2_1_2024_To_2_1_2024_us-gaap_BusinessAcquisitionAxis_fix_JSMechanicalContractorsIncMember_vbpAmjpzQ0i17zj1l6LoZQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:PaymentsToAcquireBusinessesGross" scale="3" id="Tc_OSIetporbUOEmez-Q3idNQ_2_2">100,000</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:82.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="white-space:pre-wrap;">  Working capital adjustment </span></p></td><td style="vertical-align:middle;width:3.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="color:#ff0000;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_2_1_2024_To_2_1_2024_us-gaap_BusinessAcquisitionAxis_fix_JSMechanicalContractorsIncMember_vbpAmjpzQ0i17zj1l6LoZQ" decimals="-3" format="ixt:numdotdecimal" name="fix:BusinessCombinationConsiderationTransferredWorkingCapitalAdjustment" scale="3" id="Tc_9qaPri5CHEyFZK5yHTwqsg_3_2">1,587</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:82.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="white-space:pre-wrap;">  Notes issued to former owners</span></p></td><td style="vertical-align:middle;width:3.43%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_2_1_2024_To_2_1_2024_us-gaap_BusinessAcquisitionAxis_fix_JSMechanicalContractorsIncMember_vbpAmjpzQ0i17zj1l6LoZQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationConsiderationTransferredLiabilitiesIncurred" scale="3" id="Tc_JQzjLayWe0uIPRfY19cEqA_4_2">10,000</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:82.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="white-space:pre-wrap;">  Estimated fair value of contingent earn-out payments</span></p></td><td style="vertical-align:middle;width:3.43%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.97%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="As_Of_2_1_2024_us-gaap_BusinessAcquisitionAxis_fix_JSMechanicalContractorsIncMember_-UFNMak94EiLKWp3uwuxKA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationContingentConsiderationLiability" scale="3" id="Tc_M3JodK7XzESdMdkofahfDg_5_2">9,052</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:82.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:middle;width:3.43%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.97%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="As_Of_2_1_2024_us-gaap_BusinessAcquisitionAxis_fix_JSMechanicalContractorsIncMember_-UFNMak94EiLKWp3uwuxKA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet" scale="3" id="Tc_n4I0Hs8cbEes8lx44Dqt9Q_6_2">120,639</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:82.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Recognized amounts of identifiable assets acquired and liabilities assumed:</p></td><td style="vertical-align:middle;width:3.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:82.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="white-space:pre-wrap;">  Cash and cash equivalents</span></p></td><td style="vertical-align:middle;width:3.43%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="As_Of_2_1_2024_us-gaap_BusinessAcquisitionAxis_fix_JSMechanicalContractorsIncMember_-UFNMak94EiLKWp3uwuxKA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents" scale="3" id="Tc_ohcYrKdro0KuiByCCVm-3Q_8_2">14,802</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:82.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="white-space:pre-wrap;">  Billed and unbilled accounts receivable</span></p></td><td style="vertical-align:middle;width:3.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="As_Of_2_1_2024_us-gaap_BusinessAcquisitionAxis_fix_JSMechanicalContractorsIncMember_-UFNMak94EiLKWp3uwuxKA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables" scale="3" id="Tc_yrLdlbmPK0uAw3xwpBAv8w_9_2">38,411</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:82.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="white-space:pre-wrap;">  Inventory</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.43%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:11pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="As_Of_2_1_2024_us-gaap_BusinessAcquisitionAxis_fix_JSMechanicalContractorsIncMember_-UFNMak94EiLKWp3uwuxKA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedInventory" scale="3" id="Tc_9dYcEAHZRUqt-P3NZ6wyxA_10_2">230</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:82.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="white-space:pre-wrap;">  Prepaid expenses and other</span></p></td><td style="vertical-align:middle;width:3.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="As_Of_2_1_2024_us-gaap_BusinessAcquisitionAxis_fix_JSMechanicalContractorsIncMember_-UFNMak94EiLKWp3uwuxKA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsPrepaidExpenseAndOtherAssets" scale="3" id="Tc_LubhmX6kl0W1hKXTusNm8g_11_2">393</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:82.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="white-space:pre-wrap;">  Costs and estimated earnings in excess of billings</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.43%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:11pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="As_Of_2_1_2024_us-gaap_BusinessAcquisitionAxis_fix_JSMechanicalContractorsIncMember_-UFNMak94EiLKWp3uwuxKA" decimals="-3" format="ixt:numdotdecimal" name="fix:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsCostsInExcessOfBillings" scale="3" id="Tc_mgMg9MObYEuc8iSW5ccDUA_12_2">728</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:82.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="white-space:pre-wrap;">  Property and equipment</span></p></td><td style="vertical-align:middle;width:3.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="As_Of_2_1_2024_us-gaap_BusinessAcquisitionAxis_fix_JSMechanicalContractorsIncMember_-UFNMak94EiLKWp3uwuxKA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment" scale="3" id="Tc_phr65IbExUGD-guWekEZuQ_13_2">2,674</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:82.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="white-space:pre-wrap;">  Lease right-of-use asset</span></p></td><td style="vertical-align:middle;width:3.43%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="As_Of_2_1_2024_us-gaap_BusinessAcquisitionAxis_fix_JSMechanicalContractorsIncMember_-UFNMak94EiLKWp3uwuxKA" decimals="-3" format="ixt:numdotdecimal" name="fix:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseRightOfUseAssets" scale="3" id="Tc_W7D-BVRmUkqk9WYegcrkVA_14_2">4,552</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:82.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="white-space:pre-wrap;">  Goodwill</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="As_Of_2_1_2024_us-gaap_BusinessAcquisitionAxis_fix_JSMechanicalContractorsIncMember_-UFNMak94EiLKWp3uwuxKA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:Goodwill" scale="3" id="Tc_GWL2GMEljk-I8rLHaQTtFg_15_2">40,706</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:82.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="white-space:pre-wrap;">  Identifiable intangible assets</span></p></td><td style="vertical-align:middle;width:3.43%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="As_Of_2_1_2024_us-gaap_BusinessAcquisitionAxis_fix_JSMechanicalContractorsIncMember_-UFNMak94EiLKWp3uwuxKA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles" scale="3" id="Tc_SplQGLGM20mI1FMeZKtdrg_16_2">63,300</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:82.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="white-space:pre-wrap;">  Other noncurrent assets</span></p></td><td style="vertical-align:middle;width:3.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="As_Of_2_1_2024_us-gaap_BusinessAcquisitionAxis_fix_JSMechanicalContractorsIncMember_-UFNMak94EiLKWp3uwuxKA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOtherNoncurrentAssets" scale="3" id="Tc_PJjyyX7rw0uswXQVuN2uzQ_17_2">10</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:82.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="white-space:pre-wrap;">  Accounts payable</span></p></td><td style="vertical-align:middle;width:3.43%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="As_Of_2_1_2024_us-gaap_BusinessAcquisitionAxis_fix_JSMechanicalContractorsIncMember_-UFNMak94EiLKWp3uwuxKA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable" scale="3" id="Tc_XNyulKgt3UOW9Apj7gwtyA_18_2">20,649</ix:nonFraction>)</p></td></tr><tr><td style="vertical-align:bottom;width:82.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="white-space:pre-wrap;">  Billings in excess of costs and estimated earnings and deferred revenue</span></p></td><td style="vertical-align:middle;width:3.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="As_Of_2_1_2024_us-gaap_BusinessAcquisitionAxis_fix_JSMechanicalContractorsIncMember_-UFNMak94EiLKWp3uwuxKA" decimals="-3" format="ixt:numdotdecimal" name="fix:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesBillingsInExcessOfCostsAndEstimatedEarnings" scale="3" id="Tc_A3vKTTlihkCDV5d42PQrig_19_2">19,188</ix:nonFraction>)</p></td></tr><tr><td style="vertical-align:bottom;width:82.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="white-space:pre-wrap;">  Current operating lease liabilities</span></p></td><td style="vertical-align:middle;width:3.43%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="As_Of_2_1_2024_us-gaap_BusinessAcquisitionAxis_fix_JSMechanicalContractorsIncMember_-UFNMak94EiLKWp3uwuxKA" decimals="-3" format="ixt:numdotdecimal" name="fix:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesOperatingLeaseLiabilities" scale="3" id="Tc_DhN-5vKfPUStH3dKH2wVxw_20_2">133</ix:nonFraction>)</p></td></tr><tr><td style="vertical-align:bottom;width:82.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="white-space:pre-wrap;">  Accrued expenses and other current liabilities</span></p></td><td style="vertical-align:middle;width:3.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="As_Of_2_1_2024_us-gaap_BusinessAcquisitionAxis_fix_JSMechanicalContractorsIncMember_-UFNMak94EiLKWp3uwuxKA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesOther" scale="3" id="Tc_bMK4MRdsOU2EBNgpoXmGmw_21_2">826</ix:nonFraction>)</p></td></tr><tr><td style="vertical-align:bottom;width:82.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="white-space:pre-wrap;">  Long-term debt</span></p></td><td style="vertical-align:middle;width:3.43%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="As_Of_2_1_2024_us-gaap_BusinessAcquisitionAxis_fix_JSMechanicalContractorsIncMember_-UFNMak94EiLKWp3uwuxKA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNoncurrentLiabilitiesLongTermDebt" scale="3" id="Tc_oXDMWkrItkuGu_Bn9m5gMg_22_2">59</ix:nonFraction>)</p></td></tr><tr><td style="vertical-align:bottom;width:82.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="white-space:pre-wrap;">  Long-term operating lease liabilities</span></p></td><td style="vertical-align:middle;width:3.43%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.97%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="As_Of_2_1_2024_us-gaap_BusinessAcquisitionAxis_fix_JSMechanicalContractorsIncMember_-UFNMak94EiLKWp3uwuxKA" decimals="-3" format="ixt:numdotdecimal" name="fix:BusinessCombinationRecognizedIdentifiableAssetAcquiredAndLiabilityAssumedOperatingLeaseObligation" scale="3" id="Tc_FlmP-TZqLkivf7uhVlXFIw_23_2">4,312</ix:nonFraction>)</p></td></tr><tr><td style="vertical-align:bottom;width:82.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:middle;width:3.43%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.97%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="As_Of_2_1_2024_us-gaap_BusinessAcquisitionAxis_fix_JSMechanicalContractorsIncMember_-UFNMak94EiLKWp3uwuxKA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet" scale="3" id="Tc_aX9NRUx0v0WSCos-O717qw_24_2">120,639</ix:nonFraction></p></td></tr></table></div><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></ix:nonNumeric><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="display:inline-block;text-indent:0pt;width:36pt;"></span>The allocation of the purchase price to the assets acquired and liabilities assumed is preliminary and, therefore, subject to change pending the completion of the final valuation of intangible assets and accrued liabilities. Goodwill represents the future economic benefits arising from other assets acquired that cannot be individually identified and separately recognized. The goodwill recognized as a result of the J&amp;S acquisition is deductible for tax purposes.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">In estimating the fair value of the acquired intangible assets, we utilized the valuation methodology determined to be the most appropriate for the individual intangible asset. In order to estimate the fair value of the backlog and customer relationships, we utilized an excess earnings methodology, which consisted of the projected cash flows attributable to these assets discounted to present value using a risk-adjusted discount rate that represented the required rate of return. The trade name value was determined based on the relief-from-royalty method, which applies a royalty </p></ix:continuation></div></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:12pt 0pt 0pt 0pt;">15</p></div></div>
<div style="background-color:#000000;clear:both;height:2pt;page-break-after:always;width:79.41%;border:0;margin:30pt 10.29% 30pt 10.29%;"></div><div style="max-width:100%;padding-left:10.29%;padding-right:10.29%;position:relative;"><div style="margin-top:21.6pt;min-height:41.4pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 30pt 0pt;"><a href="#Toc"><span style="font-style:normal;font-weight:normal;">Table of Contents</span></a></p></div><div style="clear:both;margin-left:-10.0pt;margin-right:-10.0pt;max-width:100%;position:relative;width:calc(100% + 20.0pt);"><div style="padding-left:10pt;padding-right:10pt;position:relative;width:100%;"><a id="_bdaca66c_38af_4ece_b2fc_a34236f67eae"></a><a id="Tc_6kxi1EXu0kKSFvcJ4hV2ug_1_4"></a><a id="Tc_wmtkjz2cnEG6pAl1LU9qZg_1_6"></a><a id="Tc_8KgoED4_5EypVBT3Nf7Sig_2_2"></a><a id="Tc_2d0LpjtbsESagRTi0UXGqg_2_4"></a><a id="Tc_H7iKCqazPkyiBqrGqC1RYw_2_6"></a><a id="Tc_I4oKfziS3EWvbrrnah7LJg_3_0"></a><a id="Tc_jrUOudtGhEyCcYJwDBsNTw_3_2"></a><a id="Tc_M9_pztdZ90uHOJllALJSfw_3_4"></a><a id="Tc_BYnv7tSWr0uREjMq3wSe3g_3_6"></a><a id="Tc_x2_jtaiDuE2rjeGUSJl6Aw_4_0"></a><a id="Tc_opja7L3MK0uv771fACF4Rw_4_2"></a><a id="Tc_UaszloWswUSKArFYgEhLVg_5_0"></a><a id="Tc_vAvny693fkeipFaCj862dQ_5_2"></a><a id="Tc_yKEh5bNrAkOaqZ1zlUJkBA_6_0"></a><a id="Tc_KjLv-x4zuE-5yfZsphnmPg_6_6"></a><ix:continuation id="Tb_ZM-wcPJ_uUik3Ca6gvjJTg_cont3" continuedAt="Tb_ZM-wcPJ_uUik3Ca6gvjJTg_cont4"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="white-space:pre-wrap;">rate to the revenue stream attributable to this asset, and the resulting royalty payment is tax effected and discounted to present value. Some of the more significant estimates and assumptions inherent in determining the fair value of the identifiable intangible assets are associated with forecasting cash flows and profitability, which represent Level 3 inputs.  The primary assumptions used were generally based upon the present value of anticipated cash flows discounted at rates ranging from </span><ix:nonFraction unitRef="Unit_Standard_pure_0GIr2wv4rk-T38a8Lz0A5w" contextRef="Duration_2_1_2024_To_2_1_2024_srt_RangeAxis_srt_MinimumMember_us-gaap_BusinessAcquisitionAxis_fix_JSMechanicalContractorsIncMember_us-gaap_MeasurementInputTypeAxis_us-gaap_MeasurementInputInceptionDiscountRateMember_E08FgkC7SU-_6ToMlCXhxQ" decimals="3" format="ixt:numdotdecimal" name="fix:CashFlowDiscountRate" scale="-2" id="Narr_EM94ZKfcs0iEYIRXz7Yj3w">15.5</ix:nonFraction>% to <ix:nonFraction unitRef="Unit_Standard_pure_0GIr2wv4rk-T38a8Lz0A5w" contextRef="Duration_2_1_2024_To_2_1_2024_srt_RangeAxis_srt_MaximumMember_us-gaap_BusinessAcquisitionAxis_fix_JSMechanicalContractorsIncMember_us-gaap_MeasurementInputTypeAxis_us-gaap_MeasurementInputInceptionDiscountRateMember_3_7veEW0vUGYAhsysIAMDg" decimals="3" format="ixt:numdotdecimal" name="fix:CashFlowDiscountRate" scale="-2" id="Narr_w0RXE48JWEmDc4C5WtxblA">17.0</ix:nonFraction>%. Estimated years of projected earnings generally follow the range of estimated remaining useful lives for each intangible asset class. </p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><ix:nonNumeric contextRef="Duration_1_1_2024_To_9_30_2024_us-gaap_BusinessAcquisitionAxis_fix_JSMechanicalContractorsIncMember_4Tqmm51vwU24UcfZGJNKoA" name="us-gaap:ScheduleOfFiniteLivedIntangibleAssetsAcquiredAsPartOfBusinessCombinationTextBlock" id="Tb_0_1VC9KemU6WPdyGSAyKmA" escape="true"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">The acquired intangible assets include the following (dollars in thousands):</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><div style="padding-left:40.5pt;"><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:85.17%;"><tr style="height:1pt;"><td style="vertical-align:bottom;white-space:nowrap;width:49.12%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.24%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:19.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.24%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:14.76%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.25%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.21%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:49.12%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:19.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.76%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Estimated</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.25%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Estimated</b></p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:49.12%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:19.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Valuation Method</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.76%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Useful Life</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.25%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.3%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Fair Value</b></p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:49.12%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Backlog</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:19.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;">Excess earnings</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.76%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><ix:nonNumeric contextRef="Duration_2_1_2024_To_2_1_2024_us-gaap_BusinessAcquisitionAxis_fix_JSMechanicalContractorsIncMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_OrderOrProductionBacklogMember_J4SGwOYkg0erGQ6tMtF4oQ" format="ixt-sec:duryear" name="us-gaap:AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife" id="Narr_jFBI57HLr0m_CMWfH0vpyw">1.8</ix:nonNumeric> years</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.25%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.21%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="As_Of_2_1_2024_us-gaap_BusinessAcquisitionAxis_fix_JSMechanicalContractorsIncMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_OrderOrProductionBacklogMember_e3s3Gydg70m4gr5DlLZ2jA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles" scale="3" id="Tc_3xDi78286UmkQMe53byJhg_3_7">12,900</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:49.12%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Trade Name</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:19.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;">Relief-from-royalty</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.76%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><ix:nonNumeric contextRef="Duration_2_1_2024_To_2_1_2024_us-gaap_BusinessAcquisitionAxis_fix_JSMechanicalContractorsIncMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TradeNamesMember_fM79lywvg0u8_5fg8WgnBg" format="ixt-sec:durwordsen" name="us-gaap:AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife" id="Tc_8aF9VGV3xUCrnm-FYetcJA_4_4">22 years</ix:nonNumeric></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.25%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.21%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="As_Of_2_1_2024_us-gaap_BusinessAcquisitionAxis_fix_JSMechanicalContractorsIncMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TradeNamesMember_UbdNcFSzgE6eQY8Lq0nsUQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles" scale="3" id="Tc_N7WpGUx3oka2bDOZ7UuWXQ_4_7">10,600</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:49.12%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Customer Relationships</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:19.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;">Excess earnings</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.76%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><ix:nonNumeric contextRef="Duration_2_1_2024_To_2_1_2024_us-gaap_BusinessAcquisitionAxis_fix_JSMechanicalContractorsIncMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_DCSiQ8QzcESU4zRgTrHB3A" format="ixt-sec:durwordsen" name="us-gaap:AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife" id="Tc_AVM904NjcUyO6ihYT44gQQ_5_4">9 years</ix:nonNumeric></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.25%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.21%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.08%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="As_Of_2_1_2024_us-gaap_BusinessAcquisitionAxis_fix_JSMechanicalContractorsIncMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_E5wMVmpO-EaMwtCFJaOzjg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles" scale="3" id="Tc_hLHAiHsk30ah3_e-Pb6Jsg_5_7">39,800</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:49.12%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Total</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:19.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.76%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.25%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.21%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.08%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="As_Of_2_1_2024_us-gaap_BusinessAcquisitionAxis_fix_JSMechanicalContractorsIncMember_-UFNMak94EiLKWp3uwuxKA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles" scale="3" id="Tc_2p3nO-0tBkib9ABwCqFgOw_6_7">63,300</ix:nonFraction></p></td></tr></table></div></ix:nonNumeric><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">The contingent earn-out obligation is associated with the achievement of <ix:nonFraction unitRef="Unit_Standard_Milestone_OLalA_yQ5Um-7AHW7XVHqw" contextRef="As_Of_2_1_2024_us-gaap_BusinessAcquisitionAxis_fix_JSMechanicalContractorsIncMember_us-gaap_FairValueByLiabilityClassAxis_fix_ContingentConsiderationObligationsMember_elY5K7I58U6YVrlQHSZljw" decimals="INF" format="ixt-sec:numwordsen" name="fix:BusinessCombinationNumberOfEarningsMilestones" scale="0" id="Narr_WWeQH7N3jkyK8FJ4tN2Xbw">three</ix:nonFraction> earnings milestones over a <span style="-sec-ix-hidden:Hidden_7S33M40-vka_9FZRu5HBlg;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">35-month</span></span> period, and the range of each estimated milestone payment is $<ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="As_Of_2_1_2024_us-gaap_BusinessAcquisitionAxis_fix_JSMechanicalContractorsIncMember_us-gaap_FairValueByLiabilityClassAxis_fix_ContingentConsiderationObligationsMember_elY5K7I58U6YVrlQHSZljw" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueLow" scale="6" id="Narr_OupTiIDPh0OS6hbpd6Otpw">1.1</ix:nonFraction> million to $<ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="As_Of_2_1_2024_us-gaap_BusinessAcquisitionAxis_fix_JSMechanicalContractorsIncMember_us-gaap_FairValueByLiabilityClassAxis_fix_ContingentConsiderationObligationsMember_elY5K7I58U6YVrlQHSZljw" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueHigh" scale="6" id="Narr_YMvygKAbgkOc5Cs55aLRfA">4.7</ix:nonFraction> million. We determined the initial fair value of the contingent earn-out obligation based on the Monte Carlo Simulation method, which represents a Level 3 measurement.&#160;Cash flows were discounted using discount rates ranging from <ix:nonFraction unitRef="Unit_Standard_pure_0GIr2wv4rk-T38a8Lz0A5w" contextRef="Duration_2_1_2024_To_2_1_2024_srt_RangeAxis_srt_MinimumMember_us-gaap_BusinessAcquisitionAxis_fix_JSMechanicalContractorsIncMember_us-gaap_FairValueByLiabilityClassAxis_fix_ContingentConsiderationObligationsMember_us-gaap_MeasurementInputTypeAxis_us-gaap_MeasurementInputInceptionDiscountRateMember_Z4PzYqr85UuHGkurckYlsA" decimals="3" format="ixt:numdotdecimal" name="fix:CashFlowDiscountRate" scale="-2" id="Narr_9Q2OpfgR9UKOsOM0PjnBDA">15.4</ix:nonFraction>% to <ix:nonFraction unitRef="Unit_Standard_pure_0GIr2wv4rk-T38a8Lz0A5w" contextRef="Duration_2_1_2024_To_2_1_2024_srt_RangeAxis_srt_MaximumMember_us-gaap_BusinessAcquisitionAxis_fix_JSMechanicalContractorsIncMember_us-gaap_FairValueByLiabilityClassAxis_fix_ContingentConsiderationObligationsMember_us-gaap_MeasurementInputTypeAxis_us-gaap_MeasurementInputInceptionDiscountRateMember_1iGhRmFgn0SNe3F9sRA-Hw" decimals="3" format="ixt:numdotdecimal" name="fix:CashFlowDiscountRate" scale="-2" id="Narr_9RYasRTrx0WFkDhqkJL9tg">16.5</ix:nonFraction>%, which we believe is appropriate and representative of a market participant assumption.&#160;Subsequent to the acquisition date, the contingent earn-out obligation is remeasured at fair value each reporting period.&#160;Changes in the estimated fair value of the contingent payments subsequent to the acquisition date are recognized immediately in earnings.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="font-style:italic;font-weight:bold;">Other Acquisitions</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">On May 1, 2024, we acquired all of the issued and outstanding membership interests of a plumbing service provider in North Carolina for a total preliminary purchase price of $<ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_5_1_2024_To_5_1_2024_us-gaap_BusinessAcquisitionAxis_fix_MechanicalContractorNorthCarolinaMember_GFQfbwtaoU6aQ2eCa6Ydxg" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationConsiderationTransferred1" scale="6" id="Narr_1Th667BGn0atdHACdCXDSw">39.9</ix:nonFraction> million, which is reported in our mechanical segment. </p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">On October 2, 2023, we acquired all of the issued and outstanding shares of capital stock of DECCO, Inc. (&#8220;DECCO&#8221;), headquartered in Nashua, New Hampshire, for a total purchase price of $<ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_10_2_2023_To_10_2_2023_us-gaap_BusinessAcquisitionAxis_fix_DeccoIncMember_Dx8j_lCNK0GxxJ_7YlmX8g" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationConsiderationTransferred1" scale="6" id="Narr_CHo8ON1QUkCY-V91psFhBQ">59.8</ix:nonFraction> million, which included $<ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_10_2_2023_To_10_2_2023_us-gaap_BusinessAcquisitionAxis_fix_DeccoIncMember_Dx8j_lCNK0GxxJ_7YlmX8g" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:PaymentsToAcquireBusinessesGross" scale="6" id="Narr_kvFIOD0vVUWi_yVO2Jrfvw">48.8</ix:nonFraction> million of cash paid on the closing date, $<ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_10_2_2023_To_10_2_2023_us-gaap_BusinessAcquisitionAxis_fix_DeccoIncMember_Dx8j_lCNK0GxxJ_7YlmX8g" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationConsiderationTransferredLiabilitiesIncurred" scale="6" id="Narr_AD7_4WpN1ki_Ks6d__trCg">7.0</ix:nonFraction> million in notes payable to the former owners, an earn-out that will be paid if certain financial targets are met after the acquisition date and a working capital adjustment. DECCO operates in the Northeastern region of the United States and performs mechanical and plumbing services with specialties in piping systems, steam, power, biotechnical processes and conveying systems, in addition to turnkey tool and equipment installation, critical equipment handling services and associated maintenance and support services. As a result of the acquisition, DECCO is a wholly owned subsidiary of the Company reported in our mechanical segment.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">On February 1, 2023, we acquired all of the issued and outstanding shares of capital stock of Eldeco, Inc. (&#8220;Eldeco&#8221;), headquartered in South Carolina, for a total purchase price of $<ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_2_1_2023_To_2_1_2023_us-gaap_BusinessAcquisitionAxis_fix_EldecoincMember_yjnrZ-2c_E2gP329DQLXDQ" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationConsiderationTransferred1" scale="6" id="Narr_2-viNxPAbEaf0w4jm0kB8A">74.0</ix:nonFraction> million, which included $<ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_2_1_2023_To_2_1_2023_us-gaap_BusinessAcquisitionAxis_fix_EldecoincMember_yjnrZ-2c_E2gP329DQLXDQ" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:PaymentsToAcquireBusinessesGross" scale="6" id="Narr_jPv_43NAFkW8KXjjCo6dtA">60.8</ix:nonFraction> million of cash paid on the closing date, $<ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_2_1_2023_To_2_1_2023_us-gaap_BusinessAcquisitionAxis_fix_EldecoincMember_yjnrZ-2c_E2gP329DQLXDQ" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationConsiderationTransferredLiabilitiesIncurred" scale="6" id="Narr_pvD7x3uAY06MuCwWt3Cu9g">8.0</ix:nonFraction> million in notes payable to the former owners, an earn-out that will be paid if certain financial targets are met after the acquisition date and a working capital adjustment. Eldeco performs electrical design and construction services in the Southeastern region of the United States. As a result of the acquisition, Eldeco is a wholly owned subsidiary of the Company reported in our electrical segment.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">The results of operations of acquisitions are included in our consolidated financial statements from their respective acquisition dates. Our Consolidated Balance Sheet includes preliminary allocations of the purchase price to the assets acquired and liabilities assumed for the applicable acquisitions pending the completion of the final valuation of intangible assets and accrued liabilities. The acquisitions completed in the current and prior year were not material, individually or in the aggregate. Additional contingent purchase price (&#8220;earn-out&#8221;) has been or will be paid if certain acquisitions achieve predetermined profitability targets. Such earn-outs, when they are not subject to the continued employment of the sellers, are estimated as of the purchase date and included as part of the consideration paid for the acquisition. If we have an earn-out under which continued employment is a condition to receipt of payment, then the earn-out is recorded as compensation expense over the period earned. </p></ix:continuation></div></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:12pt 0pt 0pt 0pt;">16</p></div></div>
<div style="background-color:#000000;clear:both;height:2pt;page-break-after:always;width:79.41%;border:0;margin:30pt 10.29% 30pt 10.29%;"></div><div style="max-width:100%;padding-left:10.29%;padding-right:10.29%;position:relative;"><div style="margin-top:21.6pt;min-height:41.4pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 30pt 0pt;"><a href="#Toc"><span style="font-style:normal;font-weight:normal;">Table of Contents</span></a></p></div><div style="clear:both;margin-left:-10.0pt;margin-right:-10.0pt;max-width:100%;position:relative;width:calc(100% + 20.0pt);"><div style="padding-left:10pt;padding-right:10pt;position:relative;width:100%;"><ix:continuation id="Tb_ZM-wcPJ_uUik3Ca6gvjJTg_cont4"></ix:continuation><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><a id="_ff0040db_08ba_4166_a7ee_aba778466585"></a><a id="Tc_QauZtFj0Z0ujDSzYiB8eDg_1_2"></a><a id="Tc_RU3MzTAt60S9BpEmWpQYVA_1_5"></a><a id="Tc_DpSr_u21B0OCnJXcdgxn9w_1_8"></a><a id="Tc_A9e2-pIQ1kmRlisutYp44Q_2_0"></a><a id="Tc_ewWIBM6uw0ueipqmnaMdnQ_2_2"></a><a id="Tc_7N70FAO9R0Srivd4HaCi2w_2_5"></a><a id="Tc_Hsxyh3nPBkKmiQGsHaoiBw_2_8"></a><a id="Tc_NwhF86Y7tUaC9JIRZQhYww_3_0"></a><a id="Tc_4OHeNYFd2EWTZqMRxH_5dQ_4_0"></a><a id="Tc_si8JaIpNKUqpCkt_L40kcg_5_0"></a><a id="Tc_g4XeNEEAbkWffNqJEQmxZg_6_0"></a><a id="Tc_kfmWk6nfyEWCPL4Ve3WQlA_6_2"></a><a id="Tc_UTBDrAN-T0GfHOQmSLETTw_6_5"></a><a id="Tc_R_mZsHCLD0uoMgTbnbP-9w_6_8"></a><a id="_aa58815d_0025_40c8_aaed_e2743c6e7464"></a><a id="Tc_7oG5L6nkMEaujrV5XwCWyw_1_0"></a><a id="Tc_zyM0PGVsJ0qYlrVFzu4dSA_2_0"></a><a id="Tc_6UsQgmo76UqGl8mC0xMUqA_2_2"></a><a id="Tc_RbnYjdghQkK5VOe-EfppWw_3_0"></a><a id="Tc_rQRt25FwGEakAmzkwenCCQ_4_0"></a><a id="Tc_SKMDYdq45Ui1_dD_dEL2fw_5_0"></a><a id="Tc_SSsSuk1P8Eeu_thVd7mK4g_6_0"></a><a id="Tc_vJtQd3LS7E--dbxnLu5ZnA_7_0"></a><a id="Tc_WzEAxmVGQEyfNBxCi8WfQA_8_0"></a><a id="Tc_V318fhUEPUCFnjHm-_4rXw_8_2"></a><ix:nonNumeric contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ" name="us-gaap:GoodwillAndIntangibleAssetsDisclosureTextBlock" id="Tb_XBtxlKZk-0OuiXVDpwZGOw" escape="true"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">6. Goodwill and Identifiable Intangible Assets, Net</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="font-style:italic;font-weight:bold;">Goodwill</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="font-style:italic;font-weight:bold;visibility:hidden;">&#8203;</span></p><ix:nonNumeric contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ" name="us-gaap:ScheduleOfGoodwillTextBlock" id="Tb_3OhzuhT3w0i7-w4YlvDndA" escape="true"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">The changes in the carrying amount of goodwill are as follows (in thousands):</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:-0.20061874%;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:58.58%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.63%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.42%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:13.1%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.63%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.35%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:11.8%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.63%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:7.78%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:58.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.63%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:14.53%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Mechanical Segment</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.63%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:13.15%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Electrical Segment</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.63%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:8.81%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Total</b></p></td></tr><tr><td style="vertical-align:bottom;width:58.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Balance at December 31, 2022</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.63%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.42%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.1%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="As_Of_12_31_2022_us-gaap_StatementBusinessSegmentsAxis_fix_MechanicalSegmentMember_-a4MCWI0AkC8_ejEkzppLA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:Goodwill" scale="3" id="Tc_G4cacls3fkG9uTbfLJuJyg_2_3">363,929</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.63%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.8%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="As_Of_12_31_2022_us-gaap_StatementBusinessSegmentsAxis_fix_ElectricalSegmentMember_arrUsxZ46USNASy8oYXSFg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:Goodwill" scale="3" id="Tc_EZlhM-7XsEuEvY6KHxzZ8Q_2_6">247,860</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.63%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.78%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="As_Of_12_31_2022_-q309bsKT0i3jZ5ZPwDgew" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:Goodwill" scale="3" id="Tc_NeJnWEEM_kOzWGXphWzYow_2_9">611,789</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:58.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Acquisitions and purchase price adjustments (See Note&#160;5)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.63%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.42%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.1%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_1_1_2023_To_12_31_2023_us-gaap_StatementBusinessSegmentsAxis_fix_MechanicalSegmentMember_sIHEWlasEkWrIKV3BjH9Yg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:GoodwillAcquiredDuringPeriod" scale="3" id="Tc_whgvZsue9EqFV2H_ReGBzA_3_3">29,347</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.63%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.35%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.8%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_1_1_2023_To_12_31_2023_us-gaap_StatementBusinessSegmentsAxis_fix_ElectricalSegmentMember_OGp-N20eBkKNWuA9tDPA-A" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:GoodwillAcquiredDuringPeriod" scale="3" id="Tc_P2DQAFzFBE6_5RgSgNCY6w_3_6">25,698</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.63%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.78%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_1_1_2023_To_12_31_2023_BLO39KDJ406SXE2fHbCX8Q" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:GoodwillAcquiredDuringPeriod" scale="3" id="Tc_P6nzoUNNYEqTSEeeU2JWyg_3_9">55,045</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:58.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Balance at December 31, 2023</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.63%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.42%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.1%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="As_Of_12_31_2023_us-gaap_StatementBusinessSegmentsAxis_fix_MechanicalSegmentMember_ZJFhNQD-0EukltC7W7dFWw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:Goodwill" scale="3" id="Tc_0OweuyqUU0GH_0HQM2vuXw_4_3">393,276</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.63%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.8%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="As_Of_12_31_2023_us-gaap_StatementBusinessSegmentsAxis_fix_ElectricalSegmentMember_Zmipb459G0WsxnuQZ3rZ7w" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:Goodwill" scale="3" id="Tc_uPcNc5qU-kmGsKl7CRp0Ow_4_6">273,558</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.63%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.78%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="As_Of_12_31_2023_X7eqeHRTF0mRLJW7InVDdA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:Goodwill" scale="3" id="Tc_dHQAaeEo4EGGW2X2gMj2bg_4_9">666,834</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:58.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Acquisitions and purchase price adjustments (See Note&#160;5)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.63%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.42%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.1%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_1_1_2024_To_9_30_2024_us-gaap_StatementBusinessSegmentsAxis_fix_MechanicalSegmentMember_V8JBIWI_BEON_oMqzNwwcQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:GoodwillAcquiredDuringPeriod" scale="3" id="Tc_vZUKfb4v2U-aCsYnqT8Grw_5_3">208,159</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.63%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.35%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.8%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_1_1_2024_To_9_30_2024_us-gaap_StatementBusinessSegmentsAxis_fix_ElectricalSegmentMember_CPvGEZODSU23C4fWc01EEA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:GoodwillAcquiredDuringPeriod" scale="3" id="Tc_Uuvhu1OqiE-MXOv0WqW3Qw_5_6">200</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.63%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.78%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:GoodwillAcquiredDuringPeriod" scale="3" id="Tc_BUEDwfx6l0CNHzNfGgCpsw_5_9">208,359</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:58.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Balance at September 30, 2024</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.63%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.42%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.1%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="As_Of_9_30_2024_us-gaap_StatementBusinessSegmentsAxis_fix_MechanicalSegmentMember_gOl7vnNOE0Oa2WJW-H9y3w" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:Goodwill" scale="3" id="Tc_0Z5sOGwZuUmEesgQK3kkZQ_6_3">601,435</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.63%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.35%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.8%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="As_Of_9_30_2024_us-gaap_StatementBusinessSegmentsAxis_fix_ElectricalSegmentMember_CMh8lOiUM0mkJyMFRKjiQw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:Goodwill" scale="3" id="Tc__1WCb-AOb0yQSast6pPEGA_6_6">273,758</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.63%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.78%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="As_Of_9_30_2024_um13j0l3zk2ITGaiED1DFA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:Goodwill" scale="3" id="Tc_sThsd-AAuEO9kC571jVTEg_6_9">875,193</ix:nonFraction></p></td></tr></table></ix:nonNumeric><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="font-style:italic;font-weight:bold;">Identifiable Intangible Assets, Net</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="font-style:italic;font-weight:bold;visibility:hidden;">&#8203;</span></p><ix:nonNumeric contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ" name="us-gaap:ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock" id="Tb_ehHA_RuzbkuGCqPgNelqKQ" escape="true"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">At September 30, 2024, future amortization expense of identifiable intangible assets is as follows (in thousands):</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:60%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:81.36%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:3.42%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.88%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:13.03%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:0.29%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:81.36%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Year ending December 31&#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;&#160;&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.88%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.03%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;&#160;&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:81.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">2024 (remainder of the year)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.42%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.88%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:11pt;">$</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.03%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="As_Of_9_30_2024_um13j0l3zk2ITGaiED1DFA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseRemainderOfFiscalYear" scale="3" id="Tc_NLvWgpmJ-0CuxMor8IK84w_2_3">22,042</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:81.36%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">2025</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.88%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.03%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="As_Of_9_30_2024_um13j0l3zk2ITGaiED1DFA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths" scale="3" id="Tc_osP--1Ji8kqPCx46Bx0vdQ_3_3">66,576</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:81.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">2026</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.42%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.88%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.03%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="As_Of_9_30_2024_um13j0l3zk2ITGaiED1DFA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo" scale="3" id="Tc_iWgX0eXZAEOg-I7NKonQDw_4_3">55,961</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:81.36%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">2027</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.88%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.03%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="As_Of_9_30_2024_um13j0l3zk2ITGaiED1DFA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearThree" scale="3" id="Tc_g6w99wHQKUaMEcg5HClPKQ_5_3">53,650</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:81.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">2028</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.42%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.88%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.03%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="As_Of_9_30_2024_um13j0l3zk2ITGaiED1DFA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearFour" scale="3" id="Tc_TX8374BQVUikIL2flYy4WQ_6_3">52,103</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:81.36%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">Thereafter</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.88%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.03%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="As_Of_9_30_2024_um13j0l3zk2ITGaiED1DFA" decimals="-3" format="ixt:numdotdecimal" name="fix:FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFour" scale="3" id="Tc_XcwCAByYxUy-WgqOHGymdQ_7_3">206,127</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:81.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 18pt;">Total</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.42%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.88%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.03%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="As_Of_9_30_2024_um13j0l3zk2ITGaiED1DFA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:FiniteLivedIntangibleAssetsNet" scale="3" id="Tc_Mzbo_No4vE22d-OM6hhqCQ_8_3">456,459</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></ix:nonNumeric></ix:nonNumeric><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><a id="_45c0daac_3c47_42f8_a9e0_de14591cbaf9"></a><a id="Tc_RD-BugqkcEefy5y8cYj9OA_1_2"></a><a id="Tc__s0OI_fYj0mN7IdjyUEz0A_1_5"></a><a id="Tc_gJh5yNt1tUK-MY7TSzFL8Q_2_2"></a><a id="Tc_9KTc25TOWkO_DnPXkw-JWw_2_5"></a><a id="Tc_I18PVpYa50CDR8oSGEoyyw_3_0"></a><a id="Tc_9OCQmBtV60WPfamxhyG2QA_3_2"></a><a id="Tc_BrUs7s4nZke8bJ8Trh1MZg_3_3"></a><a id="Tc_WxWxx30WKEKXXF4OBjcTjQ_3_5"></a><a id="Tc_n5o9pPC0w02CBLeAFhvG4Q_3_6"></a><a id="Tc_Y4o7fSDTgU-aSwm8Eg54Nw_4_0"></a><a id="Tc_OcV0ORFIiECCT_ZjJQghig_5_0"></a><a id="Tc_fr0uHDsajEqZo7jsChAcZw_6_0"></a><a id="Tc_NZ9ImRRiUU-Ln1DlK0EthQ_7_0"></a><a id="Tc_ubFEXrcaGEqvIqypr-Eh6w_8_0"></a><a id="Tc_eO_cz9NCZUmsRGZe2LZZ4Q_8_2"></a><a id="Tc_pP5qSbt0PkWBMG_fdaeQ2g_8_5"></a><ix:nonNumeric contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ" name="us-gaap:DebtDisclosureTextBlock" id="Tb_oIBpQy7XbkSl4gUB6HiOpg" continuedAt="Tb_oIBpQy7XbkSl4gUB6HiOpg_cont1" escape="true"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">7. Debt Obligations</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><ix:nonNumeric contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ" name="us-gaap:ScheduleOfDebtTableTextBlock" id="Tb_AcyoUYxyrkOdY78-3b30GA" escape="true"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">Debt obligations consist of the following (in thousands):</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:79.99%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:70.79%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;width:2.05%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.81%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.76%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.05%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.27%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;width:0.51%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:70.79%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;width:2.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:12.57%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">September 30, </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.99%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">December 31, </b></p></td><td style="vertical-align:bottom;width:0.51%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:70.79%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;width:2.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:12.57%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2024 </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.99%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2023</b></p></td><td style="vertical-align:bottom;width:0.51%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td></tr><tr><td style="vertical-align:bottom;width:70.79%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Revolving credit facility</p></td><td style="vertical-align:bottom;width:2.05%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.81%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.76%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.05%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.27%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;width:0.51%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:70.79%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Notes to former owners</p></td><td style="vertical-align:bottom;width:2.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.81%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.76%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="As_Of_9_30_2024_us-gaap_DebtInstrumentAxis_fix_SubordinateDebtAndPromissoryNoteMember_XSQD6UqffkiEduCjJs-FPQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:NotesAndLoansPayable" scale="3" id="Tc_cFLCtzoVZ0yg_rpnUeo7uw_4_3">67,593</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.27%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="As_Of_12_31_2023_us-gaap_DebtInstrumentAxis_fix_SubordinateDebtAndPromissoryNoteMember_0FKP3iOUfECrhZe1nFqndw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:NotesAndLoansPayable" scale="3" id="Tc_bPlOv8ZgD0eEppdWtBBx8w_4_6">44,070</ix:nonFraction></p></td><td style="vertical-align:bottom;width:0.51%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:70.79%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Other debt</p></td><td style="vertical-align:bottom;width:2.05%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.81%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.76%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="As_Of_9_30_2024_um13j0l3zk2ITGaiED1DFA" decimals="-3" format="ixt:numdotdecimal" name="fix:OtherDebtLongTermAndShortTermCombinedAmount" scale="3" id="Tc_YsQXWMPtOk6E2UvILpexjg_5_3">768</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.05%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.27%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="As_Of_12_31_2023_X7eqeHRTF0mRLJW7InVDdA" decimals="-3" format="ixt:numdotdecimal" name="fix:OtherDebtLongTermAndShortTermCombinedAmount" scale="3" id="Tc_kU0vgs9q8kiOCntOvn7mKA_5_6">142</ix:nonFraction></p></td><td style="vertical-align:bottom;width:0.51%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:70.79%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">Total debt</p></td><td style="vertical-align:bottom;width:2.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;"><span style="margin-left:0pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.81%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.76%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="As_Of_9_30_2024_um13j0l3zk2ITGaiED1DFA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:LongTermDebtAndCapitalLeaseObligationsIncludingCurrentMaturities" scale="3" id="Tc_kfFYs8vwNkqOeOWnJePuyA_6_3">68,361</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.27%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="As_Of_12_31_2023_X7eqeHRTF0mRLJW7InVDdA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:LongTermDebtAndCapitalLeaseObligationsIncludingCurrentMaturities" scale="3" id="Tc_NwXx4kYTpkydaLz8oraudQ_6_6">44,212</ix:nonFraction></p></td><td style="vertical-align:bottom;width:0.51%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;"><span style="margin-left:0pt;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:70.79%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">Less&#8212;current portion</p></td><td style="vertical-align:bottom;width:2.05%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;"><span style="margin-left:0pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.81%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.76%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="As_Of_9_30_2024_um13j0l3zk2ITGaiED1DFA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:LongTermDebtAndCapitalLeaseObligationsCurrent" scale="3" id="Tc_YKq9rNGFvkCzROaQwpsw9Q_7_3">6,046</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.05%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.27%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="As_Of_12_31_2023_X7eqeHRTF0mRLJW7InVDdA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:LongTermDebtAndCapitalLeaseObligationsCurrent" scale="3" id="Tc_2Dn2I2EKT0Skapw-fT14Fg_7_6">4,867</ix:nonFraction>)</p></td><td style="vertical-align:bottom;width:0.51%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;"><span style="margin-left:0pt;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:70.79%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">Total long-term portion of debt</p></td><td style="vertical-align:bottom;width:2.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;"><span style="margin-left:0pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.81%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.76%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="As_Of_9_30_2024_um13j0l3zk2ITGaiED1DFA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:LongTermDebtAndCapitalLeaseObligations" scale="3" id="Tc_Oki_fnEGqU-BbawWV0Z3dg_8_3">62,315</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.27%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="As_Of_12_31_2023_X7eqeHRTF0mRLJW7InVDdA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:LongTermDebtAndCapitalLeaseObligations" scale="3" id="Tc_ruSnmFHRwkS5K_FkFXgLPw_8_6">39,345</ix:nonFraction></p></td><td style="vertical-align:bottom;width:0.51%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;"><span style="margin-left:0pt;visibility:hidden;">&#8203;</span></p></td></tr></table></ix:nonNumeric><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 0pt 36pt;"><span style="font-style:italic;font-weight:bold;">Revolving Credit Facility </span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">We have an $<ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="As_Of_9_30_2024_us-gaap_CreditFacilityAxis_us-gaap_RevolvingCreditFacilityMember_us-gaap_DebtInstrumentAxis_fix_SeniorRevolvingCreditFacilityMember_U6rrLCv-g0eNhWu_TkXWLw" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:LineOfCreditFacilityMaximumBorrowingCapacity" scale="6" id="Narr_tsZyEJPWpkq-hBqNVtx9GA">850.0</ix:nonFraction> million senior credit facility (the &#8220;Facility&#8221;) provided by a syndicate of banks, which is composed of a revolving credit line guaranteed by certain of our subsidiaries. The Facility also provides for an accordion or increase option not to exceed the greater of (a) $<ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="As_Of_9_30_2024_srt_RangeAxis_srt_MaximumMember_us-gaap_CreditFacilityAxis_us-gaap_RevolvingCreditFacilityMember_us-gaap_DebtInstrumentAxis_fix_SeniorRevolvingCreditFacilityMember_Vx-A-TxtU06VSg1tAhtGXA" decimals="-6" format="ixt:numdotdecimal" name="fix:LineOfCreditBorrowingCapacityAccordionOption" scale="6" id="Narr_7sUl4iV--Ui8O_UC0SKFJQ">250</ix:nonFraction> million and (b) 1.0x Credit Facility Adjusted EBITDA (as defined below), as well as a sublimit of up to $<ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="As_Of_9_30_2024_us-gaap_CreditFacilityAxis_us-gaap_RevolvingCreditFacilityMember_us-gaap_DebtInstrumentAxis_us-gaap_LetterOfCreditMember_0w5GbMjA8EKON7jMWSL4iw" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:LineOfCreditFacilityMaximumBorrowingCapacity" scale="6" id="Narr_nMv-Am7B902nKbYhb3EPMQ">175.0</ix:nonFraction> million issuable in the form of letters of credit. The Facility expires in July 2027 and is secured by a first lien on substantially all of our personal property except for assets related to projects subject to surety bonds and the equity of, and assets held by, certain unrestricted subsidiaries and our wholly owned captive insurance company, and a second lien on our assets related to projects subject to surety bonds. As of September 30, 2024, we had <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="As_Of_9_30_2024_us-gaap_CreditFacilityAxis_us-gaap_RevolvingCreditFacilityMember_us-gaap_DebtInstrumentAxis_fix_SeniorRevolvingCreditFacilityMember_U6rrLCv-g0eNhWu_TkXWLw" decimals="-5" format="ixt-sec:numwordsen" name="us-gaap:LineOfCredit" scale="6" id="Narr_-bz-luuOwkWIwV_rI7iJdA">no</ix:nonFraction> outstanding borrowings on the revolving credit facility, $<ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="As_Of_9_30_2024_us-gaap_CreditFacilityAxis_us-gaap_RevolvingCreditFacilityMember_us-gaap_DebtInstrumentAxis_fix_SeniorRevolvingCreditFacilityMember_U6rrLCv-g0eNhWu_TkXWLw" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:LettersOfCreditOutstandingAmount" scale="6" id="Narr_uoyiX2SZLEaZofF8gFrzGw">80.0</ix:nonFraction>&#160;million in letters of credit outstanding and $<ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="As_Of_9_30_2024_us-gaap_CreditFacilityAxis_us-gaap_RevolvingCreditFacilityMember_us-gaap_DebtInstrumentAxis_fix_SeniorRevolvingCreditFacilityMember_U6rrLCv-g0eNhWu_TkXWLw" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:LineOfCreditFacilityRemainingBorrowingCapacity" scale="6" id="Narr_GcWUaffeAkCVDr5Nyvt5pg">770.0</ix:nonFraction>&#160;million of credit available.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">There are two interest rate options for borrowings under the Facility, the Base Rate Loan (as defined in the Facility) option and the Secured Overnight Financing Rate (&#8220;SOFR&#8221;) Loan option. These rates are floating rates </p></ix:nonNumeric></div></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:12pt 0pt 0pt 0pt;">17</p></div></div>
<div style="background-color:#000000;clear:both;height:2pt;page-break-after:always;width:79.41%;border:0;margin:30pt 10.29% 30pt 10.29%;"></div><div style="max-width:100%;padding-left:10.29%;padding-right:10.29%;position:relative;"><div style="margin-top:21.6pt;min-height:41.4pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 30pt 0pt;"><a href="#Toc"><span style="font-style:normal;font-weight:normal;">Table of Contents</span></a></p></div><div style="clear:both;margin-left:-10.0pt;margin-right:-10.0pt;max-width:100%;position:relative;width:calc(100% + 20.0pt);"><div style="padding-left:10pt;padding-right:10pt;position:relative;width:100%;"><a id="Tc_yEqakYaPvkqx5Xhcd_VHKQ_1_2"></a><a id="Tc_HB1w0S-jfEuy7IlWqmDZSw_2_2"></a><a id="Tc_JHgezjCSUEmnTwISTAQVUQ_2_4"></a><a id="Tc_KulsKuLYEEO7Xa5vBoeY8g_2_6"></a><a id="Tc_dGX5elMO5EuV5tbneq2QEQ_2_8"></a><a id="Tc_ytkiTcg6oUW6CA7S9pQx2Q_2_10"></a><a id="Tc_ywZJe_JBc0iEQ6g6CGOzMg_3_0"></a><a id="Tc_BPFcB2U02kqlQ-Cpr-LQ2A_4_0"></a><a id="Tc_hMQpzqlNBU6iXTQWhtn6_w_4_3"></a><a id="Tc_zjmer2PTl0qz6wsNEIwClg_4_5"></a><a id="Tc_HEoN7ez1q0ix64rq_WBNhA_4_7"></a><a id="Tc_ISOirkvM3EGwBUG3KnowPw_4_9"></a><a id="Tc_uOC1Eld50kKv7ct7mhnofQ_4_11"></a><a id="Tc_598igVSeNE-YPnbrk_VmxA_5_0"></a><a id="Tc_6Hb3SIu1TE2-4dpCpjZK9Q_5_3"></a><a id="Tc_bOrVuwt3ukaE3hCqTSrS_Q_5_5"></a><a id="Tc_QBmfRvqsOEm0S3O1QmVnLg_5_7"></a><a id="Tc_0nNJU-UO_EGdAWsrorKO7w_5_9"></a><a id="Tc_KJyDlvJzFU286xsnpeladw_5_11"></a><a id="Tc_BpTt70ddsU2ZV-AHZ7R2vg_1_2"></a><a id="Tc_ZGKDfItDfECad6pTo-qXww_1_5"></a><a id="Tc_QuUyVwIYFUiRHC5B1oJnrA_2_2"></a><a id="Tc_zBWSeCLU6ketohSvAJlLGw_2_5"></a><a id="Tc_58IUbMUQT0SoiLYDYYdXoQ_3_0"></a><a id="Tc_Qjxm3hUJqUG0FiIaK8XBzA_3_2"></a><a id="Tc_7h4FlojCcEqAd7_DjeSu0A_3_5"></a><a id="Tc_SY2YhzhtjEuLkOfoEGz7zA_3_6"></a><a id="Tc_IMVhnKLbg0mfrrBHI-kXVw_4_0"></a><a id="Tc_1-QNQnh8-0SjtyfWRjTK4Q_4_5"></a><a id="Tc_rI0og2waSES_3OnIdrHCwQ_4_6"></a><a id="Tc_gCReQKXu1U6jGs-wpSOawQ_5_0"></a><a id="Tc_2ue01zdFjUO1kKBziMF0Vw_5_6"></a><a id="Tc_Su7Gf8qA_EqE9M_zil8l4w_6_0"></a><a id="Tc_3VUgsb9x9UyGNgHiAW58Gw_6_6"></a><a id="Tc_z7IBzYea8Ey-oD_nrp-aHA_7_0"></a><a id="Tc_q8GaZjqzcUirKBqs1ySeNQ_7_2"></a><ix:continuation id="Tb_oIBpQy7XbkSl4gUB6HiOpg_cont1"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">determined by the broad financial markets, meaning they can and do move up and down from time to time. Additional margins are then added to these two rates: </p><ix:nonNumeric contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ" name="fix:ScheduleOfAdditionalMarginsTableTextBlock" id="Tb_8zkumUvIYE6WAmxpkeFWUw" escape="true"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:53.32%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;width:7.13%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.71%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;width:7.55%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.74%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;width:6.5%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.74%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;width:6.39%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.71%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;width:6.79%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.71%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:53.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="9" style="vertical-align:bottom;white-space:nowrap;width:43.31%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Net Leverage Ratio</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.71%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:53.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;width:7.13%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Less&#160;than&#160;</b><b style="font-weight:bold;"><br/></b><b style="font-weight:bold;">1.00</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.71%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;width:7.55%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">1.00&#160;to&#160;less than 1.75</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;width:6.5%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">1.75&#160;to less than&#160;2.50</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;width:6.39%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2.50&#160;to less than 3.00</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.71%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;width:6.79%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">3.00 or greater</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.71%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:53.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Additional Per Annum Interest Margin Added Under:</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.13%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.71%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.55%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.5%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.39%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.71%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.79%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.71%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:53.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">Base Rate Loan Option</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.13%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><ix:nonFraction unitRef="Unit_Standard_pure_0GIr2wv4rk-T38a8Lz0A5w" contextRef="Duration_1_1_2024_To_9_30_2024_fix_DebtCovenantRatioAxis_fix_DebtCovenantRatioRangeOneMember_us-gaap_CreditFacilityAxis_us-gaap_RevolvingCreditFacilityMember_us-gaap_VariableRateAxis_us-gaap_BaseRateMember_euITv3b3C0Cpyv9J0nPDUQ" decimals="4" format="ixt:numdotdecimal" name="us-gaap:DebtInstrumentBasisSpreadOnVariableRate1" scale="-2" id="Tc_WO0HxvPWB0awPmmcQ5REgQ_4_2">0.00</ix:nonFraction> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.71%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.55%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_pure_0GIr2wv4rk-T38a8Lz0A5w" contextRef="Duration_1_1_2024_To_9_30_2024_fix_DebtCovenantRatioAxis_fix_DebtCovenantRatioRangeTwoMember_us-gaap_CreditFacilityAxis_us-gaap_RevolvingCreditFacilityMember_us-gaap_VariableRateAxis_us-gaap_BaseRateMember_dIavi5Tf7kK0AqbqTFpRCA" decimals="4" format="ixt:numdotdecimal" name="us-gaap:DebtInstrumentBasisSpreadOnVariableRate1" scale="-2" id="Tc_MVAGoLApC0u3MkTg8jQmCQ_4_4">0.25</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">%&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.5%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_pure_0GIr2wv4rk-T38a8Lz0A5w" contextRef="Duration_1_1_2024_To_9_30_2024_fix_DebtCovenantRatioAxis_fix_DebtCovenantRatioRangeThreeMember_us-gaap_CreditFacilityAxis_us-gaap_RevolvingCreditFacilityMember_us-gaap_VariableRateAxis_us-gaap_BaseRateMember_PxGRy-w8oUOGfS7CcwrYEQ" decimals="4" format="ixt:numdotdecimal" name="us-gaap:DebtInstrumentBasisSpreadOnVariableRate1" scale="-2" id="Tc_1R44GZ0jy0WEaALtOJ7CUw_4_6">0.50</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">%&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.39%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_pure_0GIr2wv4rk-T38a8Lz0A5w" contextRef="Duration_1_1_2024_To_9_30_2024_fix_DebtCovenantRatioAxis_fix_DebtCovenantRatioRangeFourMember_us-gaap_CreditFacilityAxis_us-gaap_RevolvingCreditFacilityMember_us-gaap_VariableRateAxis_us-gaap_BaseRateMember_w32L56YUnEucGsNruJgppA" decimals="4" format="ixt:numdotdecimal" name="us-gaap:DebtInstrumentBasisSpreadOnVariableRate1" scale="-2" id="Tc_EuAMWKUctk-HdsIH-jd3NQ_4_8">0.75</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.71%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.79%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_pure_0GIr2wv4rk-T38a8Lz0A5w" contextRef="Duration_1_1_2024_To_9_30_2024_fix_DebtCovenantRatioAxis_fix_DebtCovenantRatioRangeFiveMember_us-gaap_CreditFacilityAxis_us-gaap_RevolvingCreditFacilityMember_us-gaap_VariableRateAxis_us-gaap_BaseRateMember_2NZsBDbXOUOCqovL-tm5PA" decimals="4" format="ixt:numdotdecimal" name="us-gaap:DebtInstrumentBasisSpreadOnVariableRate1" scale="-2" id="Tc_rFy5MShNz0eP1GTJU5mBVw_4_10">1.00</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.71%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">%</p></td></tr><tr><td style="vertical-align:bottom;width:53.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">SOFR Loan Option</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.13%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_pure_0GIr2wv4rk-T38a8Lz0A5w" contextRef="Duration_1_1_2024_To_9_30_2024_fix_DebtCovenantRatioAxis_fix_DebtCovenantRatioRangeOneMember_us-gaap_CreditFacilityAxis_us-gaap_RevolvingCreditFacilityMember_us-gaap_VariableRateAxis_us-gaap_SecuredOvernightFinancingRateSofrMember_4qAfbGq9YUS-CNDVj6lX_g" decimals="4" format="ixt:numdotdecimal" name="us-gaap:DebtInstrumentBasisSpreadOnVariableRate1" scale="-2" id="Tc_s32qQm_kd0Gmfcd2O9Klng_5_2">1.00</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.71%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.55%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_pure_0GIr2wv4rk-T38a8Lz0A5w" contextRef="Duration_1_1_2024_To_9_30_2024_fix_DebtCovenantRatioAxis_fix_DebtCovenantRatioRangeTwoMember_us-gaap_CreditFacilityAxis_us-gaap_RevolvingCreditFacilityMember_us-gaap_VariableRateAxis_us-gaap_SecuredOvernightFinancingRateSofrMember_piwyt78j20OZTYNyDxHCYA" decimals="4" format="ixt:numdotdecimal" name="us-gaap:DebtInstrumentBasisSpreadOnVariableRate1" scale="-2" id="Tc_znL-_5kst0inidjDl2l6Jw_5_4">1.25</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.5%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_pure_0GIr2wv4rk-T38a8Lz0A5w" contextRef="Duration_1_1_2024_To_9_30_2024_fix_DebtCovenantRatioAxis_fix_DebtCovenantRatioRangeThreeMember_us-gaap_CreditFacilityAxis_us-gaap_RevolvingCreditFacilityMember_us-gaap_VariableRateAxis_us-gaap_SecuredOvernightFinancingRateSofrMember_tBj9V7cBBUWwlrV1Pen_Xg" decimals="4" format="ixt:numdotdecimal" name="us-gaap:DebtInstrumentBasisSpreadOnVariableRate1" scale="-2" id="Tc_TAHL2rGuUk6TDs_kuyqdxA_5_6">1.50</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.39%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_pure_0GIr2wv4rk-T38a8Lz0A5w" contextRef="Duration_1_1_2024_To_9_30_2024_fix_DebtCovenantRatioAxis_fix_DebtCovenantRatioRangeFourMember_us-gaap_CreditFacilityAxis_us-gaap_RevolvingCreditFacilityMember_us-gaap_VariableRateAxis_us-gaap_SecuredOvernightFinancingRateSofrMember_7kOu2Za0hEqrgLFNy6oSZA" decimals="4" format="ixt:numdotdecimal" name="us-gaap:DebtInstrumentBasisSpreadOnVariableRate1" scale="-2" id="Tc_ZH_beU_OgUSgZwJC14L70Q_5_8">1.75</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.71%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.79%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_pure_0GIr2wv4rk-T38a8Lz0A5w" contextRef="Duration_1_1_2024_To_9_30_2024_fix_DebtCovenantRatioAxis_fix_DebtCovenantRatioRangeFiveMember_us-gaap_CreditFacilityAxis_us-gaap_RevolvingCreditFacilityMember_us-gaap_VariableRateAxis_us-gaap_SecuredOvernightFinancingRateSofrMember_s6sKxL1LTEupcC2UEz935A" decimals="4" format="ixt:numdotdecimal" name="us-gaap:DebtInstrumentBasisSpreadOnVariableRate1" scale="-2" id="Tc_iwcObciw2E6KnPXYfNKOpQ_5_10">2.00</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.71%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">%</p></td></tr></table></ix:nonNumeric><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">There were <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="As_Of_6_30_2024_us-gaap_CreditFacilityAxis_us-gaap_RevolvingCreditFacilityMember_-F87Z11Jpk6QmdRLV_C52g" decimals="-5" format="ixt-sec:numwordsen" name="us-gaap:LineOfCredit" scale="6" id="Narr_m3A7BEaR00i6M5s2GdqAkg"><ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="As_Of_9_30_2024_us-gaap_CreditFacilityAxis_us-gaap_RevolvingCreditFacilityMember_E6oVXDAxSE-DOVuvfsnYPQ" decimals="-5" format="ixt-sec:numwordsen" name="us-gaap:LineOfCredit" scale="6" id="Narr_vHOXeoU62UifTIvhJLWijg"><ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="As_Of_12_31_2023_us-gaap_CreditFacilityAxis_us-gaap_RevolvingCreditFacilityMember_lWML2av1jEuhx_9kBGRmkQ" decimals="-5" format="ixt-sec:numwordsen" name="us-gaap:LineOfCredit" scale="6" id="Narr_PULIDjmFjU6OI8fgnS3fug">no</ix:nonFraction></ix:nonFraction></ix:nonFraction> outstanding borrowings on the revolving credit facility as of September 30, 2024 and December 31, 2023.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">Certain of our vendors require letters of credit to ensure reimbursement for amounts they are disbursing on our behalf, such as to beneficiaries under our self-funded insurance programs. We have also occasionally used letters of credit to guarantee performance under our contracts and to ensure payment to our subcontractors and vendors under those contracts. Our lenders issue such letters of credit through the Facility. A letter of credit commits the lenders to pay specified amounts to the holder of the letter of credit if the holder demonstrates that we have failed to perform specified actions. If this were to occur, we would be required to reimburse the lenders for amounts they fund to honor the letter of credit holder&#8217;s claim. Absent a claim, there is no payment or reserving of funds by us in connection with a letter of credit. However, because a claim on a letter of credit would require immediate reimbursement by us to our lenders, letters of credit are treated as a use of Facility capacity. The letter of credit fees range from <ix:nonFraction unitRef="Unit_Standard_pure_0GIr2wv4rk-T38a8Lz0A5w" contextRef="Duration_1_1_2024_To_9_30_2024_srt_RangeAxis_srt_MinimumMember_us-gaap_DebtInstrumentAxis_us-gaap_LetterOfCreditMember_Sxjt1WXSdkS06xcBdFFXsw" decimals="4" format="ixt:numdotdecimal" name="us-gaap:DebtInstrumentBasisSpreadOnVariableRate1" scale="-2" id="Narr_hXTadUfK10-tOMKeOlaFzQ">1.00</ix:nonFraction>% to <ix:nonFraction unitRef="Unit_Standard_pure_0GIr2wv4rk-T38a8Lz0A5w" contextRef="Duration_1_1_2024_To_9_30_2024_srt_RangeAxis_srt_MaximumMember_us-gaap_DebtInstrumentAxis_us-gaap_LetterOfCreditMember_sFO9_7LDT0-9J9IiMcimag" decimals="4" format="ixt:numdotdecimal" name="us-gaap:DebtInstrumentBasisSpreadOnVariableRate1" scale="-2" id="Narr_AC3nrLApwUuLDAW89yj1Uw">2.00</ix:nonFraction>% per annum, based on the Net Leverage Ratio.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">Commitment fees are payable on the portion of the revolving loan capacity not in use for borrowings or letters of credit at any given time. These fees range from <ix:nonFraction unitRef="Unit_Standard_pure_0GIr2wv4rk-T38a8Lz0A5w" contextRef="Duration_1_1_2024_To_9_30_2024_srt_RangeAxis_srt_MinimumMember_us-gaap_CreditFacilityAxis_us-gaap_RevolvingCreditFacilityMember_9jwsIiTizkCuq9i4hkJodA" decimals="4" format="ixt:numdotdecimal" name="us-gaap:LineOfCreditFacilityUnusedCapacityCommitmentFeePercentage" scale="-2" id="Narr_belwkVY1TEyGQa_BxwlZKA">0.15</ix:nonFraction>% to <ix:nonFraction unitRef="Unit_Standard_pure_0GIr2wv4rk-T38a8Lz0A5w" contextRef="Duration_1_1_2024_To_9_30_2024_srt_RangeAxis_srt_MaximumMember_us-gaap_CreditFacilityAxis_us-gaap_RevolvingCreditFacilityMember_XE34UnVimU6RyWu3ZGxTzQ" decimals="4" format="ixt:numdotdecimal" name="us-gaap:LineOfCreditFacilityUnusedCapacityCommitmentFeePercentage" scale="-2" id="Narr_MxbIuN9P1kKyPbrez7H4fw">0.25</ix:nonFraction>% per annum, based on the Net Leverage Ratio.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">The Facility contains financial covenants defining various financial measures and the levels of these measures with which we must comply. Covenant compliance is assessed as of each quarter end. We were in compliance with all of our financial covenants as of September 30, 2024.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-style:italic;font-weight:bold;">Notes to Former Owners</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">As part of the consideration used to acquire <ix:nonFraction unitRef="Unit_Standard_item_PbUC2ubErUqwW8N_vj70-g" contextRef="As_Of_9_30_2024_us-gaap_DebtInstrumentAxis_fix_SubordinateDebtAndPromissoryNoteMember_XSQD6UqffkiEduCjJs-FPQ" decimals="INF" format="ixt-sec:numwordsen" name="fix:CumulativeNumberOfCompaniesAcquiredOutstandingNotesToFormerOwners" scale="0" id="Narr_GIOVsZj-70uR2MUGBBCJPA">eight</ix:nonFraction> companies, we have outstanding notes to the former owners. Together, these notes had an outstanding balance of $<ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="As_Of_9_30_2024_us-gaap_DebtInstrumentAxis_fix_SubordinateDebtAndPromissoryNoteMember_XSQD6UqffkiEduCjJs-FPQ" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:NotesAndLoansPayable" scale="6" id="Narr_-G9M0KTYDUet1aVqh7xisA">67.6</ix:nonFraction> million as of September 30, 2024. <ix:nonNumeric contextRef="Duration_1_1_2024_To_9_30_2024_us-gaap_DebtInstrumentAxis_fix_SubordinateDebtAndPromissoryNoteMember_qpkd_dEisUWksMOTrrt-ew" name="us-gaap:ScheduleOfMaturitiesOfLongTermDebtTableTextBlock" id="Group_1UqFVoqsMk2MZGZP5skmoA" continuedAt="Group_1UqFVoqsMk2MZGZP5skmoA_2" escape="true">At September 30, 2024, future principal payments of notes to former owners by maturity year are as follows (dollars in thousands):</ix:nonNumeric></p><ix:continuation id="Group_1UqFVoqsMk2MZGZP5skmoA_2"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:79.99%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:52.88%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:3.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.86%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:19.49%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:3.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:16.1%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:3.53%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:52.88%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;width:3.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:21.36%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Balance at</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:19.63%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Range of Stated</b></p></td></tr><tr><td style="vertical-align:bottom;width:52.88%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;width:3.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:21.36%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">September 30, 2024</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:19.63%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;"> Interest Rates</b></p></td></tr><tr><td style="vertical-align:bottom;width:52.88%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">2025</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.86%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:11pt;">$</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:19.49%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="As_Of_9_30_2024_fix_DebtMaturityDateAxis_fix_MaturityYearTwoMember_us-gaap_DebtInstrumentAxis_fix_SubordinateDebtAndPromissoryNoteMember_skGkSkrrj0m22UCbee6nbg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:NotesAndLoansPayable" scale="3" id="Tc_pkyVKxtMlE-srrHOAeGDWQ_3_3">5,968</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:16.1%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><ix:nonFraction unitRef="Unit_Standard_pure_0GIr2wv4rk-T38a8Lz0A5w" contextRef="As_Of_9_30_2024_fix_DebtMaturityDateAxis_fix_MaturityYearTwoMember_srt_RangeAxis_srt_MinimumMember_us-gaap_DebtInstrumentAxis_fix_SubordinateDebtAndPromissoryNoteMember_KojyVCN3cEmLx0QkqiRh8w" decimals="3" format="ixt:numdotdecimal" name="us-gaap:DebtInstrumentInterestRateStatedPercentage" scale="-2" id="Narr_QJc-cmoKiUyL7CozesEqcQ">2.3</ix:nonFraction> - <ix:nonFraction unitRef="Unit_Standard_pure_0GIr2wv4rk-T38a8Lz0A5w" contextRef="As_Of_9_30_2024_fix_DebtMaturityDateAxis_fix_MaturityYearTwoMember_srt_RangeAxis_srt_MaximumMember_us-gaap_DebtInstrumentAxis_fix_SubordinateDebtAndPromissoryNoteMember_Eql9x3iYsUqpttrRsDjGAw" decimals="3" format="ixt:numdotdecimal" name="us-gaap:DebtInstrumentInterestRateStatedPercentage" scale="-2" id="Narr_KD4pD37c2U-HyRH6n20TCQ">2.5</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:11pt;">%</span></p></td></tr><tr><td style="vertical-align:bottom;width:52.88%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">2026</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:19.49%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="As_Of_9_30_2024_fix_DebtMaturityDateAxis_fix_MaturityYearThreeMember_us-gaap_DebtInstrumentAxis_fix_SubordinateDebtAndPromissoryNoteMember_fwN5F61NGkugv8GyHLBReg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:NotesAndLoansPayable" scale="3" id="Tc_E5zv0WDfJkqwh84_rCNDRA_4_3">30,625</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:16.1%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><ix:nonFraction unitRef="Unit_Standard_pure_0GIr2wv4rk-T38a8Lz0A5w" contextRef="As_Of_9_30_2024_fix_DebtMaturityDateAxis_fix_MaturityYearThreeMember_srt_RangeAxis_srt_MinimumMember_us-gaap_DebtInstrumentAxis_fix_SubordinateDebtAndPromissoryNoteMember_5PjgbMBB_Uia6vIHc4mrdA" decimals="3" format="ixt:numdotdecimal" name="us-gaap:DebtInstrumentInterestRateStatedPercentage" scale="-2" id="Narr_Cz6RrpF_1UqxSWDq5hpEUQ">2.5</ix:nonFraction> - <ix:nonFraction unitRef="Unit_Standard_pure_0GIr2wv4rk-T38a8Lz0A5w" contextRef="As_Of_9_30_2024_fix_DebtMaturityDateAxis_fix_MaturityYearThreeMember_srt_RangeAxis_srt_MaximumMember_us-gaap_DebtInstrumentAxis_fix_SubordinateDebtAndPromissoryNoteMember_NBdJfeqzu0yjSKA-VJbqwg" decimals="3" format="ixt:numdotdecimal" name="us-gaap:DebtInstrumentInterestRateStatedPercentage" scale="-2" id="Narr_U1oiRof2CUqufCGNB2pAQQ">5.5</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:11pt;">%</span></p></td></tr><tr><td style="vertical-align:bottom;width:52.88%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">2027</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.86%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:19.49%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="As_Of_9_30_2024_fix_DebtMaturityDateAxis_fix_MaturityYearFourMember_us-gaap_DebtInstrumentAxis_fix_SubordinateDebtAndPromissoryNoteMember_mt7zqU7oSE2UCMwTRSK82g" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:NotesAndLoansPayable" scale="3" id="Tc_TcCrQCwBE02tcaavOXeOhQ_5_3">26,000</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:16.1%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_pure_0GIr2wv4rk-T38a8Lz0A5w" contextRef="As_Of_9_30_2024_fix_DebtMaturityDateAxis_fix_MaturityYearFourMember_us-gaap_DebtInstrumentAxis_fix_SubordinateDebtAndPromissoryNoteMember_mt7zqU7oSE2UCMwTRSK82g" decimals="3" format="ixt:numdotdecimal" name="us-gaap:DebtInstrumentInterestRateStatedPercentage" scale="-2" id="Tc_aJ28Rexe6E6u66L2dXhW8w_5_5">5.5</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:11pt;">%</span></p></td></tr><tr><td style="vertical-align:bottom;width:52.88%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">2028</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.86%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:19.49%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="As_Of_9_30_2024_fix_DebtMaturityDateAxis_fix_MaturityYearFiveMember_us-gaap_DebtInstrumentAxis_fix_SubordinateDebtAndPromissoryNoteMember_KBZY_j_KFE-GwjSjJgLy8g" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:NotesAndLoansPayable" scale="3" id="Tc_DHu_qglSj0mhOZ9LSOG6vw_6_3">5,000</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:16.1%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_pure_0GIr2wv4rk-T38a8Lz0A5w" contextRef="As_Of_9_30_2024_fix_DebtMaturityDateAxis_fix_MaturityYearFiveMember_us-gaap_DebtInstrumentAxis_fix_SubordinateDebtAndPromissoryNoteMember_KBZY_j_KFE-GwjSjJgLy8g" decimals="3" format="ixt:numdotdecimal" name="us-gaap:DebtInstrumentInterestRateStatedPercentage" scale="-2" id="Tc_qdu62PVXpEGE6Yq3GZ1zJg_6_5">5.5</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:11pt;">%</span></p></td></tr><tr><td style="vertical-align:bottom;width:52.88%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 18pt;">Total</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.86%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:19.49%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="As_Of_9_30_2024_us-gaap_DebtInstrumentAxis_fix_SubordinateDebtAndPromissoryNoteMember_XSQD6UqffkiEduCjJs-FPQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:NotesAndLoansPayable" scale="3" id="Tc_MKCEYG6uQECgygXHH4jtVA_7_3">67,593</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:16.1%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:11pt;visibility:hidden;">&#8203;</span></p></td></tr></table></ix:continuation><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:1pt;text-indent:36pt;margin:0pt;">F</p></ix:continuation><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><ix:nonNumeric contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ" name="us-gaap:LesseeOperatingLeasesTextBlock" id="Tb_6RRwlPfS-UuRq3y9MgQPrA" continuedAt="Tb_6RRwlPfS-UuRq3y9MgQPrA_cont1" escape="true"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">8. Leases</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p><ix:nonNumeric contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ" name="us-gaap:LesseeLeasesPolicyTextBlock" id="Tb_Z6pJLQhuikez2YQeUvvprQ" continuedAt="Tb_Z6pJLQhuikez2YQeUvvprQ_cont1" escape="true"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">We lease certain facilities, vehicles and equipment primarily under noncancelable operating leases. The most significant portion of these noncancelable operating leases is for the facilities occupied by our corporate office and our operating locations. Leases with an initial term of 12 months or less are not recorded in the Consolidated Balance Sheet. We do not separate lease components from their associated non-lease components pursuant to lease accounting guidance. We have certain leases with variable payments based on an index as well as short-term leases on equipment and facilities. Variable lease expense and short-term lease expense aggregated to $<ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_7_1_2024_To_9_30_2024_XquWrHsdeEmkK9F8qXf6qA" decimals="-5" format="ixt:numdotdecimal" name="fix:VariableLeaseAndShortTermLeaseCost" scale="6" id="Narr_A3HE3xlQWEqUcoUy6dUdCQ">26.4</ix:nonFraction> million and $<ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_7_1_2023_To_9_30_2023_S4fUa5HYuk6ZPxhUrn5m5w" decimals="-5" format="ixt:numdotdecimal" name="fix:VariableLeaseAndShortTermLeaseCost" scale="6" id="Narr_q26G_7vUF0CMfszOPalcCw">17.0</ix:nonFraction> million for the three months ended September 30, 2024 and 2023, respectively. Variable lease expense and short-term lease expense </p></ix:nonNumeric></ix:nonNumeric></div></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:12pt 0pt 0pt 0pt;">18</p></div></div>
<div style="background-color:#000000;clear:both;height:2pt;page-break-after:always;width:79.41%;border:0;margin:30pt 10.29% 30pt 10.29%;"></div><div style="max-width:100%;padding-left:10.29%;padding-right:10.29%;position:relative;"><div style="margin-top:21.6pt;min-height:41.4pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 30pt 0pt;"><a href="#Toc"><span style="font-style:normal;font-weight:normal;">Table of Contents</span></a></p></div><div style="clear:both;margin-left:-10.0pt;margin-right:-10.0pt;max-width:100%;position:relative;width:calc(100% + 20.0pt);"><div style="padding-left:10pt;padding-right:10pt;position:relative;width:100%;"><a id="_3ab3ce82_50b1_4b2d_8106_a65da6030339"></a><a id="Tc_nTSWvF1tYU61JKhg-wiWuA_2_1"></a><a id="Tc_On7dkYjtQ0WvTT6eihcjVQ_2_4"></a><a id="Tc_UowtDCK4ekCt1lMWFpfoyA_3_0"></a><a id="Tc_zRTzvvQosE2BT4Ma_SsQ2A_3_1"></a><a id="Tc_B84E_VxvEUaRU2kW8bEwGg_3_4"></a><a id="Tc_VyhXevSvNEeZ0vSJlJWzPg_4_0"></a><a id="Tc_BqM4zaUrOUSh1yvk70jkdw_5_1"></a><a id="Tc_3r1x6cGhiEWEckW7swQD5Q_5_4"></a><a id="Tc_AGCh3YgUd0Cm_XFfaHZlLQ_6_0"></a><a id="Tc_b8Qbu7pygkKpByoW1SGaQQ_7_0"></a><a id="Tc_hKBNEdbLB0a26dmSoi74Fg_7_1"></a><a id="Tc_WfR4oY1HJ0W-igG54MHFtQ_7_4"></a><a id="_c341eaa3_b3b8_426f_8627_f54331ad036c"></a><a id="Tc_Yci4v4q1zUWSXHo1Ek1DDA_1_0"></a><a id="Tc_FzhmgusAtkq14CTEMmy4BQ_2_0"></a><a id="Tc_bnRwS6dWBEqbUpGJW-MisA_2_2"></a><a id="Tc_pc1ICFpXSE60WPLHnlmzWg_3_0"></a><a id="Tc_5gESjxCbB0eLNhmibMefsw_4_0"></a><a id="Tc_21mPP98pqEOvd16ov-n39A_5_0"></a><a id="Tc_mk60DAwIBkqBbddCuUpDJQ_6_0"></a><a id="Tc_xUq5U2wgtk2wbkrmsq4dMQ_7_0"></a><a id="Tc_pXQi7GpURUOed0C3R1N__Q_8_0"></a><a id="Tc_PQ7ycMqTNku-DxtauvIb4Q_9_0"></a><a id="Tc_nEahYJTMG0W-9yFIbLtdkA_10_0"></a><a id="Tc_RZn6wptdQkeimSv8e21rCg_10_2"></a><ix:continuation id="Tb_6RRwlPfS-UuRq3y9MgQPrA_cont1" continuedAt="Tb_6RRwlPfS-UuRq3y9MgQPrA_cont2"><ix:continuation id="Tb_Z6pJLQhuikez2YQeUvvprQ_cont1"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">aggregated to $<ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ" decimals="-5" format="ixt:numdotdecimal" name="fix:VariableLeaseAndShortTermLeaseCost" scale="6" id="Narr_brewVj2oQEO3w9TRwaZE0w">67.1</ix:nonFraction> million and $<ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_1_1_2023_To_9_30_2023_0vpBpKZIxEC_KY5z5G8rKA" decimals="-5" format="ixt:numdotdecimal" name="fix:VariableLeaseAndShortTermLeaseCost" scale="6" id="Narr_Sw4-FywCNEGbq-C-TNHlJg">38.8</ix:nonFraction> million in the first nine months of 2024 and 2023, respectively. These expenses were primarily related to short-term equipment rentals. Lease right-of-use assets and liabilities are recognized at commencement date based on the present value of lease payments over the lease term. As most of our leases do not provide an implicit rate, we generally use our incremental borrowing rate based on the information available at commencement date in determining the present value of lease payments. The weighted average discount rate for our operating leases as of September 30, 2024 and December 31, 2023 was <ix:nonFraction unitRef="Unit_Standard_pure_0GIr2wv4rk-T38a8Lz0A5w" contextRef="As_Of_9_30_2024_um13j0l3zk2ITGaiED1DFA" decimals="3" format="ixt:numdotdecimal" name="us-gaap:OperatingLeaseWeightedAverageDiscountRatePercent" scale="-2" id="Narr_LnFdr12HIkix5kUC9FQSlA">6.0</ix:nonFraction>% and <ix:nonFraction unitRef="Unit_Standard_pure_0GIr2wv4rk-T38a8Lz0A5w" contextRef="As_Of_12_31_2023_X7eqeHRTF0mRLJW7InVDdA" decimals="3" format="ixt:numdotdecimal" name="us-gaap:OperatingLeaseWeightedAverageDiscountRatePercent" scale="-2" id="Narr_gVy-xPh2PEaBE7KqQAAJog">5.8</ix:nonFraction>%, respectively. We recognize operating lease expense, including escalating lease payments and lease incentives, on a straight-line basis over the lease term. Operating lease expense for the three months ended September 30, 2024 and 2023 was $<ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_7_1_2024_To_9_30_2024_XquWrHsdeEmkK9F8qXf6qA" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:OperatingLeaseExpense" scale="6" id="Narr_GfoVkejXt0y2YuJLVObjag">37.1</ix:nonFraction> million and $<ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_7_1_2023_To_9_30_2023_S4fUa5HYuk6ZPxhUrn5m5w" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:OperatingLeaseExpense" scale="6" id="Narr__bS2Ruy9kUmSyl9ULZnGDw">25.7</ix:nonFraction> million, respectively. Operating lease expense for the nine months ended September 30, 2024 and 2023 was $<ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:OperatingLeaseExpense" scale="6" id="Narr_bCxOR3cyg0OxomVzT-AxDg">98.6</ix:nonFraction> million and $<ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_1_1_2023_To_9_30_2023_0vpBpKZIxEC_KY5z5G8rKA" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:OperatingLeaseExpense" scale="6" id="Narr_a4H_v2QNlEuR-EFBc8-xJw">61.7</ix:nonFraction> million, respectively.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">The lease terms generally range from <span style="-sec-ix-hidden:Hidden_ObkJycMSt02VXygggL-EOg;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">three</span></span> to <ix:nonNumeric contextRef="As_Of_9_30_2024_srt_RangeAxis_srt_MaximumMember_id1gXBxYjkO3jpdyCLZ7Aw" format="ixt-sec:durwordsen" name="us-gaap:LesseeOperatingLeaseTermOfContract" id="Narr_yfcG0ZBMFEOff9GnkDRfTg">ten years</ix:nonNumeric>. Some leases include <ix:nonFraction unitRef="Unit_Standard_Option_qbxE96-DSUeFUvu6RD_SkA" contextRef="Duration_1_1_2024_To_9_30_2024_srt_RangeAxis_srt_MinimumMember_3wO7ciKypUqVRHiqsG5ULA" decimals="INF" format="ixt-sec:numwordsen" name="fix:NumberOfOptionsToRenew" scale="0" id="Narr_djZ_cG4ur0SfOGd7yCU_VQ">one</ix:nonFraction> or <ix:nonNumeric contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ" format="ixt:booleantrue" name="us-gaap:LesseeOperatingLeaseExistenceOfOptionToExtend" id="Narr_YE9CM6kbcEieZ1Y1UGd05Q">more</ix:nonNumeric> options to renew, which may be exercised to extend the lease term. We include the exercise of lease renewal options in the lease term when it is reasonably certain that we will exercise the option and such exercise is at our sole discretion. In the third quarter of 2023, we commenced <ix:nonFraction unitRef="Unit_Standard_lease_U5sIX0HP0UOmAQUpJ4dJYg" contextRef="As_Of_9_30_2023_Cz0YiFrEwkyvL950Hk4Vxw" decimals="INF" format="ixt-sec:numwordsen" name="fix:NumberOfOffSiteConstructionRealEstateLeasesCommenced" scale="0" id="Narr_vcrVnsRPoEKumKFp14aRFw">two</ix:nonFraction> large real estate leases to support our expected growth in off-site construction, with lease terms longer than our typical terms. The weighted average remaining lease term for our operating leases was <ix:nonNumeric contextRef="As_Of_9_30_2024_um13j0l3zk2ITGaiED1DFA" format="ixt-sec:duryear" name="us-gaap:OperatingLeaseWeightedAverageRemainingLeaseTerm1" id="Narr_1zaYb1PotUCoVxzPH65f5w">11.1</ix:nonNumeric> years at September 30, 2024 and <ix:nonNumeric contextRef="As_Of_12_31_2023_X7eqeHRTF0mRLJW7InVDdA" format="ixt-sec:duryear" name="us-gaap:OperatingLeaseWeightedAverageRemainingLeaseTerm1" id="Narr_u3TPuesD40ysFuvsH14uuw">10.9</ix:nonNumeric> years at December 31, 2023.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">A majority of the Company&#8217;s real property leases are with individuals or entities with whom we have no other business relationship. However, in certain instances the Company enters into real property leases with current or former employees. Rent paid to related parties for the three months ended September 30, 2024 and 2023 was approximately $<ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_7_1_2024_To_9_30_2024_XquWrHsdeEmkK9F8qXf6qA" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:PaymentsForRent" scale="6" id="Narr_r5wb_TMvRUaf-XAPJ-jEDQ">2.4</ix:nonFraction> million and $<ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_7_1_2023_To_9_30_2023_S4fUa5HYuk6ZPxhUrn5m5w" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:PaymentsForRent" scale="6" id="Narr_RZXf1H-kh02M9OY95a_oVw">1.9</ix:nonFraction> million, respectively. Rent paid to related parties for the nine months ended September 30, 2024 and 2023 was approximately $<ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:PaymentsForRent" scale="6" id="Narr_tmZNPuOfBkORhCvC-eXF-Q">7.1</ix:nonFraction> million and $<ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_1_1_2023_To_9_30_2023_0vpBpKZIxEC_KY5z5G8rKA" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:PaymentsForRent" scale="6" id="Narr_hFZqCuumZUGSHaesG61JSw">5.6</ix:nonFraction> million, respectively.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">If we decide to cancel or terminate a lease before the end of its term, we would typically owe the lessor the remaining lease payments under the term of the lease. Our lease agreements do not contain any material residual value guarantees or material restrictive covenants. On rare occasions, we rent or sublease certain real estate assets that we no longer use to third parties.</p></ix:continuation><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><ix:nonNumeric contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ" name="fix:ScheduleOfLeaseAssetsAndLiabilitiesTableTextBlock" id="Tb_GU7zDOmja0O6-AOtf4kygg" escape="true"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">The following table summarizes the operating lease assets and liabilities included in the Consolidated Balance Sheet as follows (in thousands):</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:75%;"><tr style="height:1pt;"><td style="vertical-align:bottom;white-space:nowrap;width:60.43%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:3.15%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:15.19%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:3.47%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:3.04%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:14.69%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:60.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.15%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:15.19%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.47%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.69%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:middle;width:60.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:18.35%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">September 30, 2024</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.47%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:17.73%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">December 31, 2023</b></p></td></tr><tr><td style="vertical-align:middle;width:60.43%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Operating lease right-of-use assets</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.15%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:15.19%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="As_Of_9_30_2024_um13j0l3zk2ITGaiED1DFA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OperatingLeaseRightOfUseAsset" scale="3" id="Tc_qeq-OZePz0uEkqvXH53mEQ_3_2">225,301</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.47%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.69%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="As_Of_12_31_2023_X7eqeHRTF0mRLJW7InVDdA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OperatingLeaseRightOfUseAsset" scale="3" id="Tc_0miaFAOfkEK-h_dJAJ9K5w_3_5">205,712</ix:nonFraction></p></td></tr><tr><td style="vertical-align:middle;width:60.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Operating lease liabilities:</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.15%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:15.19%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.47%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.69%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:middle;width:60.43%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="-sec-ix-hidden:Hidden_CXTdk2oMZES1sCPvqd8w5w;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;white-space:pre-wrap;">   Other current liabilities</span></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.15%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:15.19%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="As_Of_9_30_2024_um13j0l3zk2ITGaiED1DFA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OperatingLeaseLiabilityCurrent" scale="3" id="Tc_NL4YE5SisEuZc0Nt8q9ARw_5_2">26,979</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.47%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.69%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="As_Of_12_31_2023_X7eqeHRTF0mRLJW7InVDdA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OperatingLeaseLiabilityCurrent" scale="3" id="Tc_x-CzvfQU20-GZev6-cikGw_5_5">24,426</ix:nonFraction></p></td></tr><tr><td style="vertical-align:middle;width:60.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="white-space:pre-wrap;">   Long-term operating lease liabilities</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.15%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:15.19%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="As_Of_9_30_2024_um13j0l3zk2ITGaiED1DFA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OperatingLeaseLiabilityNoncurrent" scale="3" id="Tc_o6rye5ZdwUy7vRlOCp7R8g_6_2">208,268</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.47%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.04%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.69%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="As_Of_12_31_2023_X7eqeHRTF0mRLJW7InVDdA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OperatingLeaseLiabilityNoncurrent" scale="3" id="Tc_4s988d-t2UKl2_25qkRtYQ_6_5">188,136</ix:nonFraction></p></td></tr><tr><td style="vertical-align:middle;width:60.43%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Total operating lease liabilities</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.15%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:15.19%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="As_Of_9_30_2024_um13j0l3zk2ITGaiED1DFA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OperatingLeaseLiability" scale="3" id="Tc_YaX3WIASS0KX4WQat0kwuQ_7_2">235,247</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.47%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.04%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.69%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="As_Of_12_31_2023_X7eqeHRTF0mRLJW7InVDdA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OperatingLeaseLiability" scale="3" id="Tc_2IP-3fvuv0ycgcTTM3yc4A_7_5">212,562</ix:nonFraction></p></td></tr></table></ix:nonNumeric><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><ix:nonNumeric contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ" name="us-gaap:LesseeOperatingLeaseLiabilityMaturityTableTextBlock" id="Tb_84f2hEtVd0CoonCTtSmolw" escape="true"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">The maturities of operating lease liabilities are as follows (in thousands):</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:79.99%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:85.46%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;width:2.54%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;width:1.54%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;width:10.44%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:85.46%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Year ending December 31&#8212;</p></td><td style="vertical-align:bottom;width:2.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;width:1.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;width:10.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;"><span style="margin-left:0pt;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:85.46%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">2024 (excluding the nine months ended September 30, 2024)</p></td><td style="vertical-align:bottom;width:2.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;"><span style="margin-left:0pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;width:1.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="As_Of_9_30_2024_um13j0l3zk2ITGaiED1DFA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:LesseeOperatingLeaseLiabilityPaymentsRemainderOfFiscalYear" scale="3" id="Tc_VyqptZOGZUCad3a0i_XYlQ_2_3">10,146</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:85.46%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">2025</p></td><td style="vertical-align:bottom;width:2.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;"><span style="margin-left:0pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;width:1.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="As_Of_9_30_2024_um13j0l3zk2ITGaiED1DFA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths" scale="3" id="Tc_AKKtgTaBgUy6W7VWFb0r3A_3_3">39,434</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:85.46%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">2026</p></td><td style="vertical-align:bottom;width:2.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;"><span style="margin-left:0pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;width:1.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="As_Of_9_30_2024_um13j0l3zk2ITGaiED1DFA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearTwo" scale="3" id="Tc_Zl_vks7bgUuMSufI6dAzkA_4_3">35,646</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:85.46%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">2027</p></td><td style="vertical-align:bottom;width:2.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;"><span style="margin-left:0pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;width:1.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="As_Of_9_30_2024_um13j0l3zk2ITGaiED1DFA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearThree" scale="3" id="Tc_FqFvVggv5EC3e3IwY_2_Pw_5_3">31,101</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:85.46%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">2028</p></td><td style="vertical-align:bottom;width:2.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;"><span style="margin-left:0pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;width:1.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="As_Of_9_30_2024_um13j0l3zk2ITGaiED1DFA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearFour" scale="3" id="Tc_q-c66-7MHkCDLcQ3BGqHTQ_6_3">27,234</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:85.46%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">Thereafter</p></td><td style="vertical-align:bottom;width:2.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;"><span style="margin-left:0pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;width:1.54%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.44%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="As_Of_9_30_2024_um13j0l3zk2ITGaiED1DFA" decimals="-3" format="ixt:numdotdecimal" name="fix:LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFour" scale="3" id="Tc_JeyuGxsV4kCq5vHcJ329Ww_7_3">189,877</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:85.46%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 24pt;">Total lease payments</p></td><td style="vertical-align:bottom;width:2.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 24pt;"><span style="margin-left:0pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;width:1.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="As_Of_9_30_2024_um13j0l3zk2ITGaiED1DFA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:LesseeOperatingLeaseLiabilityPaymentsDue" scale="3" id="Tc_Eczfd0VvT0OulzB6oCnOrA_8_3">333,438</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:85.46%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 24pt;">Less&#8212;present value discount</p></td><td style="vertical-align:bottom;width:2.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 24pt;"><span style="margin-left:0pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;width:1.54%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.44%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="As_Of_9_30_2024_um13j0l3zk2ITGaiED1DFA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:LesseeOperatingLeaseLiabilityUndiscountedExcessAmount" scale="3" id="Tc_RHeUr1IrpkWAPUi_c6wpyg_9_3">98,191</ix:nonFraction>)</p></td></tr><tr><td style="vertical-align:bottom;width:85.46%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 24pt;">Present value of operating lease liabilities</p></td><td style="vertical-align:bottom;width:2.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 24pt;"><span style="margin-left:0pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;width:1.54%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.44%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="As_Of_9_30_2024_um13j0l3zk2ITGaiED1DFA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OperatingLeaseLiability" scale="3" id="Tc_ZYn57v9Fi0iNXkdI3F3GcQ_10_3">235,247</ix:nonFraction></p></td></tr></table></ix:nonNumeric><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></ix:continuation></div></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:12pt 0pt 0pt 0pt;">19</p></div></div>
<div style="background-color:#000000;clear:both;height:2pt;page-break-after:always;width:79.41%;border:0;margin:30pt 10.29% 30pt 10.29%;"></div><div style="max-width:100%;padding-left:10.29%;padding-right:10.29%;position:relative;"><div style="margin-top:21.6pt;min-height:41.4pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 30pt 0pt;"><a href="#Toc"><span style="font-style:normal;font-weight:normal;">Table of Contents</span></a></p></div><div style="clear:both;margin-left:-10.0pt;margin-right:-10.0pt;max-width:100%;position:relative;width:calc(100% + 20.0pt);"><div style="padding-left:10pt;padding-right:10pt;position:relative;width:100%;"><a id="_8964c8c8_8680_42d6_ab42_3e0453e84769"></a><a id="Tc_HNQiqmnluUihusCm2rEvfA_1_1"></a><a id="Tc_suJ9TT5-ZE2OIYSluYUBCg_1_7"></a><a id="Tc_1Zb8l4yT2kmz_NurmhXfcQ_2_1"></a><a id="Tc_yh8ik2AHTU6Y3wgm8ulAFw_2_4"></a><a id="Tc__RM4ZRN2b0K7PRn-xx4vvQ_2_7"></a><a id="Tc_aApWiuBzpkCmCqmZQ6H-OQ_2_10"></a><a id="Tc_9XcgJnAqYEGFajMRnfH8vg_3_0"></a><a id="Tc_ncBz-bMcpUOsM7lfneUYbg_3_1"></a><a id="Tc_Fo3DORoc00WW4eTHeRuV4w_3_4"></a><a id="Tc_SdSXaMY27EaI-3jD8xd7Hw_3_7"></a><a id="Tc_X1pzhHcelEuc9eEi23kgoQ_3_10"></a><a id="Tc_50ZvIGgsOEKOCGzAzaDZVQ_4_0"></a><a id="Tc_F1YT_isR8U6MH1IuU1CxrA_4_1"></a><a id="Tc_8pOLenqxX0eitV5O6zIyGQ_4_4"></a><a id="Tc_w9R5tjxrmUqCCdY20gbw0w_4_7"></a><a id="Tc_ZuUOokfEVUmD6Y_7lyhMZA_4_10"></a><ix:continuation id="Tb_6RRwlPfS-UuRq3y9MgQPrA_cont2"><ix:nonNumeric contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ" name="fix:ScheduleOfSupplementalInformationRelatedToLeasesTableTextBlock" id="Tb_l8eFiqoYUk-M-RrFGWXyog" escape="true"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">Supplemental information related to operating leases was as follows (in thousands):</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:middle;width:48.32%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="position:absolute;top:50%;transform:translate(0,-50%);width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.29%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.68%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.28%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.59%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.25%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.22%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.61%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.24%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.21%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:48.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="5" style="vertical-align:bottom;white-space:nowrap;width:25.47%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Three Months Ended September 30, </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="5" style="vertical-align:bottom;white-space:nowrap;width:24.55%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Nine Months Ended September 30, </b></p></td></tr><tr><td style="vertical-align:bottom;width:48.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.9%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2024</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.68%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.88%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2023</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2024</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.61%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.46%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2023</b></p></td></tr><tr><td style="vertical-align:middle;width:48.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">Cash paid for amounts included in the measurement of operating lease liabilities</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_7_1_2024_To_9_30_2024_XquWrHsdeEmkK9F8qXf6qA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OperatingLeasePayments" scale="3" id="Tc_sOcs_NZI-E2_bmteDgP9yA_3_2">10,061</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.68%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.28%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.59%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_7_1_2023_To_9_30_2023_S4fUa5HYuk6ZPxhUrn5m5w" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OperatingLeasePayments" scale="3" id="Tc_ZAZFvT3CZkOXjPkiHRCuOw_3_5">7,293</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.25%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OperatingLeasePayments" scale="3" id="Tc_LhWfiFhXdk6rUWyl9QxKsg_3_8">29,377</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.61%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.21%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_1_1_2023_To_9_30_2023_0vpBpKZIxEC_KY5z5G8rKA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OperatingLeasePayments" scale="3" id="Tc_E5LbKfqWlUS-29uK_4A-Ew_3_11">21,362</ix:nonFraction></p></td></tr><tr><td style="vertical-align:middle;width:48.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">Operating lease right-of-use assets obtained in exchange for lease liabilities</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_7_1_2024_To_9_30_2024_XquWrHsdeEmkK9F8qXf6qA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability" scale="3" id="Tc_iZD1ePGFVUK-lBSDzQK5sw_4_2">6,657</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.68%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.28%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.59%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_7_1_2023_To_9_30_2023_S4fUa5HYuk6ZPxhUrn5m5w" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability" scale="3" id="Tc_p3FjGqhccUGt-UhYgFLp0w_4_5">82,352</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.25%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability" scale="3" id="Tc_3vi4hHs4H06fixP57Msm7w_4_8">41,989</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.61%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.21%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_1_1_2023_To_9_30_2023_0vpBpKZIxEC_KY5z5G8rKA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability" scale="3" id="Tc_P3kSSbNlvkaKkmxfbaNL_A_4_11">98,102</ix:nonFraction></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></ix:nonNumeric></ix:continuation><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p><ix:nonNumeric contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ" name="us-gaap:CommitmentsAndContingenciesDisclosureTextBlock" id="Tb_vvwT2FxilUuYCA7fG4fLqA" continuedAt="Tb_vvwT2FxilUuYCA7fG4fLqA_cont1" escape="true"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">9. Commitments and Contingencies</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 0pt 36pt;"><span style="font-style:italic;font-weight:bold;margin-left:0pt;visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 0pt 36pt;"><span style="font-style:italic;font-weight:bold;">Claims and Lawsuits</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">We are subject to certain legal and regulatory claims, including lawsuits arising in the normal course of business. We maintain various insurance coverages to minimize financial risk associated with these claims. We have estimated and provided accruals for probable losses and related legal fees associated with certain litigation in the accompanying consolidated financial statements. While we cannot predict the outcome of these proceedings, in management&#8217;s opinion and based on reports of counsel, any liability arising from these matters individually and in the aggregate will not have a material effect on our operating results, cash flows or financial condition, after giving effect to provisions already recorded.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">In the first quarter of 2023, we recorded a pre-tax gain of $<ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_1_1_2023_To_3_31_2023_us-gaap_LossContingenciesByNatureOfContingencyAxis_fix_DisputeWithCustomerMember_bDYxGk5BM02TJTfRtOn_AA" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:GainLossRelatedToLitigationSettlement" scale="6" id="Narr_Z2LWDL51eEayoxuoxqcUGQ">6.8</ix:nonFraction> million from legal developments and settlements that primarily relate to disputes with customers regarding the outcome of completed projects as well as an obligation to perform subcontract work under two executed letters of intent for subsequent projects that we believed were not enforceable. The pre-tax gain of $<ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_1_1_2023_To_3_31_2023_us-gaap_LossContingenciesByNatureOfContingencyAxis_fix_DisputeWithCustomerMember_bDYxGk5BM02TJTfRtOn_AA" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:GainLossRelatedToLitigationSettlement" scale="6" id="Narr_yQ1g6RtExE2T7iuiua8c3Q">6.8</ix:nonFraction> million was recorded as an increase in gross profit of $<ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_1_1_2023_To_3_31_2023_us-gaap_IncomeStatementLocationAxis_fix_GrossProfitMember_us-gaap_LossContingenciesByNatureOfContingencyAxis_fix_DisputeWithCustomerMember_tF_jasNoLEOUH0zZxyqiUg" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:GainLossRelatedToLitigationSettlement" scale="6" id="Narr_2jAdAdp9okCH3O724YeYmw">6.6</ix:nonFraction> million, a reduction in SG&amp;A of $<ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_1_1_2023_To_3_31_2023_us-gaap_IncomeStatementLocationAxis_us-gaap_SellingGeneralAndAdministrativeExpensesMember_us-gaap_LossContingenciesByNatureOfContingencyAxis_fix_DisputeWithCustomerMember_xrkRNEHpmE6z7qbWjo9S-A" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:GainLossRelatedToLitigationSettlement" sign="-" scale="6" id="Narr_FvEwIePIUUmeADNBcxOf3w">0.7</ix:nonFraction> million, an increase in interest income of $<ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_1_1_2023_To_3_31_2023_us-gaap_IncomeStatementLocationAxis_us-gaap_InterestIncomeMember_us-gaap_LossContingenciesByNatureOfContingencyAxis_fix_DisputeWithCustomerMember_fYWoQjLFtkuLvfPKSv0Eug" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:GainLossRelatedToLitigationSettlement" scale="6" id="Narr__pCivzyrIkCtQbXrZsUF2w">1.3</ix:nonFraction> million and an increase in the change in fair value of contingent earn-out obligations expense of $<ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_1_1_2023_To_3_31_2023_us-gaap_IncomeStatementLocationAxis_fix_BusinessCombinationContingentConsiderationChangeInContingentConsiderationLiabilityMember_us-gaap_LossContingenciesByNatureOfContingencyAxis_fix_DisputeWithCustomerMember_W_Dvrlx8X0K4cRCKRmGtlQ" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:GainLossRelatedToLitigationSettlement" sign="-" scale="6" id="Narr_kORjp8DE4E6efB6KRwUqig">1.8</ix:nonFraction> million in our Consolidated Statements of Operations.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">As of September 30, 2024, we recorded an accrual for unresolved matters, which is not material to our financial statements, based on our analysis of likely outcomes related to the respective matters; however, it is possible that the ultimate outcome and associated costs will deviate from our estimates and that, in the event of an unexpectedly adverse outcome, we may experience additional costs and expenses in future periods.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 0pt 36pt;"><span style="margin-left:0pt;visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 0pt 36pt;"><span style="font-style:italic;font-weight:bold;">Surety</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">Many customers, particularly in connection with new construction, require us to post performance and payment bonds issued by a financial institution known as a surety. If we fail to perform under the terms of a contract or to pay subcontractors and vendors who provided goods or services under a contract, the customer may demand that the surety make payments or provide services under the bond. We must reimburse the surety for any expenses or outlays it incurs. </p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">Current market conditions for surety markets and bonding capacity are adequate, with acceptable terms and conditions. Historically, approximately <ix:nonFraction unitRef="Unit_Standard_pure_0GIr2wv4rk-T38a8Lz0A5w" contextRef="Duration_1_1_2024_To_9_30_2024_srt_RangeAxis_srt_MinimumMember_us-gaap_LossContingenciesByNatureOfContingencyAxis_us-gaap_SuretyBondMember_u-DTSuPKZ0yIEXxgdm3JPA" decimals="2" format="ixt:numdotdecimal" name="fix:PercentageOfBusinessWhichHasRequiredBonds" scale="-2" id="Narr_ndjdDe0P1Ei702w45Zezag">10</ix:nonFraction>% to <ix:nonFraction unitRef="Unit_Standard_pure_0GIr2wv4rk-T38a8Lz0A5w" contextRef="Duration_1_1_2024_To_9_30_2024_srt_RangeAxis_srt_MaximumMember_us-gaap_LossContingenciesByNatureOfContingencyAxis_us-gaap_SuretyBondMember_vo8hvaWZp0aEPxrNNFY3Dw" decimals="2" format="ixt:numdotdecimal" name="fix:PercentageOfBusinessWhichHasRequiredBonds" scale="-2" id="Narr_V_jIQlle2UupUOyNoG9l9g">20</ix:nonFraction>% of our business has required bonds. While we currently have strong surety relationships to support our bonding needs, future market conditions or changes in the sureties&#8217; assessment of our operating and financial risk could cause the sureties to decline to issue bonds for our work. If that were to occur, the alternatives include doing more business that does not require bonds, posting other forms of collateral for project performance, such as letters of credit or cash, and seeking bonding capacity from other sureties. We would likely also encounter concerns from customers, suppliers and other market participants as to our creditworthiness. While we believe our general operating and financial characteristics would enable us to ultimately respond effectively to an interruption in the availability of bonding capacity, such an interruption would likely cause our revenue and profits to decline in the near term.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 0pt 36pt;"><span style="font-style:italic;font-weight:bold;">Self-Insurance</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">We are substantially self-insured for workers&#8217; compensation, employer&#8217;s liability, auto liability, general liability and employee group health claims, in view of the relatively high per-incident deductibles we absorb under our insurance arrangements for these risks. Losses are estimated and accrued based upon known facts, historical trends and industry </p></ix:nonNumeric></div></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:12pt 0pt 0pt 0pt;">20</p></div></div>
<div style="background-color:#000000;clear:both;height:2pt;page-break-after:always;width:79.41%;border:0;margin:30pt 10.29% 30pt 10.29%;"></div><div style="max-width:100%;padding-left:10.29%;padding-right:10.29%;position:relative;"><div style="margin-top:21.6pt;min-height:41.4pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 30pt 0pt;"><a href="#Toc"><span style="font-style:normal;font-weight:normal;">Table of Contents</span></a></p></div><div style="clear:both;margin-left:-10.0pt;margin-right:-10.0pt;max-width:100%;position:relative;width:calc(100% + 20.0pt);"><div style="padding-left:10pt;padding-right:10pt;position:relative;width:100%;"><ix:continuation id="Tb_vvwT2FxilUuYCA7fG4fLqA_cont1"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">averages. Estimated losses in excess of our deductible, which have not already been paid, are included in our accrual with a corresponding receivable from our insurance carrier. Loss estimates associated with the larger and longer-developing risks, such as workers&#8217; compensation, auto liability and general liability, are reviewed by a third-party actuary quarterly.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></ix:continuation><a id="_b079bf3b_8a96_4b85_914b_e436d1138ea5"></a><a id="Tc_nCEjN_qIu0qgmenRxSRXsw_1_2"></a><a id="Tc_4sDsHRVQ40WLmtoMwYbAQQ_1_6"></a><a id="Tc_Q84x_ZCBNkqej3q4ZXE92A_2_2"></a><a id="Tc_TMmVHIkxDkizm23bdbih5w_2_6"></a><a id="Tc_n10AjJlOyEmjXvLDpo6Ezw_3_2"></a><a id="Tc_AhzVeV_Pd0eG0uTPev9lsw_3_4"></a><a id="Tc_KIjmJcjbmEK8960P_BesLw_3_6"></a><a id="Tc_zPoWKAMn10e3CKlQGn9-2w_3_8"></a><a id="Tc_a30aBJOpCUi0CIn2lPktmQ_4_0"></a><a id="Tc_5PNRr9XUf0qkVTG71eanig_5_0"></a><a id="Tc_yv2JKughZU-jJfO0bScD1g_6_0"></a><a id="Tc_wpx2UuubgUOvkqLG-Zn8TA_7_0"></a><a id="Tc_fSeXjSMCJ02MLXdEOgT8vw_8_0"></a><a id="Tc_ue1swyrbtEOhrRwKi7Igkg_9_0"></a><ix:nonNumeric contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ" name="us-gaap:StockholdersEquityNoteDisclosureTextBlock" id="Tb_M8BDGHM5WUmaU2tzkfwpqA" escape="true"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">10. Stockholders&#8217; Equity</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 0pt 36pt;"><span style="font-style:italic;font-weight:bold;margin-left:0pt;visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 0pt 36pt;"><span style="font-style:italic;font-weight:bold;">Earnings Per Share</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">Basic earnings per share (&#8220;EPS&#8221;) is computed by dividing net income by the weighted average number of shares of common stock outstanding during the year. Diluted EPS is computed considering the dilutive effect of stock options, restricted stock, restricted stock units and performance stock units. The vesting of unvested, contingently issuable performance stock units is based on the achievement of certain earnings per share targets and total shareholder return. These shares are considered contingently issuable shares for purposes of calculating diluted earnings per share. These shares are not included in the diluted earnings per share denominator until the performance criteria are met, if it is assumed that the end of the reporting period was the end of the contingency period.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">Unvested restricted stock, restricted stock units and performance stock units are included in diluted earnings per share, weighted outstanding until the shares and units vest. Upon vesting, the vested restricted stock, restricted stock units and performance stock units are included in basic earnings per share weighted outstanding from the vesting date.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">There were <ix:nonFraction unitRef="Unit_Standard_shares_YK1c03HsOkOiDLLsAeYHoA" contextRef="Duration_1_1_2023_To_9_30_2023_0vpBpKZIxEC_KY5z5G8rKA" decimals="-5" format="ixt-sec:numwordsen" name="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" scale="6" id="Narr_gkd1_UPXr0q5r-I14yo-_g"><ix:nonFraction unitRef="Unit_Standard_shares_YK1c03HsOkOiDLLsAeYHoA" contextRef="Duration_7_1_2023_To_9_30_2023_S4fUa5HYuk6ZPxhUrn5m5w" decimals="-5" format="ixt-sec:numwordsen" name="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" scale="6" id="Narr_Zetefe9jtEWvujOlWdC5ww"><ix:nonFraction unitRef="Unit_Standard_shares_YK1c03HsOkOiDLLsAeYHoA" contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ" decimals="-5" format="ixt-sec:numwordsen" name="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" scale="6" id="Narr_F-bqOKqUWkymeZS0VI-Zpw"><ix:nonFraction unitRef="Unit_Standard_shares_YK1c03HsOkOiDLLsAeYHoA" contextRef="Duration_7_1_2024_To_9_30_2024_XquWrHsdeEmkK9F8qXf6qA" decimals="-5" format="ixt-sec:numwordsen" name="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" scale="6" id="Narr_PA7yVzhJWk6SW0PQcnxOEg">zero</ix:nonFraction></ix:nonFraction></ix:nonFraction></ix:nonFraction> anti-dilutive stock options excluded from the calculation of diluted EPS for the three and nine months ended September 30, 2024 and 2023. </p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><ix:nonNumeric contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ" name="us-gaap:ScheduleOfWeightedAverageNumberOfSharesTableTextBlock" id="Tb_IhT0TQlK3Ua-pMTzudWBqw" escape="true"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">The following table reconciles the number of shares outstanding with the number of shares used in computing basic and diluted earnings per share for each of the periods presented (in thousands):</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:90%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:60.12%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.82%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.39%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.82%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:7.64%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.82%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.4%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.82%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:7.65%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:0.45%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:60.12%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td colspan="3" style="vertical-align:bottom;white-space:nowrap;width:17.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Three Months Ended </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td colspan="3" style="vertical-align:bottom;white-space:nowrap;width:17.88%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Nine Months Ended </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.45%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:60.12%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="3" style="vertical-align:bottom;white-space:nowrap;width:17.86%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">September 30, </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="3" style="vertical-align:bottom;white-space:nowrap;width:17.88%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">September 30, </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.45%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:60.12%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.39%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2024</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.64%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2023</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.4%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2024</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.65%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2023</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.45%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td></tr><tr><td style="vertical-align:bottom;width:60.12%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Common shares outstanding, end of period</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.39%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_shares_YK1c03HsOkOiDLLsAeYHoA" contextRef="As_Of_9_30_2024_um13j0l3zk2ITGaiED1DFA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:CommonStockSharesOutstanding" scale="3" id="Tc_iB0aQ4BFUkGjtTIbvTF1QQ_4_2">35,593</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_shares_YK1c03HsOkOiDLLsAeYHoA" contextRef="As_Of_9_30_2023_Cz0YiFrEwkyvL950Hk4Vxw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:CommonStockSharesOutstanding" scale="3" id="Tc_1c3nWC4s_kqn9fTl6H7ecQ_4_4">35,760</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.4%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_shares_YK1c03HsOkOiDLLsAeYHoA" contextRef="As_Of_9_30_2024_um13j0l3zk2ITGaiED1DFA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:CommonStockSharesOutstanding" scale="3" id="Tc_lowf-3cfFUWksx4nOMZg5Q_4_6">35,593</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.65%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_shares_YK1c03HsOkOiDLLsAeYHoA" contextRef="As_Of_9_30_2023_Cz0YiFrEwkyvL950Hk4Vxw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:CommonStockSharesOutstanding" scale="3" id="Tc_NnTpoKgrnEiDgUycO0LGlg_4_8">35,760</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.45%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:60.12%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Effect of using weighted average common shares outstanding</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.39%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_shares_YK1c03HsOkOiDLLsAeYHoA" contextRef="Duration_7_1_2024_To_9_30_2024_XquWrHsdeEmkK9F8qXf6qA" decimals="-3" format="ixt:numdotdecimal" name="fix:EffectOfUsingWeightedAverageCommonSharesOutstanding" scale="3" id="Tc_MgrN1pFaf06nS1Ryh8GCmw_5_2">76</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.64%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_shares_YK1c03HsOkOiDLLsAeYHoA" contextRef="Duration_7_1_2023_To_9_30_2023_S4fUa5HYuk6ZPxhUrn5m5w" decimals="-3" format="ixt:numdotdecimal" name="fix:EffectOfUsingWeightedAverageCommonSharesOutstanding" scale="3" id="Tc_hv8CN1P870uLKXT-dergRw_5_4">60</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.4%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_shares_YK1c03HsOkOiDLLsAeYHoA" contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ" decimals="-3" format="ixt:numdotdecimal" name="fix:EffectOfUsingWeightedAverageCommonSharesOutstanding" scale="3" id="Tc_Z9NLvq4odkGVeokAojke6g_5_6">125</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.65%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_shares_YK1c03HsOkOiDLLsAeYHoA" contextRef="Duration_1_1_2023_To_9_30_2023_0vpBpKZIxEC_KY5z5G8rKA" decimals="-3" format="ixt:numdotdecimal" name="fix:EffectOfUsingWeightedAverageCommonSharesOutstanding" scale="3" id="Tc_5GXJVExr1E6_EOush8o4Xg_5_8">59</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.45%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:60.12%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Shares used in computing earnings per share&#8212;basic</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.39%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_shares_YK1c03HsOkOiDLLsAeYHoA" contextRef="Duration_7_1_2024_To_9_30_2024_XquWrHsdeEmkK9F8qXf6qA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:WeightedAverageNumberOfSharesOutstandingBasic" scale="3" id="Tc_fuM5St-Azk-DRikP3qeZqA_6_2">35,669</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_shares_YK1c03HsOkOiDLLsAeYHoA" contextRef="Duration_7_1_2023_To_9_30_2023_S4fUa5HYuk6ZPxhUrn5m5w" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:WeightedAverageNumberOfSharesOutstandingBasic" scale="3" id="Tc_ruzA9mQUqk6pt-SfKxwtyQ_6_4">35,820</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.4%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_shares_YK1c03HsOkOiDLLsAeYHoA" contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:WeightedAverageNumberOfSharesOutstandingBasic" scale="3" id="Tc_OMcjrQgJUkCcLCPHOMJ13Q_6_6">35,718</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.65%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_shares_YK1c03HsOkOiDLLsAeYHoA" contextRef="Duration_1_1_2023_To_9_30_2023_0vpBpKZIxEC_KY5z5G8rKA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:WeightedAverageNumberOfSharesOutstandingBasic" scale="3" id="Tc_dkXhGcJGoUGDtMpuqDMy2Q_6_8">35,819</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.45%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:60.12%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Effect of shares issuable under stock option plans based on the treasury stock method</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.39%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_shares_YK1c03HsOkOiDLLsAeYHoA" contextRef="Duration_7_1_2024_To_9_30_2024_XquWrHsdeEmkK9F8qXf6qA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncrementalCommonSharesAttributableToShareBasedPaymentArrangements" scale="3" id="Tc_bVemL20t-U-JTKphAofNsA_7_2">30</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_shares_YK1c03HsOkOiDLLsAeYHoA" contextRef="Duration_7_1_2023_To_9_30_2023_S4fUa5HYuk6ZPxhUrn5m5w" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncrementalCommonSharesAttributableToShareBasedPaymentArrangements" scale="3" id="Tc_H-UBizJM70yiDTdaJfV73Q_7_4">28</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.4%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_shares_YK1c03HsOkOiDLLsAeYHoA" contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncrementalCommonSharesAttributableToShareBasedPaymentArrangements" scale="3" id="Tc_cm-Vai5Ba0CjKIB7fQgHBA_7_6">30</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_shares_YK1c03HsOkOiDLLsAeYHoA" contextRef="Duration_1_1_2023_To_9_30_2023_0vpBpKZIxEC_KY5z5G8rKA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncrementalCommonSharesAttributableToShareBasedPaymentArrangements" scale="3" id="Tc_-IxMr2vLik-a3XjaL_ZWqg_7_8">26</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.45%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:60.12%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Effect of restricted and contingently issuable shares</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.39%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_shares_YK1c03HsOkOiDLLsAeYHoA" contextRef="Duration_7_1_2024_To_9_30_2024_XquWrHsdeEmkK9F8qXf6qA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncrementalCommonSharesAttributableToContingentlyIssuableShares" scale="3" id="Tc_ixcSghWC2EWw-1ylNKLMOw_8_2">56</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.64%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_shares_YK1c03HsOkOiDLLsAeYHoA" contextRef="Duration_7_1_2023_To_9_30_2023_S4fUa5HYuk6ZPxhUrn5m5w" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncrementalCommonSharesAttributableToContingentlyIssuableShares" scale="3" id="Tc_7tuFXL_SNU-7z516FyEVZA_8_4">69</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.4%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_shares_YK1c03HsOkOiDLLsAeYHoA" contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncrementalCommonSharesAttributableToContingentlyIssuableShares" scale="3" id="Tc_OwhARJK-G0WY7m2z0E1GiQ_8_6">56</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.65%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_shares_YK1c03HsOkOiDLLsAeYHoA" contextRef="Duration_1_1_2023_To_9_30_2023_0vpBpKZIxEC_KY5z5G8rKA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncrementalCommonSharesAttributableToContingentlyIssuableShares" scale="3" id="Tc_BnfkV0EqRUqhE76I7MAKiA_8_8">65</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.45%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:60.12%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Shares used in computing earnings per share&#8212;diluted</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.39%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_shares_YK1c03HsOkOiDLLsAeYHoA" contextRef="Duration_7_1_2024_To_9_30_2024_XquWrHsdeEmkK9F8qXf6qA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding" scale="3" id="Tc_bBiQtNlkTkaeeyevtiiKog_9_2">35,755</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.64%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_shares_YK1c03HsOkOiDLLsAeYHoA" contextRef="Duration_7_1_2023_To_9_30_2023_S4fUa5HYuk6ZPxhUrn5m5w" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding" scale="3" id="Tc_fQH392I43061FdkTTqvV8A_9_4">35,917</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.4%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_shares_YK1c03HsOkOiDLLsAeYHoA" contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding" scale="3" id="Tc_2bTfCUFIUkyt3HT8c_fcrg_9_6">35,804</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.65%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_shares_YK1c03HsOkOiDLLsAeYHoA" contextRef="Duration_1_1_2023_To_9_30_2023_0vpBpKZIxEC_KY5z5G8rKA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding" scale="3" id="Tc_VSp3VP_CtE6VFFhpGEEN0g_9_8">35,910</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.45%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td></tr></table></ix:nonNumeric><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 0pt 36pt;"><span style="font-style:italic;font-weight:bold;">Share Repurchase Program</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 0pt 36pt;"><span style="margin-left:0pt;visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">On March&#160;29, 2007, our Board of Directors (the &#8220;Board&#8221;) approved a stock repurchase program to acquire up to <ix:nonFraction unitRef="Unit_Standard_shares_YK1c03HsOkOiDLLsAeYHoA" contextRef="As_Of_3_29_2007_us-gaap_PlanNameAxis_fix_StockRepurchaseProgram2007Member_IxnfDnQA_k-o75uXlRzSfQ" decimals="-5" format="ixt:numdotdecimal" name="srt:StockRepurchaseProgramNumberOfSharesAuthorizedToBeRepurchased" scale="6" id="Narr_8Qqai_0dnUuAGyse3UtUbw">1.0</ix:nonFraction>&#160;million shares of our outstanding common stock. Subsequently, the Board has from time to time increased the number of shares that may be acquired under the program and approved extensions of the program. On August 7, 2024, the Board approved an extension to the program by increasing the shares authorized for repurchase by <ix:nonFraction unitRef="Unit_Standard_shares_YK1c03HsOkOiDLLsAeYHoA" contextRef="As_Of_8_7_2024_us-gaap_PlanNameAxis_fix_StockRepurchaseProgram2007Member_zuupYSp1G0-EXbeu-NSt3g" decimals="-5" format="ixt:numdotdecimal" name="srt:StockRepurchaseProgramNumberOfSharesAuthorizedToBeRepurchased" scale="6" id="Narr_RTjsiJR8lEGgx_bNoUiQww">0.4</ix:nonFraction> million shares. Since the inception of the repurchase program, the Board has approved <ix:nonFraction unitRef="Unit_Standard_shares_YK1c03HsOkOiDLLsAeYHoA" contextRef="As_Of_9_30_2024_us-gaap_PlanNameAxis_fix_StockRepurchaseProgram2007Member_v-c1j9gAuk-TEjUkrEyayg" decimals="-5" format="ixt:numdotdecimal" name="srt:StockRepurchaseProgramNumberOfSharesAuthorizedToBeRepurchased" scale="6" id="Narr_OVESo2EUhUya4SX60CVn6g">11.4</ix:nonFraction>&#160;million shares to be repurchased. As of September 30, 2024, we have repurchased a cumulative total of <ix:nonFraction unitRef="Unit_Standard_shares_YK1c03HsOkOiDLLsAeYHoA" contextRef="Duration_3_29_2007_To_9_30_2024_us-gaap_PlanNameAxis_fix_StockRepurchaseProgram2007Member_M1s8HVAzp0WW5UGq9xvC5w" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:TreasuryStockSharesAcquired" scale="6" id="Narr_kjkrgKl23UOHqIisVya4tw">10.4</ix:nonFraction>&#160;million shares at an average price of $<ix:nonFraction unitRef="Unit_Divide_USD_shares_0ZfRDiWNfk6kp61F6IdjQA" contextRef="Duration_3_29_2007_To_9_30_2024_us-gaap_PlanNameAxis_fix_StockRepurchaseProgram2007Member_M1s8HVAzp0WW5UGq9xvC5w" decimals="2" format="ixt:numdotdecimal" name="us-gaap:TreasuryStockAcquiredAverageCostPerShare" scale="0" id="Narr_714cn2B-TU293eoftxuKxA">29.99</ix:nonFraction> per share under the repurchase program.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">The share repurchases will be made from time to time at our discretion in the open market or privately negotiated transactions, as permitted by securities laws and other legal requirements, and subject to market conditions and other factors. The Board may modify, suspend, extend or terminate the program at any time. During the nine months ended September 30, 2024, we repurchased <ix:nonFraction unitRef="Unit_Standard_shares_YK1c03HsOkOiDLLsAeYHoA" contextRef="Duration_1_1_2024_To_9_30_2024_srt_RangeAxis_srt_MaximumMember_us-gaap_PlanNameAxis_fix_StockRepurchaseProgram2007Member_Ov88TD7fr0q4sout0EvbgQ" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:TreasuryStockSharesAcquired" scale="6" id="Narr_0ooY1iDH8EOR_LxN828PSQ">0.1</ix:nonFraction> million shares for approximately $<ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_1_1_2024_To_9_30_2024_us-gaap_PlanNameAxis_fix_StockRepurchaseProgram2007Member_uKGUpz4UMU-zuY1h4cUX2Q" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:PaymentsForRepurchaseOfCommonStock" scale="6" id="Narr_dK_BFeEs0U6FVQHhYaKjdw">42.3</ix:nonFraction> million at an average price of $<ix:nonFraction unitRef="Unit_Divide_USD_shares_0ZfRDiWNfk6kp61F6IdjQA" contextRef="Duration_1_1_2024_To_9_30_2024_us-gaap_PlanNameAxis_fix_StockRepurchaseProgram2007Member_uKGUpz4UMU-zuY1h4cUX2Q" decimals="2" format="ixt:numdotdecimal" name="us-gaap:TreasuryStockAcquiredAverageCostPerShare" scale="0" id="Narr_Fexgdi1urEyEvhZAtEOjPA">310.02</ix:nonFraction> per share. </p></ix:nonNumeric><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></div></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:12pt 0pt 0pt 0pt;">21</p></div></div>
<div style="background-color:#000000;clear:both;height:2pt;page-break-after:always;width:79.41%;border:0;margin:30pt 10.29% 30pt 10.29%;"></div><div style="max-width:100%;padding-left:10.29%;padding-right:10.29%;position:relative;"><div style="margin-top:21.6pt;min-height:41.4pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 30pt 0pt;"><a href="#Toc"><span style="font-style:normal;font-weight:normal;">Table of Contents</span></a></p></div><div style="clear:both;margin-left:-10.0pt;margin-right:-10.0pt;max-width:100%;position:relative;width:calc(100% + 20.0pt);"><div style="padding-left:10pt;padding-right:10pt;position:relative;width:100%;"><a id="Tc_xjzc0Nr9ekejstks5k_Aag_1_2"></a><a id="Tc_cP02iVHJ0Um6Qu46kLDDxA_2_2"></a><a id="Tc_FIxJ5novpkmxjL8hE2XPfQ_2_5"></a><a id="Tc_GySWIF3SjEqcQzrhKDGAIw_2_8"></a><a id="Tc_AJUv0J1IWkaHyKIIXtQRbQ_2_11"></a><a id="Tc_M6WDRzkC1ECPWIVDlCkJ2Q_3_0"></a><a id="Tc_P9qGybBZxUaWUe9TrEFKAw_3_2"></a><a id="Tc_QjXGiBhtKka1zSsDD69V0Q_3_5"></a><a id="Tc_3623q8J1MU6X2LT3vc_vdw_3_8"></a><a id="Tc_7bF2zrN0iEySPWXvlunVfg_3_9"></a><a id="Tc_xmAJBrwunUKE6E9b7k04yg_3_11"></a><a id="Tc_B13KLFD4oU2zzQGDrR-6Sg_4_0"></a><a id="Tc_nMvrfdJEy06gUNj2z7l3Ig_4_2"></a><a id="Tc_FBKoGokv_UuxGWT5Sl3H5A_4_5"></a><a id="Tc_JUhGazRWL0iiIfSoCYu6PQ_4_8"></a><a id="Tc_RwNn-njQsECRoq7rvtzbLw_4_9"></a><a id="Tc_z2d3E-S_DEWpKruzGmDk3g_4_11"></a><a id="Tc_RRSM-Ee4dkG361S6YkWy3Q_6_2"></a><a id="Tc__mgS1YzSc0Kys82a0BDfww_7_2"></a><a id="Tc_a-7mDgWv8EiRiWIJVogonQ_7_5"></a><a id="Tc_dsdLznfj80215ISEVTBW2g_7_8"></a><a id="Tc_xKKVOABQ2UaMtiMLOKNWgg_7_11"></a><a id="Tc_aQAav1YqakeZ1Wxvc0df2Q_8_0"></a><a id="Tc_dp7m5ln7kEG2WWF51OE4Ug_8_2"></a><a id="Tc_RneB9Kcd406HHKTFOvByMg_8_5"></a><a id="Tc_1mAlMQPDYkeJiXO24VuREg_8_8"></a><a id="Tc_rjA2rossjkeM8c48Wc6BFw_8_9"></a><a id="Tc_BT6SDbX6TUG4jjYmUOIi-Q_8_11"></a><a id="Tc_95POpCQPxkeh91Tj6h9jEQ_9_0"></a><a id="Tc_5frMEWtp7EmBa4qP5ALHdQ_9_2"></a><a id="Tc_oo1nwo24mECwjxmkUMtZMQ_9_5"></a><a id="Tc_t5O11w31dkiaRgfgzO5Bzw_9_8"></a><a id="Tc_O2yeakeGxUSfbkBkAfXn9w_9_9"></a><a id="Tc_nM_IctXEmkaVIJJJFpnvSg_9_11"></a><a id="Tc_92sfRBPWp0-CgHipIWBZzw_11_2"></a><a id="Tc_EcsoleT4R0GyzXxk7SiX-w_12_2"></a><a id="Tc_WLZ5qkdgz06eBoSKpqxOUw_12_5"></a><a id="Tc_KwStDggi00aah6VWrDMtzg_12_8"></a><a id="Tc_WL-H1rdR-0mPxGF9dY-6XA_12_11"></a><a id="Tc_GZkMoK3Pm0aoVvrv51J4kw_13_0"></a><a id="Tc_j8jqSco4AU-p7rTnNdgthA_13_2"></a><a id="Tc_oQ3-kxadPkiiAe2w34iu3w_13_5"></a><a id="Tc_8GWs1oL-7UG8CEJiAC6QUw_13_8"></a><a id="Tc_C8vSOD4cIUiPQM227LJoHA_13_9"></a><a id="Tc_sedUCeEZFk-ulXdmj4GPhQ_13_11"></a><a id="Tc_XHa5dnIrDUmv7rjJSRXzyw_14_0"></a><a id="Tc_k4d46PfVaUK-rEIQU9AIyg_14_2"></a><a id="Tc_GEeQFz0S-EWOPJLRwnZGVg_14_5"></a><a id="Tc_V-HzvpVzMEu39kezCWdKnw_14_8"></a><a id="Tc_LPwDu0nO50Kbh_xNv_65NQ_14_9"></a><a id="Tc_IUT-ITW3HkeP3RDudASJ7A_14_11"></a><a id="Tc_ODCNnAEnMUyH724sksdlCg_16_2"></a><a id="Tc_QifDP6VNCEeD2IJfgI6_Kg_17_2"></a><a id="Tc_A_A9kC73Ik2gHm9zlxNaIw_17_5"></a><a id="Tc_t54vO7aez0Cng8aC8JOADQ_17_8"></a><a id="Tc_Re08sUpWikO-XA3u3XLSdw_17_11"></a><a id="Tc_sMYFDhaZ90OcHtDkI5XvUA_18_0"></a><a id="Tc_0zd_NkaaEk2IPcX2c1Y5-A_18_2"></a><a id="Tc_sufmyhexJUmHRDihnvW9MA_18_5"></a><a id="Tc_dw4UhBM8kUyXRDxsdIMngA_18_8"></a><a id="Tc_AvKrrp8vNEO-csgbWRrshw_18_9"></a><a id="Tc_B8ikX0VBwkuBz9MuVq3hWA_18_11"></a><a id="Tc_cDXVhonllUmKNrEKtxR_Dw_19_0"></a><a id="Tc_Md_odmeT1UCWNzgWQFYFlA_19_2"></a><a id="Tc_cLekJ4g0V0CYnLyP278rsg_19_5"></a><a id="Tc_OBuIxeTXnUqpNtcD2YbXdw_19_8"></a><a id="Tc_DeaiQ7hQ9UiHf74upv61Wg_19_9"></a><a id="Tc_FadTQ6075UCeoxubKjREEg_19_11"></a><ix:nonNumeric contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ" name="us-gaap:SegmentReportingDisclosureTextBlock" id="Tb_EnDJAxzDMkGNAm_jS7uQSw" escape="true"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 12pt 0pt;"><b style="font-weight:bold;">11. Segment Information</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">Our activities are within the mechanical services industry and the electrical services industry, which represent our <ix:nonFraction unitRef="Unit_Standard_segment_3_qs4qRnNUKHCam52rVs-g" contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ" decimals="INF" format="ixt-sec:numwordsen" name="us-gaap:NumberOfReportableSegments" scale="0" id="Narr_b9v_a6TmEESQ24HBUCTZ2w">two</ix:nonFraction> reportable segments. We aggregate our operating segments into <ix:nonFraction unitRef="Unit_Standard_segment_3_qs4qRnNUKHCam52rVs-g" contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ" decimals="INF" format="ixt-sec:numwordsen" name="us-gaap:NumberOfReportableSegments" scale="0" id="Narr_WAxJ52AkkkapG2P6fr05ag">two</ix:nonFraction> reportable segments, as the operating segments meet all of the aggregation criteria. <ix:nonNumeric contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ" name="us-gaap:ScheduleOfSegmentReportingInformationBySegmentTextBlock" id="Group_1nG2WzMQq0S8HOZOIEqlVA" continuedAt="Group_1nG2WzMQq0S8HOZOIEqlVA_2" escape="true">The following tables present information about our reportable segments (in thousands):</ix:nonNumeric></p><ix:continuation id="Group_1nG2WzMQq0S8HOZOIEqlVA_2"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:89%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:34.37%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.39%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.39%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.99%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:34.37%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="11" style="vertical-align:bottom;white-space:nowrap;width:62.8%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Three Months Ended September 30, 2024</b></p></td></tr><tr><td style="vertical-align:bottom;width:34.37%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;width:2.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td colspan="2" style="vertical-align:bottom;width:13.11%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Mechanical Segment</b></p></td><td style="vertical-align:bottom;width:2.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td colspan="2" style="vertical-align:bottom;width:13.11%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Electrical Segment</b></p></td><td style="vertical-align:bottom;width:2.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td colspan="2" style="vertical-align:bottom;width:14.37%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Corporate</b></p></td><td style="vertical-align:bottom;width:2.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td colspan="2" style="vertical-align:bottom;width:13.72%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Consolidated</b></p></td></tr><tr><td style="vertical-align:bottom;width:34.37%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Revenue</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.39%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_7_1_2024_To_9_30_2024_srt_ConsolidationItemsAxis_us-gaap_OperatingSegmentsMember_us-gaap_StatementBusinessSegmentsAxis_fix_MechanicalSegmentMember_ipGvn2J_yUG_njJ09q4Lag" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:Revenues" scale="3" id="Tc_97BdTWTKY0-Av3PacvO2Xg_3_3">1,438,617</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.39%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_7_1_2024_To_9_30_2024_srt_ConsolidationItemsAxis_us-gaap_OperatingSegmentsMember_us-gaap_StatementBusinessSegmentsAxis_fix_ElectricalSegmentMember_oQ76muCgDEywAlwL2zQzkw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:Revenues" scale="3" id="Tc_4-juUL_zOE6cAvZKxeUNCA_3_6">373,749</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.65%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.99%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_7_1_2024_To_9_30_2024_XquWrHsdeEmkK9F8qXf6qA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:Revenues" scale="3" id="Tc_gyd-Ege5P0uyYaRbb_4IQQ_3_12">1,812,366</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:34.37%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Gross Profit</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.39%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_7_1_2024_To_9_30_2024_srt_ConsolidationItemsAxis_us-gaap_OperatingSegmentsMember_us-gaap_StatementBusinessSegmentsAxis_fix_MechanicalSegmentMember_ipGvn2J_yUG_njJ09q4Lag" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:GrossProfit" scale="3" id="Tc_vcI3MaTUr0uAr5CZYiazjQ_4_3">292,372</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.39%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_7_1_2024_To_9_30_2024_srt_ConsolidationItemsAxis_us-gaap_OperatingSegmentsMember_us-gaap_StatementBusinessSegmentsAxis_fix_ElectricalSegmentMember_oQ76muCgDEywAlwL2zQzkw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:GrossProfit" scale="3" id="Tc_h4WhtHFmI0mdkV-otWTjtQ_4_6">89,342</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.99%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_7_1_2024_To_9_30_2024_XquWrHsdeEmkK9F8qXf6qA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:GrossProfit" scale="3" id="Tc_MXcywhMabEubqQie2kdQ_A_4_12">381,714</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:34.37%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:11pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:11pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:11pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.39%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:11pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:11pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:11pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.39%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:11pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:11pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:11pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:11pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:11pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:11pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.99%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:11pt;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:34.37%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="11" style="vertical-align:bottom;white-space:nowrap;width:62.8%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Three Months Ended September 30, 2023</b></p></td></tr><tr><td style="vertical-align:bottom;width:34.37%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;width:2.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td colspan="2" style="vertical-align:bottom;width:13.11%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Mechanical Segment</b></p></td><td style="vertical-align:bottom;width:2.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td colspan="2" style="vertical-align:bottom;width:13.11%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Electrical Segment</b></p></td><td style="vertical-align:bottom;width:2.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td colspan="2" style="vertical-align:bottom;width:14.37%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Corporate</b></p></td><td style="vertical-align:bottom;width:2.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td colspan="2" style="vertical-align:bottom;width:13.72%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Consolidated</b></p></td></tr><tr><td style="vertical-align:bottom;width:34.37%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Revenue</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.39%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_7_1_2023_To_9_30_2023_srt_ConsolidationItemsAxis_us-gaap_OperatingSegmentsMember_us-gaap_StatementBusinessSegmentsAxis_fix_MechanicalSegmentMember_YShAl0xQB0KQs9SdK5emuw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:Revenues" scale="3" id="Tc_qiPdZWKRWUuBADqkZI8IYw_8_3">1,031,310</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.39%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_7_1_2023_To_9_30_2023_srt_ConsolidationItemsAxis_us-gaap_OperatingSegmentsMember_us-gaap_StatementBusinessSegmentsAxis_fix_ElectricalSegmentMember_uyYACQYB90KayXA18v6uBQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:Revenues" scale="3" id="Tc_heB1bUxbj0izOHRIgI-2hw_8_6">346,814</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.65%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.99%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_7_1_2023_To_9_30_2023_S4fUa5HYuk6ZPxhUrn5m5w" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:Revenues" scale="3" id="Tc_MlPQ0lqiLk23UHOnElzR0g_8_12">1,378,124</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:34.37%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Gross Profit</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.39%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_7_1_2023_To_9_30_2023_srt_ConsolidationItemsAxis_us-gaap_OperatingSegmentsMember_us-gaap_StatementBusinessSegmentsAxis_fix_MechanicalSegmentMember_YShAl0xQB0KQs9SdK5emuw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:GrossProfit" scale="3" id="Tc__zG5lBS5GUyRsQDq0JXE5w_9_3">210,147</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.39%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_7_1_2023_To_9_30_2023_srt_ConsolidationItemsAxis_us-gaap_OperatingSegmentsMember_us-gaap_StatementBusinessSegmentsAxis_fix_ElectricalSegmentMember_uyYACQYB90KayXA18v6uBQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:GrossProfit" scale="3" id="Tc_PizT0TCbl0qcKXoP8VBj2w_9_6">67,352</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.99%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_7_1_2023_To_9_30_2023_S4fUa5HYuk6ZPxhUrn5m5w" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:GrossProfit" scale="3" id="Tc_oodxg3M8qUq4nUucpWrjpA_9_12">277,499</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:34.37%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.39%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.39%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.99%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:34.37%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="11" style="vertical-align:bottom;white-space:nowrap;width:62.8%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Nine Months Ended September 30, 2024</b></p></td></tr><tr><td style="vertical-align:bottom;width:34.37%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;width:2.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td colspan="2" style="vertical-align:bottom;width:13.11%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Mechanical Segment</b></p></td><td style="vertical-align:bottom;width:2.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td colspan="2" style="vertical-align:bottom;width:13.11%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Electrical Segment</b></p></td><td style="vertical-align:bottom;width:2.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td colspan="2" style="vertical-align:bottom;width:14.37%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Corporate</b></p></td><td style="vertical-align:bottom;width:2.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td colspan="2" style="vertical-align:bottom;width:13.72%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Consolidated</b></p></td></tr><tr><td style="vertical-align:bottom;width:34.37%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Revenue</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.39%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_1_1_2024_To_9_30_2024_srt_ConsolidationItemsAxis_us-gaap_OperatingSegmentsMember_us-gaap_StatementBusinessSegmentsAxis_fix_MechanicalSegmentMember_AXOzBdIvRUiN5O9WEm4Teg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:Revenues" scale="3" id="Tc_CGnf07IKh0qr-2pDng7kIQ_13_3">4,075,305</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.39%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_1_1_2024_To_9_30_2024_srt_ConsolidationItemsAxis_us-gaap_OperatingSegmentsMember_us-gaap_StatementBusinessSegmentsAxis_fix_ElectricalSegmentMember_PRfP2cG01k6HY7-Zoc8duA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:Revenues" scale="3" id="Tc_LdXLNSi0gEas2qzDjqHlQA_13_6">1,084,367</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.65%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.99%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:Revenues" scale="3" id="Tc_z1Z7iK3WukGv_AO2rBdH9A_13_12">5,159,672</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:34.37%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Gross Profit</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.39%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_1_1_2024_To_9_30_2024_srt_ConsolidationItemsAxis_us-gaap_OperatingSegmentsMember_us-gaap_StatementBusinessSegmentsAxis_fix_MechanicalSegmentMember_AXOzBdIvRUiN5O9WEm4Teg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:GrossProfit" scale="3" id="Tc_Q13aAJfNokSwG2JadFiiBw_14_3">789,056</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.39%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_1_1_2024_To_9_30_2024_srt_ConsolidationItemsAxis_us-gaap_OperatingSegmentsMember_us-gaap_StatementBusinessSegmentsAxis_fix_ElectricalSegmentMember_PRfP2cG01k6HY7-Zoc8duA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:GrossProfit" scale="3" id="Tc_vsp3DRHtrECVVPJBKaz7KA_14_6">253,617</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.99%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:GrossProfit" scale="3" id="Tc_tImKRcsi9UqgORHCiG7JiA_14_12">1,042,673</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:34.37%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.39%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.39%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.99%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:34.37%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="11" style="vertical-align:bottom;white-space:nowrap;width:62.8%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Nine Months Ended September 30, 2023</b></p></td></tr><tr><td style="vertical-align:bottom;width:34.37%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;width:2.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td colspan="2" style="vertical-align:bottom;width:13.11%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Mechanical Segment</b></p></td><td style="vertical-align:bottom;width:2.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td colspan="2" style="vertical-align:bottom;width:13.11%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Electrical Segment</b></p></td><td style="vertical-align:bottom;width:2.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td colspan="2" style="vertical-align:bottom;width:14.37%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Corporate</b></p></td><td style="vertical-align:bottom;width:2.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td colspan="2" style="vertical-align:bottom;width:13.72%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Consolidated</b></p></td></tr><tr><td style="vertical-align:bottom;width:34.37%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Revenue</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.39%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_1_1_2023_To_9_30_2023_srt_ConsolidationItemsAxis_us-gaap_OperatingSegmentsMember_us-gaap_StatementBusinessSegmentsAxis_fix_MechanicalSegmentMember_SM13mUb_6EqmmKe2QkBVTA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:Revenues" scale="3" id="Tc_H8wTljSjzEWfhbaXLnGbtQ_18_3">2,925,848</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.39%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_1_1_2023_To_9_30_2023_srt_ConsolidationItemsAxis_us-gaap_OperatingSegmentsMember_us-gaap_StatementBusinessSegmentsAxis_fix_ElectricalSegmentMember__3WjLNReXU2bdGGOMVYI3Q" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:Revenues" scale="3" id="Tc_Z5aXcwuuzU2JCWFxKCTSSw_18_6">923,346</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.65%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.99%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_1_1_2023_To_9_30_2023_0vpBpKZIxEC_KY5z5G8rKA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:Revenues" scale="3" id="Tc_qjk4rVndOkudYAPX4VXorA_18_12">3,849,194</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:34.37%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Gross Profit</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.39%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_1_1_2023_To_9_30_2023_srt_ConsolidationItemsAxis_us-gaap_OperatingSegmentsMember_us-gaap_StatementBusinessSegmentsAxis_fix_MechanicalSegmentMember_SM13mUb_6EqmmKe2QkBVTA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:GrossProfit" scale="3" id="Tc_6EfZAN1Iw0W0p1z1eQQMIg_19_3">547,695</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.39%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_1_1_2023_To_9_30_2023_srt_ConsolidationItemsAxis_us-gaap_OperatingSegmentsMember_us-gaap_StatementBusinessSegmentsAxis_fix_ElectricalSegmentMember__3WjLNReXU2bdGGOMVYI3Q" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:GrossProfit" scale="3" id="Tc_E_fmkhwqQkKVMgeE0dwbEQ_19_6">163,129</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.99%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ" contextRef="Duration_1_1_2023_To_9_30_2023_0vpBpKZIxEC_KY5z5G8rKA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:GrossProfit" scale="3" id="Tc_IZgaTl5pxEWMMn_iixpjOA_19_12">710,824</ix:nonFraction></p></td></tr></table></ix:continuation><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></ix:nonNumeric><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p><a id="_d8899fef_a2e4_4cbd_961c_ad91ec547319"></a><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></div></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:12pt 0pt 0pt 0pt;">22</p></div></div>
<div style="background-color:#000000;clear:both;height:2pt;page-break-after:always;width:79.41%;border:0;margin:30pt 10.29% 30pt 10.29%;"></div><div style="max-width:100%;padding-left:10.29%;padding-right:10.29%;position:relative;"><div style="margin-top:21.6pt;min-height:41.4pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 30pt 0pt;"><a href="#Toc"><span style="font-style:normal;font-weight:normal;">Table of Contents</span></a></p></div><div style="clear:both;margin-left:-10.0pt;margin-right:-10.0pt;max-width:100%;position:relative;width:calc(100% + 20.0pt);"><div style="padding-left:10pt;padding-right:10pt;position:relative;width:100%;"><a id="Item2ManagementsDiscussionandAnalysisofF"></a><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">Item&#160;</b><b style="font-weight:bold;white-space:pre-wrap;">2.  </b><span style="font-style:italic;font-weight:bold;">Management&#8217;s Discussion and Analysis of Financial Condition and Results of Operations</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-style:italic;font-weight:bold;visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">The following discussion and analysis should be read in conjunction with our historical Consolidated Financial Statements and related notes included elsewhere in this Form&#160;10-Q and the Annual Report on Form&#160;10-K filed with the Securities and Exchange Commission for the year ended December&#160;31, 2023 (the &#8220;Form&#160;10-K&#8221;). This discussion contains &#8220;forward-looking statements&#8221; regarding our business and industry within the meaning of applicable securities laws and regulations. These statements are based on our current plans and expectations and involve risks and uncertainties that could cause our actual future activities and results of operations to be materially different from those set forth in the forward-looking statements. Important factors that could cause actual results to differ include risks set forth in &#8220;Item&#160;1A. Risk Factors&#8221; included in our Form&#160;10-K. We undertake no obligation to revise or publicly release the results of any revision to these forward-looking statements, except as required by law. Given these risks and uncertainties, readers are cautioned not to place undue reliance on such forward-looking statements. The terms &#8220;Comfort Systems,&#8221; &#8220;we,&#8221; &#8220;us,&#8221; or the &#8220;Company,&#8221; refer to Comfort Systems USA,&#160;Inc. or Comfort Systems USA,&#160;Inc. and its consolidated subsidiaries, as appropriate in the context.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 0pt 36pt;"><span style="font-style:italic;font-weight:bold;">Introduction and Overview</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 0pt 36pt;"><span style="font-style:italic;font-weight:bold;margin-left:0pt;visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">We are a national provider of comprehensive mechanical and electrical installation, renovation, maintenance, repair and replacement services within the mechanical and electrical services industries. We operate primarily in the commercial, industrial and institutional markets and perform most of our work in manufacturing, healthcare, education, office, technology, retail and government facilities. We operate our business in two business segments: mechanical and electrical.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 0pt 36pt;"><span style="font-style:italic;font-weight:bold;">Nature and Economics of Our Business</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 0pt 36pt;"><span style="font-style:italic;font-weight:bold;margin-left:0pt;visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">In our mechanical business segment, customers hire us to ensure HVAC systems deliver specified or generally expected heating, cooling, conditioning and circulation of air in a facility. This entails installing core system equipment such as packaged heating and air conditioning units, or in the case of larger facilities, separate core components such as chillers, boilers, air handlers, and cooling towers. We also typically install connecting and distribution elements such as piping and ducting. </p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">In our electrical business segment, our principal business activity is electrical construction and engineering in the commercial and industrial field. We also perform electrical logistics services and electrical service work. </p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">In both our mechanical and electrical business segments, our responsibilities usually require conforming the systems to pre-established engineering drawings and equipment and performance specifications, which we frequently participate in establishing. Our project management responsibilities include staging equipment and materials to project sites, deploying labor to perform the work, and coordinating with other service providers on the project, including any subcontractors we might use to deliver our portion of the work.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">Approximately 91.0% of our revenue is earned on a project basis for installation services in newly constructed facilities or for replacement of systems in existing facilities. When competing for project business, we usually estimate the costs we will incur on a project, and then propose a bid to the customer that includes a contract price and other performance and payment terms. Our bid price and terms are intended to cover our estimated costs on the project and provide a profit margin to us commensurate with the value of the installed system to the customer, the risk that project costs or duration will vary from estimate, the schedule on which we will be paid, the opportunities for other work that we might forego by committing capacity to this project, and other costs that we incur to support our operations but which are not specific to the project. Typically, customers will seek pricing from competitors for a given project. While the criteria on which customers select a provider vary widely and include factors such as quality, technical expertise, on-time performance, post-project support and service, and company history and financial strength, we believe that price for value is the most influential factor for most customers in choosing a mechanical or electrical installation and service provider.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">After a customer accepts our bid, we generally enter into a contract with the customer that specifies what we will deliver on the project, what our related responsibilities are and how much and when we will be paid. Our overall </p></div></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:12pt 0pt 0pt 0pt;">23</p></div></div>
<div style="background-color:#000000;clear:both;height:2pt;page-break-after:always;width:79.41%;border:0;margin:30pt 10.29% 30pt 10.29%;"></div><div style="max-width:100%;padding-left:10.29%;padding-right:10.29%;position:relative;"><div style="margin-top:21.6pt;min-height:41.4pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 30pt 0pt;"><a href="#Toc"><span style="font-style:normal;font-weight:normal;">Table of Contents</span></a></p></div><div style="clear:both;margin-left:-10.0pt;margin-right:-10.0pt;max-width:100%;position:relative;width:calc(100% + 20.0pt);"><div style="padding-left:10pt;padding-right:10pt;position:relative;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">price for the project is typically set at a fixed amount in the contract, although changes in project specifications or work conditions that result in unexpected additional work are usually subject to additional payment from the customer via what are commonly known as change orders. Project contracts typically provide for periodic billings to the customer as we meet progress milestones or incur cost on the project. Project contracts in our industry also frequently allow for a small portion of progress billings or contract price to be withheld by the customer until after we have completed the work. Amounts withheld under this practice are known as retention or retainage.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">Labor, materials and overhead costs account for the majority of our cost of service. Accordingly, labor management and utilization have the most impact on our project performance. Given the fixed price nature of much of our project work, if our initial estimate of project costs is wrong or we incur cost overruns that cannot be recovered in change orders, we can experience reduced profits or even significant losses on fixed price project work. We also perform some project work on a cost-plus or a time and materials basis, under which we are paid our costs incurred plus an agreed-upon profit margin, and such projects are sometimes subject to a guaranteed maximum cost. These margins are frequently less than fixed-price contract margins because there is less risk of unrecoverable cost overruns in cost-plus or time and materials work.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">As of September 30, 2024, we had 8,811 projects in process. Our average project takes six to nine months to complete, with an average contract price of approximately $1.7 million. Our projects generally require working capital funding of equipment and labor costs. Customer payments on periodic billings generally do not recover these costs until late in the job. Our average project duration, together with typical retention terms as discussed above, generally allow us to complete the realization of revenue and earnings in cash within one year. We have what we consider to be a well-diversified distribution of revenue across end-use sectors that we believe reduces our exposure to negative developments in any given sector. Because of the integral nature of our services to most buildings, we have the legal right in almost all cases to attach liens to buildings or related funding sources when we have not been fully paid for installing systems, except with respect to some government buildings. The service work that we do, which is discussed further below, usually does not give rise to lien rights.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">We also perform larger projects. Taken together, projects with contract prices of $2&#160;million or more totaled $13.16&#160;billion of aggregate contract value as of September 30, 2024, or approximately 89% of a total contract value for all projects in progress, totaling $14.72&#160;billion. Generally, projects closer in size to $2 million will be completed in one year or less. It is unusual for us to work on a project that exceeds two years in length.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">A stratification of projects in progress as of September 30, 2024, by contract price, is as follows:</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:79.99%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:66.26%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.85%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.25%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.88%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.73%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.68%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:66.26%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:9pt;margin:0pt;"><span style="font-size:9pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.85%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;line-height:9pt;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.25%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:9pt;text-align:center;margin:0pt;"><span style="font-size:9pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.88%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;line-height:9pt;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:14.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;line-height:9pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Aggregate</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.68%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;line-height:9pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td></tr><tr><td style="vertical-align:bottom;width:66.26%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:9pt;margin:0pt;"><span style="font-size:9pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.85%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:9pt;margin:0pt;"><span style="font-size:9pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.25%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:9pt;text-align:center;margin:0pt;"><span style="font-size:9pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.88%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:9pt;margin:0pt;"><span style="font-size:9pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:14.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;line-height:9pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Contract</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.68%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;line-height:9pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td></tr><tr><td style="vertical-align:bottom;width:66.26%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:9pt;margin:0pt;"><span style="font-size:9pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.85%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:9pt;margin:0pt;"><span style="font-size:9pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.25%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;line-height:9pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">No.&#160;of</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.88%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:9pt;margin:0pt;"><span style="font-size:9pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:14.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;line-height:9pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Price&#160;Value</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.68%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;line-height:9pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td></tr><tr><td style="vertical-align:bottom;width:66.26%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;line-height:9pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"><b style="font-weight:bold;">Contract&#160;Price&#160;of&#160;Project</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.85%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:9pt;margin:0pt;"><span style="font-size:9pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.25%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;line-height:9pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Projects</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.88%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:9pt;margin:0pt;"><span style="font-size:9pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:14.05%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;line-height:9pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">(millions)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.68%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;line-height:9pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td></tr><tr><td style="vertical-align:bottom;width:66.26%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;">Under $2 million</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.85%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.25%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><span style="white-space:pre-wrap;"> 7,764</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.88%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.73%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><span style="white-space:pre-wrap;"> 1,565.9</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.68%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:66.26%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;">$2 million - $10 million</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.85%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.25%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><span style="white-space:pre-wrap;"> 715</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.88%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.73%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><span style="white-space:pre-wrap;"> 3,312.5</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.68%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:66.26%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;">$10 million - $20 million</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.85%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.25%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><span style="white-space:pre-wrap;"> 150</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.88%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.73%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><span style="white-space:pre-wrap;"> 2,113.2</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.68%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:66.26%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;">$20 million - $40 million</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.85%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.25%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><span style="white-space:pre-wrap;"> 118</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.88%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.73%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><span style="white-space:pre-wrap;"> 3,362.2</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.68%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:66.26%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;">Greater than $40 million</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.85%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.25%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><span style="white-space:pre-wrap;"> 64</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.88%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.73%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.31%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><span style="white-space:pre-wrap;"> 4,368.6</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.68%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:66.26%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;">Total</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.85%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.25%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><span style="white-space:pre-wrap;"> 8,811</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.88%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.73%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.31%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><span style="white-space:pre-wrap;"> 14,722.4</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.68%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">In addition to project work, approximately 9.0% of our revenue represents maintenance and repair service on already installed HVAC, electrical, and controls systems. This kind of work usually takes from a few hours to a few days to perform. Prices to the customer are based on the equipment and materials used in the service as well as technician labor time. We usually bill the customer for service work when it is complete, typically with payment terms of up to thirty days. We also provide maintenance and repair service under ongoing contracts. Under these contracts, we are paid regular monthly or quarterly amounts and provide specified service based on customer requirements. These agreements typically are for one or more years and frequently contain thirty- to sixty-day cancellation notice periods.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">A relatively small portion of our revenue comes from national and regional account customers. These customers typically have multiple sites and contract with us to perform maintenance and repair service. These contracts may also provide for us to perform new or replacement systems installation. We operate a national call center to dispatch </p></div></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:12pt 0pt 0pt 0pt;">24</p></div></div>
<div style="background-color:#000000;clear:both;height:2pt;page-break-after:always;width:79.41%;border:0;margin:30pt 10.29% 30pt 10.29%;"></div><div style="max-width:100%;padding-left:10.29%;padding-right:10.29%;position:relative;"><div style="margin-top:21.6pt;min-height:41.4pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 30pt 0pt;"><a href="#Toc"><span style="font-style:normal;font-weight:normal;">Table of Contents</span></a></p></div><div style="clear:both;margin-left:-10.0pt;margin-right:-10.0pt;max-width:100%;position:relative;width:calc(100% + 20.0pt);"><div style="padding-left:10pt;padding-right:10pt;position:relative;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">technicians to sites requiring service. We perform the majority of this work with our own employees, with the balance being subcontracted to third parties that meet our performance qualifications. </p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 0pt 36pt;"><span style="font-style:italic;font-weight:bold;">Profile and Management of Our Operations</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:18pt;text-align:justify;text-indent:-18pt;margin:0pt 0pt 0pt 36pt;"><span style="font-style:italic;margin-left:0pt;visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">We manage our 47 operating units based on a variety of factors. Financial measures we emphasize include profitability and use of capital as indicated by cash flow and by other measures of working capital principally involving project cost, billings and receivables. We also monitor selling, general, administrative and indirect project support expense, backlog, workforce size and mix, growth in revenue and profits, variation of actual project cost from original estimate, and overall financial performance in comparison to budget and updated forecasts. Operational factors we emphasize include project selection, estimating, pricing, safety, management and execution practices, labor utilization, training, and the make-up of both existing backlog as well as new business being pursued, in terms of project size, technical application, facility type, end-use customers and industries and location of the work.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">Most of our operations compete on a local or regional basis. Attracting and retaining effective operating unit managers is an important factor in our business, particularly in view of the relative uniqueness of each market and operation, the importance of relationships with customers and other market participants, such as architects and consulting engineers, and the high degree of competition and low barriers to entry in most of our markets. Accordingly, we devote considerable attention to operating unit management quality, stability, and contingency planning, including related considerations of compensation and non-competition protection where applicable.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 0pt 36pt;"><span style="font-style:italic;font-weight:bold;">Economic and Industry Factors</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:18pt;text-align:justify;text-indent:-18pt;margin:0pt 0pt 0pt 36pt;"><span style="margin-left:0pt;visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">As a mechanical and electrical services provider, we operate in the broader nonresidential construction services industry and are affected by trends in this sector. While we do not have operations in all major cities of the United States, we believe our national presence is sufficiently large that we experience trends in demand for and pricing of our services that are consistent with trends in the national nonresidential construction sector. As a result, we monitor the views of major construction sector forecasters along with macroeconomic factors they believe drive the sector, including trends in gross domestic product, interest rates, business investment, employment, demographics and the fiscal condition of federal, state and local governments.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">Spending decisions for building construction, renovation and system replacement are generally made on a project basis, usually with some degree of discretion as to when and if projects proceed. With larger amounts of capital, time, and discretion involved, spending decisions are affected to a significant degree by uncertainty, particularly concerns about economic and financial conditions and trends. We have experienced periods of time when economic weakness caused a significant slowdown in decisions to proceed with installation and replacement project work.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 0pt 36pt;"><span style="font-style:italic;font-weight:bold;">Operating Environment and Management Emphasis</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 0pt 36pt;"><span style="margin-left:0pt;visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">In 2020, the advent of a global pandemic led to some delays in service and construction, including delayed project starts and air pockets or pauses during 2020 and 2021. We experienced increasing demand in 2022 and 2023, and we expect that the demand environment, especially for manufacturing and technology customers, will remain at high levels for the rest of 2024 and leading into 2025. While the impacts from the supply chain shortages have improved, we continue to experience increased labor costs and delays in delivery of certain materials and equipment. We expect that constraints and delays in our supply chain will continue to abate in the near term; however, we anticipate that pressure on cost and availability, especially for skilled labor, will continue for the rest of 2024 and leading into 2025.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">We have a credit facility in place with terms we believe are favorable that does not expire until July 2027. As of September 30, 2024, we had $770.0 million of credit available to borrow under our credit facility. We have strong surety relationships to support our bonding needs, and we believe our relationships with the surety markets are strong and benefit from our operating history and financial position. We have generated positive free cash flow in each of the last twenty-five calendar years and will continue our emphasis in this area. We believe that the relative size and strength of our Balance Sheet and surety relationships, as compared to most companies in our industry, represent competitive advantages for us.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></div></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:12pt 0pt 0pt 0pt;">25</p></div></div>
<div style="background-color:#000000;clear:both;height:2pt;page-break-after:always;width:79.41%;border:0;margin:30pt 10.29% 30pt 10.29%;"></div><div style="max-width:100%;padding-left:10.29%;padding-right:10.29%;position:relative;"><div style="margin-top:21.6pt;min-height:41.4pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 30pt 0pt;"><a href="#Toc"><span style="font-style:normal;font-weight:normal;">Table of Contents</span></a></p></div><div style="clear:both;margin-left:-10.0pt;margin-right:-10.0pt;max-width:100%;position:relative;width:calc(100% + 20.0pt);"><div style="padding-left:10pt;padding-right:10pt;position:relative;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">As discussed at greater length in &#8220;Results of Operations&#8221; below, we expect price competition to continue as local and regional industry participants compete for customers. We will continue to invest in our service business, to pursue the more active sectors in our markets, and to emphasize our regional and national account business. </p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 0pt 36pt;"><span style="font-style:italic;font-weight:bold;">Cyclicality and Seasonality</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 0pt 36pt;"><span style="margin-left:0pt;visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">The construction industry is subject to business cycle fluctuation. As a result, our volume of business, particularly in new construction projects and renovation, may be adversely affected by declines in new installation and replacement projects in various geographic regions of the United States during periods of economic weakness.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">The mechanical and electrical contracting industries are also subject to seasonal variations. The demand for new installation and replacement is generally lower during the winter months (the first quarter of the year) due to reduced construction activity during inclement weather and less use of air conditioning during the colder months. Demand for our services is generally higher in the second and third calendar quarters due to increased construction activity and increased use of air conditioning during the warmer months. Accordingly, we expect our revenue and operating results generally will be lower in the first calendar quarter. </p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 7pt 36pt;"><span style="font-style:italic;font-weight:bold;">Critical Accounting Estimates</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">Management believes that there have been no significant changes during the three months ended September 30, 2024, to the items that we disclosed as our "Critical Accounting Estimates" in Management's Discussion and Analysis of Financial Condition and Results of Operations in our Annual Report on Form 10-K for the fiscal year ended December&#160;31, 2023. A summary of significant accounting policies and a summary of recent accounting pronouncements applicable to our Consolidated Financial Statements are included in Note 2 &#8220;Summary of Significant Accounting Policies and Estimates.&#8221;</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><a id="_373f4d62_100f_4e9a_a6fd_470518609e1e"></a><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></div></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:12pt 0pt 0pt 0pt;">26</p></div></div>
<div style="background-color:#000000;clear:both;height:2pt;page-break-after:always;width:79.41%;border:0;margin:30pt 10.29% 30pt 10.29%;"></div><div style="max-width:100%;padding-left:10.29%;padding-right:10.29%;position:relative;"><div style="margin-top:21.6pt;min-height:41.4pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 30pt 0pt;"><a href="#Toc"><span style="font-style:normal;font-weight:normal;">Table of Contents</span></a></p></div><div style="clear:both;margin-left:-10.0pt;margin-right:-10.0pt;max-width:100%;position:relative;width:calc(100% + 20.0pt);"><div style="padding-left:10pt;padding-right:10pt;position:relative;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">Results of Operations (dollars in thousands):</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:-0.072021484%;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:15.61%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.71%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:15.61%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td colspan="9" style="vertical-align:bottom;white-space:nowrap;width:39.11%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Three Months Ended September 30,</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td colspan="9" style="vertical-align:bottom;white-space:nowrap;width:39.11%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Nine Months Ended September 30,</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.71%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:15.61%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td colspan="4" style="vertical-align:bottom;white-space:nowrap;width:18.18%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2024</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td colspan="4" style="vertical-align:bottom;white-space:nowrap;width:18.18%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2023</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td colspan="4" style="vertical-align:bottom;white-space:nowrap;width:18.18%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2024</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td colspan="4" style="vertical-align:bottom;white-space:nowrap;width:18.18%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2023</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.71%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:15.61%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Revenue</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><span style="white-space:pre-wrap;"> 1,812,366</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.05%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;&#160;&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><span style="white-space:pre-wrap;"> 100.0</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">%&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><span style="white-space:pre-wrap;"> 1,378,124</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.05%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;&#160;&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><span style="white-space:pre-wrap;"> 100.0</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">%&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><span style="white-space:pre-wrap;"> 5,159,672</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.05%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;&#160;&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><span style="white-space:pre-wrap;"> 100.0</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">%&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><span style="white-space:pre-wrap;"> 3,849,194</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.05%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;&#160;&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><span style="white-space:pre-wrap;"> 100.0</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.71%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:15.61%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Cost of services</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.34%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><span style="white-space:pre-wrap;"> 1,430,652</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><span style="white-space:pre-wrap;"> 78.9</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.34%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><span style="white-space:pre-wrap;"> 1,100,625</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><span style="white-space:pre-wrap;"> 79.9</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.34%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><span style="white-space:pre-wrap;"> 4,116,999</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><span style="white-space:pre-wrap;"> 79.8</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.34%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><span style="white-space:pre-wrap;"> 3,138,370</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><span style="white-space:pre-wrap;"> 81.5</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.71%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:15.61%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Gross profit</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><span style="white-space:pre-wrap;"> 381,714</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.05%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><span style="white-space:pre-wrap;"> 21.1</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><span style="white-space:pre-wrap;"> 277,499</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.05%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><span style="white-space:pre-wrap;"> 20.1</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><span style="white-space:pre-wrap;"> 1,042,673</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.05%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><span style="white-space:pre-wrap;"> 20.2</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><span style="white-space:pre-wrap;"> 710,824</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.05%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><span style="white-space:pre-wrap;"> 18.5</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.71%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:15.61%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Selling, general and administrative expenses</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><span style="white-space:pre-wrap;"> 180,177</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><span style="white-space:pre-wrap;"> 9.9</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><span style="white-space:pre-wrap;"> 142,935</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><span style="white-space:pre-wrap;"> 10.4</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><span style="white-space:pre-wrap;"> 522,437</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><span style="white-space:pre-wrap;"> 10.1</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><span style="white-space:pre-wrap;"> 414,397</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><span style="white-space:pre-wrap;"> 10.8</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.71%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:15.61%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Gain on sale of assets</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.34%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="white-space:pre-wrap;"> (1,347)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.05%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="white-space:pre-wrap;"> (0.1)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.34%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="white-space:pre-wrap;"> (579)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.05%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><span style="white-space:pre-wrap;"> &#8212;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.34%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="white-space:pre-wrap;"> (2,778)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.05%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="white-space:pre-wrap;"> (0.1)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.34%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="white-space:pre-wrap;"> (1,683)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.05%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><span style="white-space:pre-wrap;"> &#8212;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.71%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:15.61%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Operating income</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><span style="white-space:pre-wrap;"> 202,884</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><span style="white-space:pre-wrap;"> 11.2</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><span style="white-space:pre-wrap;"> 135,143</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><span style="white-space:pre-wrap;"> 9.8</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><span style="white-space:pre-wrap;"> 523,014</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><span style="white-space:pre-wrap;"> 10.1</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><span style="white-space:pre-wrap;"> 298,110</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><span style="white-space:pre-wrap;"> 7.7</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.71%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:15.61%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Interest income</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><span style="white-space:pre-wrap;"> 3,825</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.05%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><span style="white-space:pre-wrap;"> 0.2</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><span style="white-space:pre-wrap;"> 952</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.05%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><span style="white-space:pre-wrap;"> 0.1</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><span style="white-space:pre-wrap;"> 6,692</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.05%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><span style="white-space:pre-wrap;"> 0.1</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><span style="white-space:pre-wrap;"> 2,441</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.05%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><span style="white-space:pre-wrap;"> 0.1</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.71%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:15.61%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Interest expense</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="white-space:pre-wrap;"> (1,730)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="white-space:pre-wrap;"> (0.1)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="white-space:pre-wrap;"> (1,886)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="white-space:pre-wrap;"> (0.1)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="white-space:pre-wrap;"> (5,072)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="white-space:pre-wrap;"> (0.1)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="white-space:pre-wrap;"> (9,880)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="white-space:pre-wrap;"> (0.3)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.71%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:15.61%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Changes in the fair value of contingent earn-out obligations</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="white-space:pre-wrap;"> (17,254)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.05%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="white-space:pre-wrap;"> (1.0)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="white-space:pre-wrap;"> (8,727)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.05%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="white-space:pre-wrap;"> (0.6)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="white-space:pre-wrap;"> (44,434)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.05%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="white-space:pre-wrap;"> (0.9)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="white-space:pre-wrap;"> (14,207)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.05%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="white-space:pre-wrap;"> (0.4)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.71%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="color:#ff0000;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:15.61%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Other income (expense)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.34%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><span style="white-space:pre-wrap;"> 87</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><span style="white-space:pre-wrap;"> &#8212;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.34%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="white-space:pre-wrap;"> (44)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><span style="white-space:pre-wrap;"> &#8212;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.34%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><span style="white-space:pre-wrap;"> 323</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><span style="white-space:pre-wrap;"> &#8212;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.34%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><span style="white-space:pre-wrap;"> 1</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><span style="white-space:pre-wrap;"> &#8212;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.71%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:15.61%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Income before income taxes</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><span style="white-space:pre-wrap;"> 187,812</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.05%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><span style="white-space:pre-wrap;"> 10.4</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><span style="white-space:pre-wrap;"> 125,438</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.05%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><span style="white-space:pre-wrap;"> 9.1</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><span style="white-space:pre-wrap;"> 480,523</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.05%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><span style="white-space:pre-wrap;"> 9.3</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><span style="white-space:pre-wrap;"> 276,465</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.05%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><span style="white-space:pre-wrap;"> 7.2</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.71%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:15.61%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Provision for income taxes</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.34%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><span style="white-space:pre-wrap;"> 41,577</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.34%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><span style="white-space:pre-wrap;"> 20,313</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.34%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><span style="white-space:pre-wrap;"> 103,960</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.34%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><span style="white-space:pre-wrap;"> 44,648</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.71%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:15.61%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Net income</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.34%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><span style="white-space:pre-wrap;"> 146,235</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.05%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><span style="white-space:pre-wrap;"> 8.1</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.34%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><span style="white-space:pre-wrap;"> 105,125</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.05%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><span style="white-space:pre-wrap;"> 7.6</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.34%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><span style="white-space:pre-wrap;"> 376,563</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.05%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><span style="white-space:pre-wrap;"> 7.3</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.34%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><span style="white-space:pre-wrap;"> 231,817</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.05%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><span style="white-space:pre-wrap;"> 6.0</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.71%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">We had 44 operating locations as of December&#160;31, 2023. In the first quarter of 2024, we split one of our operating locations into two separate operating locations. Additionally, we completed the acquisitions of Summit Industrial Construction, LLC (&#8220;Summit&#8221;) and J &amp; S Mechanical Contractors, Inc. (&#8220;J&amp;S&#8221;), which both report as separate operating locations. We had 47 operating locations as of September 30, 2024. Acquisitions are included in our results of operations from the respective acquisition date. The same-store comparison from 2024 to 2023, as described below, excludes Summit, which was acquired on February 1, 2024, J&amp;S, which was acquired on February 1, 2024, DECCO, Inc. (&#8220;DECCO&#8221;), which was acquired on October 2, 2023, and one month of results for Eldeco, Inc (&#8220;Eldeco&#8221;), which was acquired on February 1, 2023. An operating location is included in the same-store comparison on the first day it has comparable prior year operating data, except for immaterial acquisitions that are often absorbed and integrated with existing operations. </p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><i style="font-style:italic;">Revenue</i>&#8212;Revenue for the third quarter of 2024 increased $434.2&#160;million, or 31.5%, to $1.81&#160;billion compared to the same period in 2023. The increase included a 17.5% increase in revenue related to same-store activity and a 14.0% increase related to the Summit, J&amp;S, and DECCO acquisitions. The same-store revenue growth was largely driven by strong market conditions, including the increase in our backlog. The increase in demand has been strong in the technology sector, particularly for data centers and chip plants.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">The following table presents our operating segment revenue (in thousands, except percentages):</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:79.99%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:32.61%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:3.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.83%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:11.85%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:3.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:4.03%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:4.03%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.83%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:11.7%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:3.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.99%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:32.61%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td colspan="10" style="vertical-align:bottom;white-space:nowrap;width:61.36%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Three Months Ended September 30,</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.99%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td></tr><tr><td style="vertical-align:bottom;width:32.61%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td colspan="4" style="vertical-align:bottom;white-space:nowrap;width:26.72%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2024</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.03%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.03%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="4" style="vertical-align:bottom;white-space:nowrap;width:26.56%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2023</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.99%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td></tr><tr><td style="vertical-align:bottom;width:32.61%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Revenue:</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.83%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.85%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.03%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.03%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.83%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.7%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;&#160;&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.99%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:32.61%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Mechanical Segment</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.83%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.85%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><span style="white-space:pre-wrap;"> 1,438,617</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;&#160;&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><span style="white-space:pre-wrap;"> 79.4</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.03%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">%&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.03%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.83%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.7%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><span style="white-space:pre-wrap;"> 1,031,310</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><span style="white-space:pre-wrap;"> 74.8</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.99%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">%</p></td></tr><tr><td style="vertical-align:bottom;width:32.61%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Electrical Segment</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.83%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.85%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><span style="white-space:pre-wrap;"> 373,749</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><span style="white-space:pre-wrap;"> 20.6</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.03%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.03%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.83%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.7%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><span style="white-space:pre-wrap;"> 346,814</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><span style="white-space:pre-wrap;"> 25.2</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.99%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">%</p></td></tr><tr><td style="vertical-align:bottom;width:32.61%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 18pt;">Total</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.83%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.85%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><span style="white-space:pre-wrap;"> 1,812,366</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><span style="white-space:pre-wrap;"> 100.0</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.03%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.03%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.83%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.7%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><span style="white-space:pre-wrap;"> 1,378,124</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><span style="white-space:pre-wrap;"> 100.0</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.99%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">%</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">Revenue for our mechanical segment increased $407.3 million, or 39.5%, to $1.44 billion for the third quarter of 2024 compared to the same period in 2023. Of this increase, $193.6 million resulted from the acquisitions of Summit, </p></div></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:12pt 0pt 0pt 0pt;">27</p></div></div>
<div style="background-color:#000000;clear:both;height:2pt;page-break-after:always;width:79.41%;border:0;margin:30pt 10.29% 30pt 10.29%;"></div><div style="max-width:100%;padding-left:10.29%;padding-right:10.29%;position:relative;"><div style="margin-top:21.6pt;min-height:41.4pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 30pt 0pt;"><a href="#Toc"><span style="font-style:normal;font-weight:normal;">Table of Contents</span></a></p></div><div style="clear:both;margin-left:-10.0pt;margin-right:-10.0pt;max-width:100%;position:relative;width:calc(100% + 20.0pt);"><div style="padding-left:10pt;padding-right:10pt;position:relative;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">J&amp;S, and DECCO, and $213.7 million was attributable to same-store activity. The same-store revenue increase primarily resulted from an increase in activity in the technology sector at one of our Virginia operations ($38.6 million), one of our Texas operations ($37.5 million) and at our North Carolina operation ($25.6 million) and in the healthcare and manufacturing sectors at our Mississippi operation ($31.8 million). The same-store revenue increase was partially offset by a decrease in activity in the manufacturing sector at one of our Indiana operations ($23.1 million). </p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">Revenue for our electrical segment increased $26.9 million, or 7.8%,<span style="color:#ff0000;"> </span>to $373.7 million for the third quarter of 2024 compared to the same period in 2023. The increase primarily resulted from an increase in activity in the technology sector at our Texas electrical operation ($23.6 million).</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">Revenue for the first nine months of 2024 increased $1.31 billion, or 34.0%, to $5.16 billion compared to the same period in 2023. The increase included a 23.1% increase in revenue related to same-store activity and a 10.9% increase related to the Summit, J&amp;S, DECCO, and Eldeco acquisitions. The same-store revenue growth was largely driven by strong market conditions, including the increase in our backlog. The increase in demand has been strong in the technology and manufacturing sectors, particularly for data centers, chip plants, food and pharmaceuticals.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">The following table presents our operating segment revenue (in thousands, except percentages): </p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><div style="padding-left:49.5pt;"><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:80.63%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:32.62%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:3.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.83%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:11.86%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:3.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:4.04%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:4.05%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.84%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:11.61%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:3.03%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.01%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:3.01%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:32.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td colspan="10" style="vertical-align:bottom;white-space:nowrap;width:61.34%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Nine Months Ended September 30,</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.01%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td></tr><tr><td style="vertical-align:bottom;width:32.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td colspan="4" style="vertical-align:bottom;white-space:nowrap;width:26.72%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2024</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="4" style="vertical-align:bottom;white-space:nowrap;width:26.51%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2023</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.01%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td></tr><tr><td style="vertical-align:bottom;width:32.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Revenue:</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.83%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.86%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.05%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.84%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.61%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.03%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;&#160;&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.01%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.01%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:32.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Mechanical Segment</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.83%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><span style="white-space:pre-wrap;"> 4,075,305</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;&#160;&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><span style="white-space:pre-wrap;"> 79.0</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">%&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.84%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.61%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><span style="white-space:pre-wrap;"> 2,925,848</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.03%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.01%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><span style="white-space:pre-wrap;"> 76.0</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.01%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">%</p></td></tr><tr><td style="vertical-align:bottom;width:32.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Electrical Segment</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.83%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.86%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><span style="white-space:pre-wrap;"> 1,084,367</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><span style="white-space:pre-wrap;"> 21.0</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.05%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.84%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.61%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><span style="white-space:pre-wrap;"> 923,346</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.03%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.01%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><span style="white-space:pre-wrap;"> 24.0</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.01%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">%</p></td></tr><tr><td style="vertical-align:bottom;width:32.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 18pt;">Total</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.83%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.86%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><span style="white-space:pre-wrap;"> 5,159,672</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><span style="white-space:pre-wrap;"> 100.0</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.84%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.61%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><span style="white-space:pre-wrap;"> 3,849,194</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.03%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.01%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><span style="white-space:pre-wrap;"> 100.0</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.01%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">%</p></td></tr></table></div><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="display:inline-block;text-indent:0pt;width:36pt;"></span>Revenue for our mechanical segment increased $1.15 billion, or 39.3%, to $4.08 billion for the first nine months of 2024 compared to the same period in 2023. Of this increase, $412.2 million resulted from the acquisitions of Summit, J&amp;S, and DECCO, and $737.3 million was attributable to same-store activity. The same-store increase primarily resulted from an increase in activity in the technology sector at two of our Texas operations ($244.6 million), at our North Carolina operation ($109.5 million) and at one of our Virginia operations ($93.0 million). </p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="display:inline-block;text-indent:0pt;width:36pt;"></span>Revenue for our electrical segment increased $161.0 million, or 17.4%, to $1.08 billion for the first nine months of 2024 compared to the same period in 2023. The increase primarily resulted from higher activity in the technology sector at our Texas electrical operation ($99.9 million).</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">Backlog reflects revenue still to be recognized under contracted or committed installation and replacement project work. Project work generally lasts less than one year. Service agreement revenue, service work and short duration projects, which are generally billed as performed, do not flow through backlog. Accordingly, backlog represents only a portion of our revenue for any given future period, and it represents revenue that is likely to be reflected in our operating results over the next six to twelve months. As a result, we believe the predictive value of backlog information is limited to indications of general revenue direction over the near term, and should not be interpreted as indicative of ongoing revenue performance over several quarters.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">The following table presents our operating segment backlog (in thousands, except percentages):</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:23.95%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.21%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.32%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.36%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.21%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:7.95%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.95%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.21%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.32%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.36%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.21%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:7.95%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.22%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.22%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.36%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.22%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:7.45%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.13%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:23.95%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.21%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td colspan="4" style="vertical-align:bottom;white-space:nowrap;width:20.85%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">September 30, 2024</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.95%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.21%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="4" style="vertical-align:bottom;white-space:nowrap;width:20.85%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">December 31, 2023</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="4" style="vertical-align:bottom;white-space:nowrap;width:20.38%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">September 30, 2023</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.13%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td></tr><tr><td style="vertical-align:bottom;width:23.95%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Backlog:</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.21%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.21%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.95%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.95%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.21%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.21%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;&#160;&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.95%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;&#160;&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.45%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.13%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:23.95%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Mechanical Segment</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.21%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.36%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><span style="white-space:pre-wrap;"> 4,441,923</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.21%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;&#160;&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.95%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><span style="white-space:pre-wrap;"> 78.2</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.95%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">%&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.21%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.36%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><span style="white-space:pre-wrap;"> 4,027,927</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.21%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.95%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><span style="white-space:pre-wrap;"> 78.1</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.36%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><span style="white-space:pre-wrap;"> 3,117,994</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.45%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><span style="white-space:pre-wrap;"> 72.7</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.13%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">%</p></td></tr><tr><td style="vertical-align:bottom;width:23.95%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Electrical Segment</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.21%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.32%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.36%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><span style="white-space:pre-wrap;"> 1,238,858</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.21%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.95%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><span style="white-space:pre-wrap;"> 21.8</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.95%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.21%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.32%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.36%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><span style="white-space:pre-wrap;"> 1,129,449</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.21%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.95%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><span style="white-space:pre-wrap;"> 21.9</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.36%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><span style="white-space:pre-wrap;"> 1,169,592</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.45%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><span style="white-space:pre-wrap;"> 27.3</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.13%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">%</p></td></tr><tr><td style="vertical-align:bottom;width:23.95%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 18pt;">Total</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.21%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.32%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.36%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><span style="white-space:pre-wrap;"> 5,680,781</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.21%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.95%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><span style="white-space:pre-wrap;"> 100.0</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.95%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.21%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.32%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.36%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><span style="white-space:pre-wrap;"> 5,157,376</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.21%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.95%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><span style="white-space:pre-wrap;"> 100.0</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.36%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><span style="white-space:pre-wrap;"> 4,287,586</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.45%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><span style="white-space:pre-wrap;"> 100.0</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.13%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">%</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">Backlog as of September 30, 2024 was $5.68&#160;billion, a 1.6% decrease from June 30, 2024 backlog of $5.77&#160;billion, and a 32.5% increase from September 30, 2023 backlog of $4.29&#160;billion. The sequential backlog decrease was primarily a result of the completion of project work at two of our Texas operations ($78.8 million), one of our Virginia operations ($56.5 million) and our Indiana electrical operation ($32.7 million). The sequential backlog decrease </p></div></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:12pt 0pt 0pt 0pt;">28</p></div></div>
<div style="background-color:#000000;clear:both;height:2pt;page-break-after:always;width:79.41%;border:0;margin:30pt 10.29% 30pt 10.29%;"></div><div style="max-width:100%;padding-left:10.29%;padding-right:10.29%;position:relative;"><div style="margin-top:21.6pt;min-height:41.4pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 30pt 0pt;"><a href="#Toc"><span style="font-style:normal;font-weight:normal;">Table of Contents</span></a></p></div><div style="clear:both;margin-left:-10.0pt;margin-right:-10.0pt;max-width:100%;position:relative;width:calc(100% + 20.0pt);"><div style="padding-left:10pt;padding-right:10pt;position:relative;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">was partially offset by increased project bookings at another one of our Texas operations ($90.7 million). The year-over-year backlog increase included the acquisitions of Summit ($324.6 million), J&amp;S ($136.1 million) and DECCO ($49.4 million) as well as a same-store increase of $883.1 million, or 20.6%. Same-store year-over-year backlog growth was primarily attributable to increased project bookings at our Texas electrical operation ($268.4 million), one of our Virginia operations ($146.2 million), our Mississippi operation ($109.2 million), our North Carolina operations ($106.8 million) and another one of our Texas operations ($104.3 million).</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="color:#ff0000;visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><i style="font-style:italic;">Gross Profit</i>&#8212;Gross profit increased $104.2&#160;million, or 37.6%, to $381.7&#160;million for the third quarter of 2024 as compared to the same period in 2023. The increase included a $24.7 million, or 8.9%, increase related to the Summit, J&amp;S, and DECCO acquisitions, as well as a 28.7% increase in same-store activity. The same-store increase in gross profit was driven by both higher revenues in the current year as well as improved execution in our operations, including improvements in project execution at two of our Texas operations ($31.3 million) and our Texas electrical operation ($26.1 million). Additionally, we had increased volumes at one of our Virginia operations ($7.9 million). As a percentage of revenue, gross profit for the third quarter increased from 20.1% in 2023 to 21.1% in 2024, primarily due to the factors discussed above and improvements in our electrical segment gross profit margin.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">Gross profit increased $331.8 million, or 46.7%, to $1.04 billion for the first nine months of 2024 as compared to the same period in 2023. The increase included a 6.0% increase related to the Summit, J&amp;S, DECCO, and Eldeco acquisitions, as well as a 40.7% increase in same-store activity. The same-store increase in gross profit was primarily driven by both higher revenues in the current year as well as improved execution in our operations, including improvements in project execution at our Texas electrical operation ($74.4 million) and another one of our Texas operations ($47.5 million). Additionally, we had increased volumes at one of our Texas operations ($31.5 million), our North Carolina operations ($27.5 million) and one of our Virginia operations ($22.7 million). These increases were partially offset by a benefit in the first quarter of 2023 of $6.6 million in gross profit related to positive developments on legal matters. As a percentage of revenue, gross profit for the nine-month period increased from 18.5% in 2023 to 20.2% in 2024, primarily due to the factors discussed above and improvements in our electrical segment gross profit margin.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-style:italic;visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><i style="font-style:italic;">Selling, General and Administrative Expenses (&#8220;SG&amp;A&#8221;)</i>&#8212;SG&amp;A increased $37.2&#160;million, or 26.1%, to $180.2&#160;million for the third quarter of 2024 as compared to 2023. On a same-store basis, excluding amortization expense, SG&amp;A increased $26.5&#160;million, or 19.9%. The same-store increase is primarily due to higher same-store revenue and<span style="color:#ff0000;"> </span>increased compensation costs ($19.0 million), largely attributable to increased headcount. Amortization expense increased $4.8 million during the period, primarily as a result of the Summit, J&amp;S, and DECCO acquisitions. As a percentage of revenue, SG&amp;A for the third quarter decreased from 10.4% in 2023 to 9.9% in 2024 due to leverage resulting from the increase in revenue.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">SG&amp;A increased $108.0 million, or 26.1%, to $522.4 million for the first nine months of 2024 as compared to 2023. On a same-store basis, excluding amortization expense, SG&amp;A increased $77.2 million, or 20.0%. The same-store increase is primarily due to higher same-store revenue and increased compensation costs ($57.7 million), largely attributable to increased headcount and increased cost of labor. Amortization expense increased $12.8 million during the period, primarily as a result of the Summit, J&amp;S and DECCO acquisitions. As a percentage of revenue, SG&amp;A for the nine-month period decreased from 10.8% in 2023 to 10.1% in 2024 due to leverage resulting from the increase in revenue. </p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">We have included same-store SG&amp;A, excluding amortization, because we believe it is an effective measure of comparative results of operations. However, same-store SG&amp;A, excluding amortization, is not considered under generally accepted accounting principles to be a primary measure of an entity&#8217;s financial results and, accordingly, should not be considered an alternative to SG&amp;A as shown in our consolidated statements of operations.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;table-layout:auto;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:45.39%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;width:1.7%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:normal;width:1.69%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:normal;width:9.3%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:normal;width:2.77%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:normal;width:1.69%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:normal;width:9.3%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:normal;width:2.77%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:normal;width:1.69%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:normal;width:9.3%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:normal;width:2.77%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:normal;width:1.69%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:normal;width:9.3%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:normal;width:0.57%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:45.39%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;width:1.7%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="5" style="vertical-align:bottom;white-space:normal;width:24.77%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Three Months Ended</b></p></td><td style="vertical-align:bottom;white-space:normal;width:2.77%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td colspan="5" style="vertical-align:bottom;white-space:normal;width:24.77%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Nine Months Ended</b></p></td><td style="vertical-align:bottom;white-space:normal;width:0.57%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:45.39%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;width:1.7%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="5" style="vertical-align:bottom;white-space:normal;width:24.77%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">September 30,</b></p></td><td style="vertical-align:bottom;white-space:normal;width:2.77%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td colspan="5" style="vertical-align:bottom;white-space:normal;width:24.77%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">September 30,</b></p></td><td style="vertical-align:bottom;white-space:normal;width:0.57%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:45.39%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;width:1.7%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td colspan="2" style="vertical-align:bottom;white-space:normal;width:10.99%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2024</b></p></td><td style="vertical-align:bottom;white-space:normal;width:2.77%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td colspan="2" style="vertical-align:bottom;white-space:normal;width:10.99%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2023</b></p></td><td style="vertical-align:bottom;white-space:normal;width:2.77%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td colspan="2" style="vertical-align:bottom;white-space:normal;width:10.99%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2024</b></p></td><td style="vertical-align:bottom;white-space:normal;width:2.77%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td colspan="2" style="vertical-align:bottom;white-space:normal;width:10.99%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2023</b></p></td><td style="vertical-align:bottom;white-space:normal;width:0.57%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td></tr><tr style="height:0pt;visibility:hidden;"><td colspan="14" style="padding:0pt;"/></tr><tr><td style="vertical-align:bottom;width:45.39%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;width:1.7%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="5" style="vertical-align:bottom;white-space:normal;width:24.77%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">(in&#160;thousands)</b></p></td><td style="vertical-align:bottom;white-space:normal;width:2.77%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td colspan="5" style="vertical-align:bottom;white-space:normal;width:24.77%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">(in&#160;thousands)</b></p></td><td style="vertical-align:bottom;white-space:normal;width:0.57%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:45.39%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">SG&amp;A</p></td><td style="vertical-align:bottom;width:1.7%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:normal;width:1.69%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:normal;width:9.3%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><span style="white-space:pre-wrap;"> 180,177</span></p></td><td style="vertical-align:bottom;white-space:normal;width:2.77%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:normal;width:1.69%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:normal;width:9.3%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><span style="white-space:pre-wrap;"> 142,935</span></p></td><td style="vertical-align:bottom;white-space:normal;width:2.77%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:normal;width:1.69%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:normal;width:9.3%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><span style="white-space:pre-wrap;"> 522,437</span></p></td><td style="vertical-align:bottom;white-space:normal;width:2.77%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:normal;width:1.69%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:normal;width:9.3%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><span style="white-space:pre-wrap;"> 414,397</span></p></td><td style="vertical-align:bottom;white-space:normal;width:0.57%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:45.39%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Less: SG&amp;A from companies acquired</p></td><td style="vertical-align:bottom;width:1.7%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:normal;width:1.69%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:normal;width:9.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="white-space:pre-wrap;"> (5,977)</span></p></td><td style="vertical-align:bottom;white-space:normal;width:2.77%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:normal;width:1.69%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:normal;width:9.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><span style="white-space:pre-wrap;"> &#8212;</span></p></td><td style="vertical-align:bottom;white-space:normal;width:2.77%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:normal;width:1.69%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:normal;width:9.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="white-space:pre-wrap;"> (18,039)</span></p></td><td style="vertical-align:bottom;white-space:normal;width:2.77%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:normal;width:1.69%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:normal;width:9.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><span style="white-space:pre-wrap;"> &#8212;</span></p></td><td style="vertical-align:bottom;white-space:normal;width:0.57%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:45.39%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Less: Amortization expense</p></td><td style="vertical-align:bottom;width:1.7%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:normal;width:1.69%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:normal;width:9.3%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="white-space:pre-wrap;"> (14,289)</span></p></td><td style="vertical-align:bottom;white-space:normal;width:2.77%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:normal;width:1.69%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:normal;width:9.3%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="white-space:pre-wrap;"> (9,516)</span></p></td><td style="vertical-align:bottom;white-space:normal;width:2.77%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:normal;width:1.69%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:normal;width:9.3%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="white-space:pre-wrap;"> (41,079)</span></p></td><td style="vertical-align:bottom;white-space:normal;width:2.77%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:normal;width:1.69%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:normal;width:9.3%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="white-space:pre-wrap;"> (28,326)</span></p></td><td style="vertical-align:bottom;white-space:normal;width:0.57%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:45.39%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Same-store SG&amp;A, excluding amortization expense</p></td><td style="vertical-align:bottom;width:1.7%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:normal;width:1.69%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:normal;width:9.3%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><span style="white-space:pre-wrap;"> 159,911</span></p></td><td style="vertical-align:bottom;white-space:normal;width:2.77%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:normal;width:1.69%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:normal;width:9.3%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><span style="white-space:pre-wrap;"> 133,419</span></p></td><td style="vertical-align:bottom;white-space:normal;width:2.77%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:normal;width:1.69%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:normal;width:9.3%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><span style="white-space:pre-wrap;"> 463,319</span></p></td><td style="vertical-align:bottom;white-space:normal;width:2.77%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:normal;width:1.69%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:normal;width:9.3%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><span style="white-space:pre-wrap;"> 386,071</span></p></td><td style="vertical-align:bottom;white-space:normal;width:0.57%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td></tr></table></div></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:12pt 0pt 0pt 0pt;">29</p></div></div>
<div style="background-color:#000000;clear:both;height:2pt;page-break-after:always;width:79.41%;border:0;margin:30pt 10.29% 30pt 10.29%;"></div><div style="max-width:100%;padding-left:10.29%;padding-right:10.29%;position:relative;"><div style="margin-top:21.6pt;min-height:41.4pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 30pt 0pt;"><a href="#Toc"><span style="font-style:normal;font-weight:normal;">Table of Contents</span></a></p></div><div style="clear:both;margin-left:-10.0pt;margin-right:-10.0pt;max-width:100%;position:relative;width:calc(100% + 20.0pt);"><div style="padding-left:10pt;padding-right:10pt;position:relative;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-style:italic;visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><i style="font-style:italic;">Interest Income</i>&#8212;Interest income increased $2.9 million to $3.8 million for the third quarter of 2024 as compared to the same period in 2023. Interest income increased $4.3 million to $6.7 million for the first nine months of 2024 compared to the same period in 2023. The increase in interest income for the third quarter of 2024 and first nine months of 2024 is due to an increase in our average cash balance and higher interest rates compared to the prior year. </p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="font-style:italic;visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><i style="font-style:italic;">Interest Expense</i>&#8212;Interest expense decreased $0.2&#160;million, or 8.3%, to $1.7&#160;million for the third quarter of 2024 as compared to the same period in 2023. Interest expense decreased $4.8 million, or 48.7%, to $5.1 million for the first nine months of 2024 compared to the same period in 2023. The decrease in interest expense for the third quarter of 2024 and first nine months of 2024 is due to a decrease in our average outstanding debt balance compared to the prior year. </p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;"><i style="font-style:italic;">Changes in the Fair Value of Contingent Earn-out Obligations</i>&#8212;The contingent earn-out obligations are measured at fair value each reporting period, and changes in estimates of fair value are recognized in earnings. Expense from changes in the fair value of contingent earn-out obligations for the third quarter of 2024 increased $8.5&#160;million as compared to the same period in 2023. The increase in earn-out expense was primarily driven by higher actual and projected earnings at Summit. Expense from changes in the fair value of contingent earn-out obligations for the first nine months of 2024 increased $30.2 million as compared to the same period in 2023. The increase in earn-out expense was primarily driven by higher actual and projected earnings at Summit and J&amp;S. Expense or income from changes in earn-out valuations may be more volatile in future periods due to large earn-out agreements for acquisitions that closed in 2024.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><i style="font-style:italic;">Provision for Income Taxes</i>&#8212;Our provision for income taxes for the nine months ended September 30, 2024 was $104.0&#160;million with an effective tax rate of 21.6% as compared to a provision for income taxes of $44.6&#160;million with an effective tax rate of 16.1% for the same period in 2023. The effective tax rate for 2024 is slightly higher than the 21% federal statutory rate primarily due to net state income taxes (3.6%) and net nondeductible expenses (0.6%), partially offset by the credit for increasing research activities (the &#8220;R&amp;D tax credit&#8221;) (3.6%). The effective tax rate for 2023 was lower than the 21% federal statutory rate primarily due to the R&amp;D tax credit (5.6%) and an increase in the R&amp;D tax credit for the 2022 tax year (3.9%). These R&amp;D tax credit benefits were partially offset by net state income taxes (3.7%) and net nondeductible expenses (1.4%).</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">As a result of conforming amendments made to the R&amp;D tax credit in connection with the deferral of tax deductions for research and experimental (&#8220;R&amp;E&#8221;) expenditures pursuant to the Tax Cuts and Jobs Act (2017), our provision for income taxes for the nine months ended September 30, 2024 benefited from a $3.7 million increase in the R&amp;D tax credit.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 0pt 36pt;"><span style="font-style:italic;font-weight:bold;">Outlook</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 0pt 36pt;"><span style="margin-left:0pt;visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="display:inline-block;text-indent:0pt;width:36pt;"></span>We experienced strong ongoing demand in the first nine months of 2024, although we continue to experience increased labor costs and impacts from supply chain shortages, including delays in delivery of certain materials and equipment. We are recognizing these challenges in our job planning and pricing, and we are ordering materials on an earlier timeline and seeking to collaborate with customers to share supply risks and to mitigate the effects of these challenges. We have been generally successful in maintaining productivity and in procuring needed materials despite ongoing challenges.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">We have a good pipeline of opportunities and potential backlog. Considering our substantial advance bookings, we currently anticipate solid earnings for the remainder of 2024 and in 2025. Although we are preparing for a wide range of challenges and economic circumstances, including a potential recession, we currently expect that supportive conditions for our industry, especially for our manufacturing and technology customers, are likely to continue for the rest of 2024 and leading into 2025.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></div></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:12pt 0pt 0pt 0pt;">30</p></div></div>
<div style="background-color:#000000;clear:both;height:2pt;page-break-after:always;width:79.41%;border:0;margin:30pt 10.29% 30pt 10.29%;"></div><div style="max-width:100%;padding-left:10.29%;padding-right:10.29%;position:relative;"><div style="margin-top:21.6pt;min-height:41.4pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 30pt 0pt;"><a href="#Toc"><span style="font-style:normal;font-weight:normal;">Table of Contents</span></a></p></div><div style="clear:both;margin-left:-10.0pt;margin-right:-10.0pt;max-width:100%;position:relative;width:calc(100% + 20.0pt);"><div style="padding-left:10pt;padding-right:10pt;position:relative;width:100%;"><a id="_61285128_c416_422a_b951_4790055c9710"></a><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">Liquidity and Capital Resources (in thousands):</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 0pt 36pt;"><span style="margin-left:0pt;visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:79.99%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:70.74%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;width:2.05%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;width:1.28%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;width:10.72%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;width:2.05%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;width:1.28%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;width:10.72%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;width:1.11%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:70.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;width:2.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="5" style="vertical-align:bottom;width:26.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Nine Months Ended </b></p></td><td style="vertical-align:bottom;width:1.11%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:70.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;width:2.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="5" style="vertical-align:bottom;white-space:nowrap;width:26.08%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">September 30, </b></p></td><td style="vertical-align:bottom;width:1.11%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:70.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:12.01%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2024</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:12.01%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2023</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.11%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td></tr><tr><td style="vertical-align:bottom;width:70.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;width:2.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;width:1.28%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;width:10.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;width:2.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;width:1.28%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;width:10.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;width:1.11%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:70.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Cash provided by (used in):</p></td><td style="vertical-align:bottom;width:2.05%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.28%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.05%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.28%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.11%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:11pt;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:70.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">Operating activities</p></td><td style="vertical-align:bottom;width:2.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;"><span style="margin-left:0pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.28%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0pt 0pt;"><span style="white-space:pre-wrap;"> 638,594</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.28%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0pt 0pt;"><span style="white-space:pre-wrap;"> 466,560</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.11%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:70.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">Investing activities</p></td><td style="vertical-align:bottom;width:2.05%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;"><span style="margin-left:0pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.28%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="white-space:pre-wrap;"> (304,020)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.05%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.28%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="white-space:pre-wrap;"> (119,125)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.11%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:70.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">Financing activities</p></td><td style="vertical-align:bottom;width:2.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;"><span style="margin-left:0pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.28%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.72%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="white-space:pre-wrap;"> (124,141)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.28%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.72%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="white-space:pre-wrap;"> (267,026)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.11%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:70.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Net increase (decrease) in cash and cash equivalents</p></td><td style="vertical-align:bottom;width:2.05%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.28%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.72%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0pt 0pt;"><span style="white-space:pre-wrap;"> 210,433</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.05%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.28%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.72%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0pt 0pt;"><span style="white-space:pre-wrap;"> 80,409</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.11%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:70.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Free cash flow:</p></td><td style="vertical-align:bottom;width:2.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.28%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.28%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.11%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:70.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">Cash provided by operating activities</p></td><td style="vertical-align:bottom;width:2.05%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;"><span style="margin-left:0pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.28%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0pt 0pt;"><span style="white-space:pre-wrap;"> 638,594</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.05%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.28%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0pt 0pt;"><span style="white-space:pre-wrap;"> 466,560</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.11%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:70.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">Purchases of property and equipment</p></td><td style="vertical-align:bottom;width:2.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;"><span style="margin-left:0pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.28%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="white-space:pre-wrap;"> (70,395)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.28%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="white-space:pre-wrap;"> (69,574)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.11%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:70.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">Proceeds from sales of property and equipment</p></td><td style="vertical-align:bottom;width:2.05%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;"><span style="margin-left:0pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.28%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.72%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0pt 0pt;"><span style="white-space:pre-wrap;"> 3,611</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.05%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.28%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.72%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0pt 0pt;"><span style="white-space:pre-wrap;"> 5,093</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.11%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:70.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Free cash flow</p></td><td style="vertical-align:bottom;width:2.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.28%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.72%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0pt 0pt;"><span style="white-space:pre-wrap;"> 571,810</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.28%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.72%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0pt 0pt;"><span style="white-space:pre-wrap;"> 402,079</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.11%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 0pt 36pt;"><span style="font-style:italic;font-weight:bold;">Cash Flow</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 0pt 36pt;"><span style="margin-left:0pt;visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">Our business does not require significant amounts of investment in long-term fixed assets. The substantial majority of the capital used in our business is working capital that funds our costs of labor and installed equipment deployed in project work until our customer pays us. Customary terms in our industry allow customers to withhold a small portion of the contract price until after we have completed the work, typically for six months. Amounts withheld under this practice are known as retention or retainage. Our average project duration, together with typical retention terms, generally allow us to complete the realization of revenue and earnings in cash within one year.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><i style="font-style:italic;">Cash Provided by Operating Activities</i>&#8212;Cash flow from operations is primarily influenced by demand for our services and operating margins but can also be influenced by working capital needs associated with the various types of services that we provide. In particular, working capital needs may increase when we commence large volumes of work under circumstances where project costs, primarily associated with labor, equipment and subcontractors, are required to be paid before the receivables resulting from the work performed are billed and collected. Working capital needs are generally higher during the late winter and spring months as we prepare and plan for the increased project demand when favorable weather conditions exist in the summer and fall months. Conversely, working capital assets are typically converted to cash during the late summer and fall months as project completion is underway. These seasonal trends are sometimes offset by changes in the timing of major projects, which can be impacted by the weather, project delays or accelerations and other economic factors that may affect customer spending. </p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">Cash provided by operating activities was $638.6&#160;million during the first nine months of 2024 compared to $466.6&#160;million during the same period in 2023. The $172.0 million increase in cash provided was primarily driven by higher earnings before non-cash expenses such as amortization of intangible assets, a $138.4 million benefit from increases in accounts payable and accrued liabilities driven by the size and timing of payments and a $113.3 million benefit from changes in accounts receivables, net. This increase was partially offset by a $136.7 million change in billings in excess of costs and deferred revenue due to more advanced payments received in the prior year. We have received large advanced payments in the current and prior years that will reverse when project costs are incurred, except to the extent that additional advanced payments are received.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><i style="font-style:italic;">Cash Used in Investing Activities</i>&#8212;During the first nine months of 2024, cash used in investing activities was $304.0&#160;million compared to $119.1&#160;million during the same period in 2023. The $184.9 million increase in cash used primarily related to an increase in cash paid (net of cash acquired) for acquisitions in the current year compared to the same period in 2023. </p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><i style="font-style:italic;">Cash Used in Financing Activities</i>&#8212;Cash used in financing activities was $124.1&#160;million for the first nine months of 2024 compared to $267.0&#160;million during the same period in 2023. The $142.9 million decrease in cash used was primarily due to higher net repayments of debt in the prior year as operating cash flows were used to pay down outstanding debt partially offset by increased share repurchases of $33.5 million in the current year.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></div></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:12pt 0pt 0pt 0pt;">31</p></div></div>
<div style="background-color:#000000;clear:both;height:2pt;page-break-after:always;width:79.41%;border:0;margin:30pt 10.29% 30pt 10.29%;"></div><div style="max-width:100%;padding-left:10.29%;padding-right:10.29%;position:relative;"><div style="margin-top:21.6pt;min-height:41.4pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 30pt 0pt;"><a href="#Toc"><span style="font-style:normal;font-weight:normal;">Table of Contents</span></a></p></div><div style="clear:both;margin-left:-10.0pt;margin-right:-10.0pt;max-width:100%;position:relative;width:calc(100% + 20.0pt);"><div style="padding-left:10pt;padding-right:10pt;position:relative;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><i style="font-style:italic;">Free Cash Flow</i>&#8212;We define free cash flow as cash provided by operating activities, less customary capital expenditures, plus the proceeds from asset sales. We believe free cash flow, by encompassing both profit margins and the use of working capital over our approximately one year working capital cycle, is an effective measure of operating effectiveness and efficiency. We have included free cash flow information here for this reason, and because we are often asked about it by third parties evaluating us. However, free cash flow is not considered under generally accepted accounting principles to be a primary measure of an entity&#8217;s financial results, and accordingly free cash flow should not be considered an alternative to operating income, net income, or amounts shown in our consolidated statements of cash flows as determined under generally accepted accounting principles. Free cash flow may be defined differently by other companies.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 0pt 36pt;"><span style="font-style:italic;font-weight:bold;">Share Repurchase Program</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 0pt 36pt;"><span style="margin-left:0pt;visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">On March&#160;29, 2007, our Board of Directors (the &#8220;Board&#8221;) approved a stock repurchase program to acquire up to 1.0&#160;million shares of our outstanding common stock. Subsequently, the Board has from time to time increased the number of shares that may be acquired under the program and approved extensions of the program. On August 7, 2024, the Board approved an extension to the program by increasing the shares authorized for repurchase by 0.4 million shares. Since the inception of the repurchase program, the Board has approved 11.4&#160;million shares to be repurchased. As of September 30, 2024, we have repurchased a cumulative total of 10.4&#160;million shares at an average price of $29.99 per share under the repurchase program.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">The share repurchases will be made from time to time at our discretion in the open market or privately negotiated transactions, as permitted by securities laws and other legal requirements, and subject to market conditions and other factors. The Board may modify, suspend, extend or terminate the program at any time. During the nine months ended September 30, 2024, we repurchased 0.1 million shares for approximately $42.3&#160;million at an average price of $310.02 per share. </p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 0pt 36pt;"><span style="font-style:italic;font-weight:bold;">Debt</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 0pt 36pt;"><span style="margin-left:0pt;visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 0pt 36pt;"><span style="font-style:italic;font-weight:bold;">Revolving Credit Facility </span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 0pt 36pt;"><span style="margin-left:0pt;visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">We have an $850.0 million senior credit facility (the &#8220;Facility&#8221;) provided by a syndicate of banks, which is composed of a revolving credit line guaranteed by certain of our subsidiaries. The Facility also provides for an accordion or increase option not to exceed the greater of (a) $250 million and (b) 1.0x Credit Facility Adjusted EBITDA (as defined below), as well as a sublimit of up to $175.0 million issuable in the form of letters of credit. The Facility expires in July 2027 and is secured by a first lien on substantially all of our personal property except for assets related to projects subject to surety bonds and the equity of, and assets held by, certain unrestricted subsidiaries and our wholly owned captive insurance company, and a second lien on our assets related to projects subject to surety bonds. As of September 30, 2024, we had no outstanding borrowings on the revolving credit facility, $80.0&#160;million in letters of credit outstanding and $770.0&#160;million of credit available.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">There are two interest rate options for borrowings under the Facility, the Base Rate Loan (as defined in the Facility) option and the Secured Overnight Financing Rate (&#8220;SOFR&#8221;) Loan option. These rates are floating rates determined by the broad financial markets, meaning they can and do move up and down from time to time. Additional margins are then added to these two rates.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-style:italic;visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">Certain of our vendors require letters of credit to ensure reimbursement for amounts they are disbursing on our behalf, such as to beneficiaries under our self-funded insurance programs. We have also occasionally used letters of credit to guarantee performance under our contracts and to ensure payment to our subcontractors and vendors under those contracts. Our lenders issue such letters of credit through the Facility. A letter of credit commits the lenders to pay specified amounts to the holder of the letter of credit if the holder demonstrates that we have failed to perform specified actions. If this were to occur, we would be required to reimburse the lenders for amounts they fund to honor the letter of credit holder&#8217;s claim. Absent a claim, there is no payment or reserving of funds by us in connection with a letter of credit. However, because a claim on a letter of credit would require immediate reimbursement by us to our lenders, letters of credit are treated as a use of Facility capacity. The letter of credit fees range from 1.00% to 2.00% per annum, based on the Net Leverage Ratio.</p></div></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:12pt 0pt 0pt 0pt;">32</p></div></div>
<div style="background-color:#000000;clear:both;height:2pt;page-break-after:always;width:79.41%;border:0;margin:30pt 10.29% 30pt 10.29%;"></div><div style="max-width:100%;padding-left:10.29%;padding-right:10.29%;position:relative;"><div style="margin-top:21.6pt;min-height:41.4pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 30pt 0pt;"><a href="#Toc"><span style="font-style:normal;font-weight:normal;">Table of Contents</span></a></p></div><div style="clear:both;margin-left:-10.0pt;margin-right:-10.0pt;max-width:100%;position:relative;width:calc(100% + 20.0pt);"><div style="padding-left:10pt;padding-right:10pt;position:relative;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">As of September 30, 2024, we have $80.0&#160;million in letter of credit commitments, of which $55.0&#160;million will expire in 2024, $24.8&#160;million will expire in 2025 and $0.2 million will expire in 2026. The substantial majority of these letters of credit are posted with insurers who disburse funds on our behalf in connection with our workers&#8217; compensation, auto liability and general liability insurance program. These letters of credit provide additional security to the insurers that sufficient financial resources will be available to fund claims on our behalf, many of which develop over long periods of time, should we ever encounter financial duress. Posting of letters of credit for this purpose is a common practice for entities that manage their self-insurance programs through third-party insurers as we do. While some of these letter of credit commitments expire in the next twelve months, we expect nearly all of them, particularly those supporting our insurance programs, will be renewed annually.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">Commitment fees are payable on the portion of the revolving loan capacity not in use for borrowings or letters of credit at any given time. These fees range from 0.15% to 0.25% per annum, based on the Net Leverage Ratio.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">The Facility contains financial covenants defining various financial measures and the levels of these measures with which we must comply. Covenant compliance is assessed as of each quarter end. We were in compliance with all of our financial covenants as of September 30, 2024.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 0pt 36pt;"><span style="font-style:italic;font-weight:bold;">Notes to Former Owners</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">As part of the consideration used to acquire eight companies, we have outstanding notes to the former owners. Together, these notes had an outstanding balance of $67.6 million as of September 30, 2024. At September 30, 2024, future principal payments of notes to former owners by maturity year are as follows (dollars in thousands):</p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:79.99%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:52.91%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:3.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.83%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:19.53%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:3.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:16.1%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:3.56%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:52.91%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;width:3.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:21.37%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Balance at</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:19.66%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Range of Stated</b></p></td></tr><tr><td style="vertical-align:bottom;width:52.91%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;width:3.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:21.37%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">September 30, 2024</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:19.66%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;white-space:pre-wrap;"> Interest Rates</b></p></td></tr><tr><td style="vertical-align:bottom;width:52.91%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">2025</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.83%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:11pt;">$</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:19.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0pt 0pt;"><span style="white-space:pre-wrap;"> 5,968</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:16.1%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0pt 0pt;">2.3 - 2.5</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.56%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:11pt;">%</span></p></td></tr><tr><td style="vertical-align:bottom;width:52.91%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">2026</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.83%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:19.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0pt 0pt;"><span style="white-space:pre-wrap;"> 30,625</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:16.1%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0pt 0pt;">2.5 - 5.5</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:11pt;">%</span></p></td></tr><tr><td style="vertical-align:bottom;width:52.91%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">2027</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.83%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:19.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0pt 0pt;"><span style="white-space:pre-wrap;"> 26,000</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:16.1%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0pt 0pt;"><span style="white-space:pre-wrap;"> 5.5</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.56%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:11pt;">%</span></p></td></tr><tr><td style="vertical-align:bottom;width:52.91%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">2028</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.83%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:19.53%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0pt 0pt;"><span style="white-space:pre-wrap;"> 5,000</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:16.1%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0pt 0pt;"><span style="white-space:pre-wrap;"> 5.5</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:11pt;">%</span></p></td></tr><tr><td style="vertical-align:bottom;width:52.91%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 18pt;">Total</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.83%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:19.53%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0pt 0pt;"><span style="white-space:pre-wrap;"> 67,593</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:16.1%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.56%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:11pt;visibility:hidden;">&#8203;</span></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 0pt 36pt;"><span style="font-style:italic;font-weight:bold;">Outlook</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 0pt 36pt;"><span style="font-style:italic;font-weight:bold;margin-left:0pt;visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">We have generated positive net free cash flow for the last twenty-five calendar years, much of which occurred during challenging economic and industry conditions. We also continue to have significant borrowing capacity under our credit facility, and we maintain what we feel are reasonable cash balances. We believe these factors will provide us with sufficient liquidity to fund our operations for the foreseeable future.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">Other Commitments</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">Many customers, particularly in connection with new construction, require us to post performance and payment bonds issued by a financial institution known as a surety. If we fail to perform under the terms of a contract or to pay subcontractors and vendors who provided goods or services under a contract, the customer may demand that the surety make payments or provide services under the bond. We must reimburse the sureties for any expenses or outlays they incur. </p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">Under standard terms in the surety market, sureties issue bonds on a project-by-project basis, and can decline to issue bonds at any time. Historically, approximately 10% to 20% of our business has required bonds. While we currently have strong surety relationships to support our bonding needs, future market conditions or changes in our sureties&#8217; assessment of our operating and financial risk could cause our sureties to decline to issue bonds for our work. If that were to occur, our alternatives include doing more business that does not require bonds, posting other forms of collateral for project performance, such as letters of credit or cash, and seeking bonding capacity from other sureties. We would likely also encounter concerns from customers, suppliers and other market participants as to our creditworthiness. While we believe our general operating and financial characteristics would enable us to ultimately respond effectively to an </p></div></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:12pt 0pt 0pt 0pt;">33</p></div></div>
<div style="background-color:#000000;clear:both;height:2pt;page-break-after:always;width:79.41%;border:0;margin:30pt 10.29% 30pt 10.29%;"></div><div style="max-width:100%;padding-left:10.29%;padding-right:10.29%;position:relative;"><div style="margin-top:21.6pt;min-height:41.4pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 30pt 0pt;"><a href="#Toc"><span style="font-style:normal;font-weight:normal;">Table of Contents</span></a></p></div><div style="clear:both;margin-left:-10.0pt;margin-right:-10.0pt;max-width:100%;position:relative;width:calc(100% + 20.0pt);"><div style="padding-left:10pt;padding-right:10pt;position:relative;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">interruption in the availability of bonding capacity, such an interruption would likely cause our revenue and profits to decline in the near term.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><a id="_a33d7ee3_fe1d_4d5e_91da_3e31245aeb61"></a><a id="Item3QuantitativeandQualitativeDisclosur"></a><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">Item&#160;</b><b style="font-weight:bold;white-space:pre-wrap;">3.  </b><span style="font-style:italic;font-weight:bold;">Quantitative and Qualitative Disclosures about Market Risk</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-style:italic;font-weight:bold;visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">We are exposed to market risk primarily related to potential adverse changes in interest rates, as discussed below. We are actively involved in monitoring exposure to market risk and continue to develop and utilize appropriate risk management techniques. We are not exposed to any other significant financial market risks, including commodity price risk, or foreign currency exchange risk from the use of derivative financial instruments. At times, we use derivative financial instruments to manage our interest rate risk.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">We have exposure to changes in interest rates under our revolving credit facility. There were no outstanding borrowings on the revolving credit facility as of September 30, 2024 and December 31, 2023. Our debt with fixed interest rates consists of notes to former owners of acquired companies and acquired notes payable.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">We measure certain assets at fair value on a nonrecurring basis. These assets are recognized at fair value when they are deemed to be other-than-temporarily impaired. We did not recognize any impairments in the current year on those assets required to be measured at fair value on a nonrecurring basis.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">The valuation of the Company&#8217;s contingent earn-out payments is determined using a probability weighted discounted cash flow method. This analysis reflects the contractual terms of the purchase agreements (<i style="font-style:italic;">e.g.</i>,&#160;minimum and maximum payment, length of earn-out periods, manner of calculating any amounts due, etc.) and utilizes assumptions with regard to future cash flows, probabilities of achieving such future cash flows and a discount rate.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><a id="_7832deda_96f6_4b93_bf75_335fe3931d8a"></a><a id="Item4ControlsandProcedures_993069"></a><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">Item&#160;</b><b style="font-weight:bold;white-space:pre-wrap;">4.  </b><span style="font-style:italic;font-weight:bold;">Controls and Procedures</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-style:italic;font-weight:bold;visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">Evaluation of Disclosure Controls and Procedures</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">Our executive management is responsible for ensuring the effectiveness of the design and operation of our disclosure controls and procedures. We carried out an evaluation under the supervision and with the participation of our management, including our Chief Executive Officer and Chief Financial Officer, of the effectiveness of the design and operation of our disclosure controls and procedures (as defined in Rules&#160;13a-15(e) and 15d-15(e) under the Securities Exchange Act of 1934) as of the end of the period covered by this report. Based on that evaluation, our Chief Executive Officer and Chief Financial Officer have concluded that our disclosure controls and procedures (as defined in Rules&#160;13a-15(e) and 15d-15(e) of the Securities Exchange Act of 1934) are effective as of the end of the period covered by this report.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">Changes in Internal Control over Financial Reporting</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">There have not been any changes in our internal control over financial reporting (as such term is defined in Rules&#160;13a-15(f) and 15d-15(f) under the Securities Exchange Act of 1934) during the three months ended September 30, 2024 that have materially affected, or are reasonably likely to materially affect, our internal control over financial reporting.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></div></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:12pt 0pt 0pt 0pt;">34</p></div></div>
<div style="background-color:#000000;clear:both;height:2pt;page-break-after:always;width:79.41%;border:0;margin:30pt 10.29% 30pt 10.29%;"></div><div style="max-width:100%;padding-left:10.29%;padding-right:10.29%;position:relative;"><div style="margin-top:21.6pt;min-height:41.4pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 30pt 0pt;"><a href="#Toc"><span style="font-style:normal;font-weight:normal;">Table of Contents</span></a></p></div><div style="clear:both;margin-left:-10.0pt;margin-right:-10.0pt;max-width:100%;position:relative;width:calc(100% + 20.0pt);"><div style="padding-left:10pt;padding-right:10pt;position:relative;width:100%;"><a id="_ad6afe3c_d3dc_45a3_afbd_57990a9f505b"></a><a id="PARTIIOTHERINFORMATION_876059"></a><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">PART II&#8212;OTHER INFORMATION</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p><a id="Item1LegalProceedings_592048"></a><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">Item&#160;</b><b style="font-weight:bold;white-space:pre-wrap;">1.  </b><span style="font-style:italic;font-weight:bold;">Legal Proceedings</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-style:italic;font-weight:bold;visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">We are subject to certain legal and regulatory claims, including lawsuits arising in the normal course of business. We maintain various insurance coverages to minimize financial risk associated with these claims. We have estimated and provided accruals for probable losses and related legal fees associated with certain litigation in our consolidated financial statements. While we cannot predict the outcome of these proceedings, in management&#8217;s opinion and based on reports of counsel, any liability arising from these matters individually and in the aggregate will not have a material effect on our operating results, cash flows or financial condition, after giving effect to provisions already recorded.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">In the first quarter of 2023, we recorded a pre-tax gain of $6.8 million from legal developments and settlements that primarily relate to disputes with customers regarding the outcome of completed projects as well as an obligation to perform subcontract work under two executed letters of intent for subsequent projects that we believed were not enforceable. The pre-tax gain of $6.8 million was recorded as an increase in gross profit of $6.6 million, a reduction in SG&amp;A of $0.7 million, an increase in interest income of $1.3 million and an increase in the change in fair value of contingent earn-out obligations expense of $1.8 million in our Consolidated Statements of Operations.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">As of September 30, 2024, we recorded an accrual for unresolved matters, which is not material to our financial statements, based on our analysis of likely outcomes related to the respective matters; however, it is possible that the ultimate outcome and associated costs will deviate from our estimates and that, in the event of an unexpectedly adverse outcome, we may experience additional costs and expenses in future periods.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><a id="_394bdd2d_c196_41c7_9573_d35b9813a3d9"></a><a id="Item1ARiskFactors_3757"></a><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">Item&#160;</b><b style="font-weight:bold;white-space:pre-wrap;">1A.  </b><span style="font-style:italic;font-weight:bold;">Risk Factors</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">In addition to the other information set forth in this report, you should carefully consider the factors discussed in Part&#160;1, &#8220;Item&#160;1A. Risk Factors&#8221; in our Annual Report on Form&#160;10-K for the year ended December&#160;31, 2023, which could materially affect our business, financial condition, or future results. Additional risks and uncertainties not currently known to us or that we currently deem to be immaterial also may materially adversely affect our business, financial condition, or future results. </p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><a id="_e709a50b_cf1b_4bda_86a0_7d7fad1651e4"></a><a id="Item2UnregisteredSalesofEquitySecurities"></a><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">Item&#160;</b><b style="font-weight:bold;white-space:pre-wrap;">2.  </b><span style="font-style:italic;font-weight:bold;">Unregistered Sales of Equity Securities and Use of Proceeds</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-style:italic;font-weight:bold;visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">Recent Sales of Unregistered Securities</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">None.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">Issuer Purchases of Equity Securities</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">On March&#160;29, 2007, our Board of Directors (the &#8220;Board&#8221;) approved a stock repurchase program to acquire up to 1.0&#160;million shares of our outstanding common stock. Subsequently, the Board has from time to time increased the number of shares that may be acquired under the program and approved extensions of the program. On August 7, 2024, the Board approved an extension to the program by increasing the shares authorized for repurchase by 0.4 million shares. Since the inception of the repurchase program, the Board has approved 11.4&#160;million shares to be repurchased. As of September 30, 2024, we have repurchased a cumulative total of 10.4&#160;million shares at an average price of $29.99 per share under the repurchase program.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">The share repurchases will be made from time to time at our discretion in the open market or privately negotiated transactions, as permitted by securities laws and other legal requirements, and subject to market conditions and other factors. The Board may modify, suspend, extend or terminate the program at any time. During the nine months ended September 30, 2024, we repurchased 0.1 million shares for approximately $42.3&#160;<span style="white-space:pre-wrap;">million at an average price of $310.02 per share.  </span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></div></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:12pt 0pt 0pt 0pt;">35</p></div></div>
<div style="background-color:#000000;clear:both;height:2pt;page-break-after:always;width:79.41%;border:0;margin:30pt 10.29% 30pt 10.29%;"></div><div style="max-width:100%;padding-left:10.29%;padding-right:10.29%;position:relative;"><div style="margin-top:21.6pt;min-height:41.4pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 30pt 0pt;"><a href="#Toc"><span style="font-style:normal;font-weight:normal;">Table of Contents</span></a></p></div><div style="clear:both;margin-left:-10.0pt;margin-right:-10.0pt;max-width:100%;position:relative;width:calc(100% + 20.0pt);"><div style="padding-left:10pt;padding-right:10pt;position:relative;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">During the quarter ended September 30, 2024, we purchased our common shares in the following amounts at the following average prices:</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:32.01%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.04%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.7%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:18.48%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:19.16%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:0.41%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:32.01%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.7%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:18.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Total&#160;Number&#160;of&#160;Shares</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:19.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Maximum&#160;Number&#160;of</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td></tr><tr><td style="vertical-align:bottom;width:32.01%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.7%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:18.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Purchased&#160;as&#160;Part&#160;of</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:19.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Shares&#160;that&#160;May&#160;Yet&#160;Be</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td></tr><tr><td style="vertical-align:bottom;width:32.01%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Total&#160;Number&#160;of</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Average&#160;Price</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:18.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Publicly&#160;Announced&#160;Plans</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:19.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Purchased&#160;Under&#160;the&#160;Plans</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td></tr><tr><td style="vertical-align:bottom;width:32.01%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">Period</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Shares&#160;Purchased</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Paid&#160;Per&#160;Share</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:18.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">or&#160;Programs (1)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:19.16%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">or&#160;Programs</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td></tr><tr><td style="vertical-align:bottom;width:32.01%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">July&#160;1&#160;-&#160;July&#160;31</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><span style="white-space:pre-wrap;"> 32,219</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.7%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><span style="white-space:pre-wrap;"> 305.13</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:18.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><span style="white-space:pre-wrap;"> 10,325,040</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:19.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><span style="white-space:pre-wrap;"> 619,085</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.41%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:32.01%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">August&#160;1&#160;-&#160;August&#160;31</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><span style="white-space:pre-wrap;"> 44,192</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.7%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><span style="white-space:pre-wrap;"> 315.12</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:18.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><span style="white-space:pre-wrap;"> 10,369,232</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:19.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><span style="white-space:pre-wrap;"> 986,319</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:32.01%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">September&#160;1&#160;-&#160;September&#160;30</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><span style="white-space:pre-wrap;"> 23,550</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.04%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.7%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><span style="white-space:pre-wrap;"> 314.55</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:18.48%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><span style="white-space:pre-wrap;"> 10,392,782</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:19.16%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><span style="white-space:pre-wrap;"> 962,769</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.41%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:32.01%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><span style="white-space:pre-wrap;"> 99,961</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.04%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.7%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><span style="white-space:pre-wrap;"> 311.77</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:18.48%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><span style="white-space:pre-wrap;"> 10,392,782</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:19.16%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><span style="white-space:pre-wrap;"> 962,769</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">________________________________________</p><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;width:100%;border:0pt;"><tr><td style="width:18pt;"/><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:36pt;padding:0pt;">(1)</td><td style="padding:0pt;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">Purchased as part of a program announced on March 29, 2007 under which, since the inception of this program, 11.4 million shares have been approved for repurchase.</span></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">Under our stock incentive plans, employees may elect to have us withhold common shares to satisfy statutory federal, state and local tax withholding obligations arising on the vesting of restricted stock awards and exercise of options. When we withhold these shares, we are required to remit to the appropriate taxing authorities the market price of the shares withheld, which could be deemed a purchase of the common shares by us on the date of withholding.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><a id="Item5OtherInformation"></a><a id="_e79bc628_546a_4c59_bc89_7d81194f2ec6"></a><a id="Other_Information"></a><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">ITEM 5. </b><span style="font-style:italic;font-weight:bold;">Other Information</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">Securities Trading Plans of Directors and Officers</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="display:inline-block;text-indent:0pt;width:36pt;"></span>During the three months ended September 30, 2024, no directors or officers of the Company <ix:nonNumeric contextRef="Duration_7_1_2024_To_9_30_2024_XquWrHsdeEmkK9F8qXf6qA" format="ixt:booleanfalse" name="ecd:NonRule10b51ArrAdoptedFlag" id="Narr_7JYl1hnZPEqzxd41in8jvw"><ix:nonNumeric contextRef="Duration_7_1_2024_To_9_30_2024_XquWrHsdeEmkK9F8qXf6qA" format="ixt:booleanfalse" name="ecd:Rule10b51ArrAdoptedFlag" id="Narr_KAOAUNWYU06QsQKcoU5TOw">adopted</ix:nonNumeric></ix:nonNumeric> or <ix:nonNumeric contextRef="Duration_7_1_2024_To_9_30_2024_XquWrHsdeEmkK9F8qXf6qA" format="ixt:booleanfalse" name="ecd:NonRule10b51ArrTrmntdFlag" id="Narr_rBeJfYT9QkO8hHtNiT8vAw"><ix:nonNumeric contextRef="Duration_7_1_2024_To_9_30_2024_XquWrHsdeEmkK9F8qXf6qA" format="ixt:booleanfalse" name="ecd:Rule10b51ArrTrmntdFlag" id="Narr_DytBEf-cQE6q13XHErLxew">terminated</ix:nonNumeric></ix:nonNumeric> a &#8220;Rule 10b5-1 trading arrangement&#8221; or &#8220;non-Rule 10b5-1 trading arrangement,&#8221; as defined in Item 408(a) and (c) of Regulation S-K.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></div></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:12pt 0pt 0pt 0pt;">36</p></div></div>
<div style="background-color:#000000;clear:both;height:2pt;page-break-after:always;width:79.41%;border:0;margin:30pt 10.29% 30pt 10.29%;"></div><div style="max-width:100%;padding-left:10.29%;padding-right:10.29%;position:relative;"><div style="margin-top:21.6pt;min-height:41.4pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 30pt 0pt;"><a href="#Toc"><span style="font-style:normal;font-weight:normal;">Table of Contents</span></a></p></div><div style="clear:both;margin-left:-10.0pt;margin-right:-10.0pt;max-width:100%;position:relative;width:calc(100% + 20.0pt);min-height:11.5pt;"><div style="padding-left:10pt;padding-right:10pt;position:relative;width:100%;"><a id="_c5b8325c_b1f3_42ee_95cf_9946fb662409"></a><a id="Item6Exhibits_786371"></a><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">Item&#160;</b><b style="font-weight:bold;white-space:pre-wrap;">6.  </b><span style="font-style:italic;font-weight:bold;">Exhibits</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:3.6pt;padding-right:3.6pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:10.22%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"/><td style="vertical-align:top;width:3.12%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"/><td style="vertical-align:bottom;width:51.2%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"/><td style="vertical-align:top;width:3.12%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"/><td style="vertical-align:bottom;width:7.33%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"/><td style="vertical-align:top;width:3.12%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"/><td style="vertical-align:bottom;width:21.85%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"/></tr><tr><td style="vertical-align:bottom;width:10.22%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:9pt;text-align:center;margin:0pt;"><span style="font-size:9pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:top;width:3.12%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:9pt;text-align:center;margin:0pt;"><span style="font-size:9pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;width:51.2%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:9pt;text-align:center;margin:0pt;"><span style="font-size:9pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:top;width:3.12%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:9pt;text-align:center;margin:0pt;"><span style="font-size:9pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="3" style="vertical-align:bottom;width:32.31%;border-bottom:1px solid #000000;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;line-height:9pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Incorporated by Reference</b><b style="font-weight:bold;"><br/></b><b style="font-weight:bold;">to the Exhibit Indicated Below</b><b style="font-weight:bold;"><br/></b><b style="font-weight:bold;">and to the Filing with the</b><b style="font-weight:bold;"><br/></b><b style="font-weight:bold;">Commission Indicated Below</b></p></td></tr><tr><td style="vertical-align:bottom;width:10.22%;border-bottom:1px solid #000000;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;line-height:9pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Exhibit</b><b style="font-weight:bold;"><br/></b><b style="font-weight:bold;">Number</b></p></td><td style="vertical-align:top;width:3.12%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;line-height:9pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;width:51.2%;border-bottom:1px solid #000000;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;line-height:9pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Description of Exhibits</b></p></td><td style="vertical-align:top;width:3.12%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;line-height:9pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;width:7.33%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;line-height:9pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Exhibit</b><b style="font-weight:bold;"><br/></b><b style="font-weight:bold;">Number</b></p></td><td style="vertical-align:top;width:3.12%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;line-height:9pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;width:21.85%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;line-height:9pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Filing or</b><b style="font-weight:bold;"><br/></b><b style="font-weight:bold;">File Number</b></p></td></tr><tr><td style="vertical-align:top;width:10.22%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;padding-left:10pt;text-align:right;text-indent:-10pt;margin:0pt;">3.1</p></td><td style="vertical-align:top;width:3.12%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:top;width:51.2%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;margin:0pt;"><a style="-sec-extract:exhibit;font-family:&quot;'Times New Roman','Times','serif'&quot;;" href="http://www.sec.gov/Archives/edgar/data/1035983/0000890566-97-001319.txt"><span style="font-family:'Times New Roman','Times','serif';font-style:normal;font-weight:normal;">Second Amended and Restated Certificate of Incorporation of the Registrant</span></a></p></td><td style="vertical-align:top;width:3.12%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;text-align:right;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:top;width:7.33%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;text-align:right;margin:0pt;">3.1</p></td><td style="vertical-align:top;width:3.12%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;text-align:center;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:top;width:21.85%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;text-align:center;margin:0pt;">333-24021</p></td></tr><tr><td style="vertical-align:top;width:10.22%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;padding-left:10pt;text-align:right;text-indent:-10pt;margin:0pt;">3.2</p></td><td style="vertical-align:top;width:3.12%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:top;width:51.2%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;margin:0pt;"><a style="-sec-extract:exhibit;font-family:&quot;'Times New Roman','Times','serif'&quot;;" href="http://www.sec.gov/Archives/edgar/data/1035983/0000890566-99-000401.txt"><span style="font-family:'Times New Roman','Times','serif';font-style:normal;font-weight:normal;">Certificate of Amendment dated May&#160;21, 1998</span></a></p></td><td style="vertical-align:top;width:3.12%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;text-align:right;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:top;width:7.33%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;text-align:right;margin:0pt;">3.2</p></td><td style="vertical-align:top;width:3.12%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;text-align:center;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:top;width:21.85%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;text-align:center;margin:0pt;">1998 Form&#160;10-K</p></td></tr><tr><td style="vertical-align:top;width:10.22%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;padding-left:10pt;text-align:right;text-indent:-10pt;margin:0pt;">3.3</p></td><td style="vertical-align:top;width:3.12%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:top;width:51.2%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;margin:0pt;"><a style="-sec-extract:exhibit;font-family:&quot;'Times New Roman','Times','serif'&quot;;" href="http://www.sec.gov/Archives/edgar/data/1035983/000104746904005828/a2129426zex-3_3.htm"><span style="font-family:'Times New Roman','Times','serif';font-style:normal;font-weight:normal;">Certificate of Amendment dated July&#160;9, 2003</span></a></p></td><td style="vertical-align:top;width:3.12%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;text-align:right;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:top;width:7.33%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;text-align:right;margin:0pt;">3.3</p></td><td style="vertical-align:top;width:3.12%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;text-align:center;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:top;width:21.85%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;text-align:center;margin:0pt;">2003 Form&#160;10-K</p></td></tr><tr><td style="vertical-align:top;width:10.22%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;padding-left:10pt;text-align:right;text-indent:-10pt;margin:0pt;">3.4</p></td><td style="vertical-align:top;width:3.12%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:top;width:51.2%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;margin:0pt;"><a style="-sec-extract:exhibit;font-family:&quot;'Times New Roman','Times','serif'&quot;;" href="http://www.sec.gov/Archives/edgar/data/1035983/000110465916122345/a16-10750_2ex3d1.htm"><span style="font-family:'Times New Roman','Times','serif';font-style:normal;font-weight:normal;">Certificate of Amendment dated May&#160;20, 2016</span></a></p></td><td style="vertical-align:top;width:3.12%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;text-align:right;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:top;width:7.33%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;text-align:right;margin:0pt;">3.1</p></td><td style="vertical-align:top;width:3.12%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;text-align:center;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:top;width:21.85%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;text-align:center;margin:0pt;">May&#160;20, 2016</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;text-align:center;margin:0pt;"><span style="white-space:pre-wrap;"> Form&#160;8-K</span></p></td></tr><tr><td style="vertical-align:top;width:10.22%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;padding-left:10pt;text-align:right;text-indent:-10pt;margin:0pt;">3.5</p></td><td style="vertical-align:top;width:3.12%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:top;width:51.2%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;margin:0pt;"><a style="-sec-extract:exhibit;font-family:&quot;'Times New Roman','Times','serif'&quot;;" href="http://www.sec.gov/Archives/edgar/data/1035983/000110465916107645/a16-7178_1ex3d1.htm"><span style="font-family:'Times New Roman','Times','serif';font-style:normal;font-weight:normal;">Amended and Restated Bylaws of Comfort Systems USA,&#160;Inc.</span></a></p></td><td style="vertical-align:top;width:3.12%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;text-align:right;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:top;width:7.33%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;text-align:right;margin:0pt;">3.1</p></td><td style="vertical-align:top;width:3.12%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;text-align:center;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:top;width:21.85%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;text-align:center;margin:0pt;">March&#160;25, 2016</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;text-align:center;margin:0pt;">Form&#160;8-K</p></td></tr><tr><td style="vertical-align:top;width:10.22%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;padding-left:10pt;text-align:right;text-indent:-10pt;margin:0pt;">31.1*</p></td><td style="vertical-align:top;width:3.12%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:top;width:51.2%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;margin:0pt;"><a style="-sec-extract:exhibit;font-family:&quot;'Times New Roman','Times','serif'&quot;;" href="fix-20240930xex31d1.htm"><span style="font-family:'Times New Roman','Times','serif';font-style:normal;font-weight:normal;">Certification of Chief Executive Officer pursuant to Section&#160;302 of the Sarbanes-Oxley Act of 2002</span></a></p></td><td style="vertical-align:top;width:3.12%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;text-align:right;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:top;width:7.33%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;text-align:right;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:top;width:3.12%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;text-align:center;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:top;width:21.85%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;text-align:center;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:top;width:10.22%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;padding-left:10pt;text-align:right;text-indent:-10pt;margin:0pt;">31.2*</p></td><td style="vertical-align:top;width:3.12%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:top;width:51.2%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;margin:0pt;"><a style="-sec-extract:exhibit;font-family:&quot;'Times New Roman','Times','serif'&quot;;" href="fix-20240930xex31d2.htm"><span style="font-family:'Times New Roman','Times','serif';font-style:normal;font-weight:normal;">Certification of Chief Financial Officer pursuant to Section&#160;302 of the Sarbanes-Oxley Act of 2002</span></a></p></td><td style="vertical-align:top;width:3.12%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;text-align:right;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:top;width:7.33%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;text-align:right;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:top;width:3.12%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;text-align:center;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:top;width:21.85%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;text-align:center;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:top;width:10.22%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;padding-left:10pt;text-align:right;text-indent:-10pt;margin:0pt;">32.1**</p></td><td style="vertical-align:top;width:3.12%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:top;width:51.2%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;margin:0pt;"><a style="-sec-extract:exhibit;font-family:&quot;'Times New Roman','Times','serif'&quot;;" href="fix-20240930xex32d1.htm"><span style="font-family:'Times New Roman','Times','serif';font-style:normal;font-weight:normal;">Certification of Chief Executive Officer pursuant to Section&#160;906 of the Sarbanes-Oxley Act of 2002</span></a></p></td><td style="vertical-align:top;width:3.12%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;text-align:right;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:top;width:7.33%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;text-align:right;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:top;width:3.12%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;text-align:center;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:top;width:21.85%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;text-align:center;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:top;width:10.22%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;padding-left:10pt;text-align:right;text-indent:-10pt;margin:0pt;">32.2**</p></td><td style="vertical-align:top;width:3.12%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:top;width:51.2%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;margin:0pt;"><a style="-sec-extract:exhibit;font-family:&quot;'Times New Roman','Times','serif'&quot;;" href="fix-20240930xex32d2.htm"><span style="font-family:'Times New Roman','Times','serif';font-style:normal;font-weight:normal;">Certification of Chief Financial Officer pursuant to Section&#160;906 of the Sarbanes-Oxley Act of 2002</span></a></p></td><td style="vertical-align:top;width:3.12%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;text-align:right;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:top;width:7.33%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;text-align:right;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:top;width:3.12%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;text-align:center;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:top;width:21.85%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;text-align:center;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:top;width:10.22%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;padding-left:10pt;text-align:right;text-indent:-10pt;margin:0pt;">101.INS*</p></td><td style="vertical-align:top;width:3.12%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:top;width:51.2%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;margin:0pt;">Inline XBRL Instance Document </p></td><td style="vertical-align:top;width:3.12%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;text-align:right;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:top;width:7.33%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;text-align:right;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:top;width:3.12%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;text-align:center;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:top;width:21.85%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;text-align:center;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:top;width:10.22%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;padding-left:10pt;text-align:right;text-indent:-10pt;margin:0pt;">101.SCH*</p></td><td style="vertical-align:top;width:3.12%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:top;width:51.2%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;margin:0pt;">Inline XBRL Taxonomy Extension Schema Document</p></td><td style="vertical-align:top;width:3.12%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;text-align:right;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:top;width:7.33%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;text-align:right;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:top;width:3.12%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;text-align:center;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:top;width:21.85%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;text-align:center;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:top;width:10.22%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;padding-left:10pt;text-align:right;text-indent:-10pt;margin:0pt;">101.CAL*</p></td><td style="vertical-align:top;width:3.12%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:top;width:51.2%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;margin:0pt;">Inline XBRL Taxonomy Extension Calculation Linkbase Document</p></td><td style="vertical-align:top;width:3.12%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;text-align:right;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:top;width:7.33%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;text-align:right;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:top;width:3.12%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;text-align:center;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:top;width:21.85%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;text-align:center;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:top;width:10.22%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;padding-left:10pt;text-align:right;text-indent:-10pt;margin:0pt;">101.DEF*</p></td><td style="vertical-align:top;width:3.12%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:top;width:51.2%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;margin:0pt;">Inline XBRL Taxonomy Extension Definition Linkbase Document</p></td><td style="vertical-align:top;width:3.12%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;text-align:right;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:top;width:7.33%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;text-align:right;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:top;width:3.12%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;text-align:center;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:top;width:21.85%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;text-align:center;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:top;width:10.22%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;padding-left:10pt;text-align:right;text-indent:-10pt;margin:0pt;">101.LAB*</p></td><td style="vertical-align:top;width:3.12%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:top;width:51.2%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;margin:0pt;">Inline XBRL Taxonomy Extension Label Linkbase Document</p></td><td style="vertical-align:top;width:3.12%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;text-align:right;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:top;width:7.33%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;text-align:right;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:top;width:3.12%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;text-align:center;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:top;width:21.85%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;text-align:center;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:top;width:10.22%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;padding-left:10pt;text-align:right;text-indent:-10pt;margin:0pt;">101.PRE*</p></td><td style="vertical-align:top;width:3.12%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:top;width:51.2%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;margin:0pt;">Inline XBRL Taxonomy Extension Presentation Linkbase</p></td><td style="vertical-align:top;width:3.12%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;text-align:right;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:top;width:7.33%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;text-align:right;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:top;width:3.12%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;text-align:center;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:top;width:21.85%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;text-align:center;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:top;width:10.22%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;padding-left:10pt;text-align:right;text-indent:-10pt;margin:0pt;">104</p></td><td style="vertical-align:top;width:3.12%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:top;width:51.2%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;margin:0pt;">Cover Page Interactive Data File (the cover page XBRL tags are embedded in the Inline XBRL document)</p></td><td style="vertical-align:top;width:3.12%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;text-align:right;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:top;width:7.33%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;text-align:right;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:top;width:3.12%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;text-align:center;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:top;width:21.85%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;text-align:center;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:top;width:10.22%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;padding-left:10pt;text-align:right;text-indent:-10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:top;width:3.12%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:top;width:51.2%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:top;width:3.12%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;text-align:right;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:top;width:7.33%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;text-align:right;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:top;width:3.12%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;text-align:center;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:top;width:21.85%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;text-align:center;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:top;width:10.22%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;padding-left:10pt;text-align:right;text-indent:-10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:top;width:3.12%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:top;width:51.2%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:top;width:3.12%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;text-align:right;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:top;width:7.33%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;text-align:right;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:top;width:3.12%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;text-align:center;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:top;width:21.85%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;text-align:center;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td></tr></table><div style="font-family:'Times New Roman','Times','serif';font-size:10.0pt;margin-bottom:0pt;margin-top:0pt;min-height:1.19em;position:relative;width:100%;"><div style="background-color:#000000;height:1px;position:relative;top:0.6em;width:25.0%;border:none;margin:0 auto 0 0;"></div></div><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;white-space:pre-wrap;">*   Filed herewith.</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">** Furnished herewith.</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></div></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:12pt 0pt 0pt 0pt;">37</p></div></div>
<div style="background-color:#000000;clear:both;height:2pt;page-break-after:always;width:79.41%;border:0;margin:30pt 10.29% 30pt 10.29%;"></div><div style="max-width:100%;padding-left:10.29%;padding-right:10.29%;position:relative;"><div style="margin-top:21.6pt;min-height:41.4pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 30pt 0pt;"><a href="#Toc"><span style="font-style:normal;font-weight:normal;">Table of Contents</span></a></p></div><div style="clear:both;margin-left:-10.0pt;margin-right:-10.0pt;max-width:100%;position:relative;width:calc(100% + 20.0pt);"><div style="padding-left:10pt;padding-right:10pt;position:relative;width:100%;"><a id="_7154720a_86ae_4c75_b4f8_1e049e2246b9"></a><a id="SIGNATURES_727857"></a><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">SIGNATURES</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">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.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:top;width:47.97%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="position:absolute;top:0pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:top;width:4.04%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="position:absolute;top:0pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:top;width:47.98%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="position:absolute;top:0pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:top;width:47.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;padding-left:10pt;text-indent:-10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:top;width:52.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;margin:0pt;"><span style="font-variant:small-caps;">Comfort Systems USA,&#160;Inc.</span></p></td></tr><tr><td style="vertical-align:top;width:47.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;padding-left:10pt;text-indent:-10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:top;width:4.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:top;width:47.98%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;text-align:center;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:47.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;margin:0pt;">October 24, 2024</p></td><td style="vertical-align:top;width:4.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;margin:0pt;">By:</p></td><td style="vertical-align:top;width:47.98%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;text-align:center;margin:0pt;">/s/ <span style="font-variant:small-caps;">Brian E. Lane</span></p></td></tr><tr><td style="vertical-align:top;width:47.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;padding-left:10pt;text-indent:-10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:top;width:4.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:top;width:47.98%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;text-align:center;margin:0pt;">Brian E. Lane</p></td></tr><tr><td style="vertical-align:top;width:47.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;padding-left:10pt;text-indent:-10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:top;width:4.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:top;width:47.98%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;text-align:center;margin:0pt;"><i style="font-style:italic;">President, Chief Executive Officer and Director</i></p></td></tr><tr style="height:9.9pt;"><td style="vertical-align:top;width:47.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;padding-left:10pt;text-indent:-10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:top;width:4.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:top;width:47.98%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;text-align:center;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:47.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;padding-left:10pt;text-indent:-10pt;margin:0pt;">October 24, 2024</p></td><td style="vertical-align:top;width:4.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;margin:0pt;">By:</p></td><td style="vertical-align:top;width:47.98%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;text-align:center;margin:0pt;">/s/ <span style="font-variant:small-caps;">William George</span></p></td></tr><tr><td style="vertical-align:top;width:47.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;padding-left:10pt;text-indent:-10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:top;width:4.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:top;width:47.98%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;text-align:center;margin:0pt;">William George</p></td></tr><tr><td style="vertical-align:top;width:47.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;padding-left:10pt;text-indent:-10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:top;width:4.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:top;width:47.98%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;text-align:center;margin:0pt;"><i style="font-style:italic;">Executive Vice President and Chief Financial Officer</i></p></td></tr><tr><td style="vertical-align:top;width:47.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;padding-left:10pt;text-indent:-10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:top;width:4.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:top;width:47.98%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;text-align:center;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:47.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;margin:0pt;">October 24, 2024</p></td><td style="vertical-align:top;width:4.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;margin:0pt;">By:</p></td><td style="vertical-align:top;width:47.98%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;text-align:center;margin:0pt;">/s/ <span style="font-variant:small-caps;">Julie S. Shaeff</span></p></td></tr><tr><td style="vertical-align:top;width:47.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;padding-left:10pt;text-indent:-10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:top;width:4.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:top;width:47.98%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;text-align:center;margin:0pt;">Julie S. Shaeff</p></td></tr><tr><td style="vertical-align:top;width:47.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;padding-left:10pt;text-indent:-10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:top;width:4.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:top;width:47.98%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;text-align:center;margin:0pt;"><i style="font-style:italic;">Senior Vice President and Chief Accounting Officer</i></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></div></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:12pt 0pt 0pt 0pt;">38</p></div></div>
<div style="background-color:#000000;clear:both;height:2pt;margin-left:10.29%;margin-right:10.29%;margin-top:30pt;page-break-after:avoid;width:79.41%;border:0;"></div></body></html>
</XBRL>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-31.1
<SEQUENCE>2
<FILENAME>fix-20240930xex31d1.htm
<DESCRIPTION>EX-31.1
<TEXT>
<!--Enhanced HTML document created with Toppan Merrill Bridge  10.6.125.0--><!--Created on: 10/24/2024 08:24:58 PM (UTC)--><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta charset="UTF-8"><title></title></head><body><div style="margin-top:30pt;"></div><div style="max-width:100%;padding-left:10.29%;padding-right:10.29%;position:relative;"><div style="clear:both;max-width:100%;position:relative;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:right;margin:0pt 0pt 12pt 0pt;"><b style="font-weight:bold;">Exhibit&#160;31.1</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:center;margin:0pt;"><b style="font-weight:bold;">CERTIFICATION OF CHIEF EXECUTIVE OFFICER</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:center;margin:0pt 0pt 12pt 0pt;"><b style="font-weight:bold;">Pursuant to Section&#160;302 of the Sarbanes Oxley Act of 2002</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;margin:0pt 0pt 12pt 0pt;">I, Brian E. Lane, certify that:</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;padding-left:36pt;text-indent:-36pt;margin:0pt 0pt 12pt 0pt;">1.&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;I have reviewed this quarterly report on Form&#160;10-Q of Comfort Systems USA,&#160;Inc.;</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;padding-left:36pt;text-indent:-36pt;margin:0pt 0pt 12pt 0pt;">2.&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;Based on my knowledge, this report does not contain any untrue statement of a material fact or omit to state a material fact necessary to make the statements made, in light of the circumstances under which such statements were made, not misleading with respect to the period covered by this report;</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;padding-left:36pt;text-indent:-36pt;margin:0pt 0pt 12pt 0pt;">3.&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;Based on my knowledge, the financial statements, and other financial information included in this report, fairly present in all material respects the financial condition, results of operations and cash flows of the registrant as of, and for, the periods presented in this report;</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;padding-left:36pt;text-indent:-36pt;margin:0pt 0pt 12pt 0pt;">4.&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;The registrant&#8217;s other certifying officer(s) and I are responsible for establishing and maintaining disclosure controls and procedures (as defined in Exchange Act Rules&#160;13a-15(e) and 15d-15(e)) and internal control over financial reporting (as defined in Exchange Act Rules&#160;13a-15(f) and 15d-15(f)) for the registrant and have:</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;padding-left:36pt;text-indent:-36pt;margin:0pt 0pt 12pt 36pt;">a)&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;designed such disclosure controls and procedures, or caused such disclosure controls and procedures to be designed under our supervision, to ensure that material information relating to the registrant, including its consolidated subsidiaries, is made known to us by others within those entities, particularly during the period in which this report is being prepared;</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;padding-left:36pt;text-indent:-36pt;margin:0pt 0pt 12pt 36pt;">b)&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;designed such internal control over financial reporting, or caused such internal control over financial reporting to be designed under our supervision, to provide reasonable assurance regarding the reliability of financial reporting and the preparation of financial statements for external purposes in accordance with generally accepted accounting principles;</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;padding-left:36pt;text-indent:-36pt;margin:0pt 0pt 12pt 36pt;">c)&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;evaluated the effectiveness of the registrant&#8217;s disclosure controls and procedures and presented in this report our conclusions about the effectiveness of the disclosure controls and procedures, as of the end of the period covered by this report based on such evaluation; and</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;padding-left:36pt;text-indent:-36pt;margin:0pt 0pt 12pt 36pt;">d)&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;disclosed in this report any change in the registrant&#8217;s internal control over financial reporting that occurred during the registrant&#8217;s most recent fiscal quarter (the registrant&#8217;s fourth fiscal quarter in the case of an annual report) that has materially affected, or is reasonably likely to materially affect, the registrant&#8217;s internal control over financial reporting; and</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;padding-left:36pt;text-indent:-36pt;margin:0pt 0pt 12pt 0pt;">5.&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;The registrant&#8217;s other certifying officer(s) and I have disclosed, based on our most recent evaluation of internal control over financial reporting, to the registrant&#8217;s auditors and the audit committee of the registrant&#8217;s board of directors (or persons performing the equivalent functions):</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;padding-left:36pt;text-indent:-36pt;margin:0pt 0pt 12pt 36pt;">a)&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;all significant deficiencies and material weaknesses in the design or operation of internal control over financial reporting which are reasonably likely to adversely affect the registrant&#8217;s ability to record, process, summarize and report financial information; and</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;padding-left:36pt;text-indent:-36pt;margin:0pt 0pt 12pt 36pt;">b)&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;any fraud, whether or not material, that involves management or other employees who have a significant role in the registrant&#8217;s internal control over financial reporting.</p><div><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;" align="center"><tr style="height:1pt;"><td style="vertical-align:top;width:53.7%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="position:absolute;top:0pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;margin:0pt;"><font style="font-size:1pt;visibility:hidden;">&#8203;</font></p></div></div></td><td style="vertical-align:bottom;width:46.29%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;margin:0pt;"><font style="font-size:1pt;visibility:hidden;">&#8203;</font></p></div></div></td></tr><tr><td style="vertical-align:top;width:53.7%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;margin:0pt;">Date: October 24, 2024</p></td><td style="vertical-align:bottom;width:46.29%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;margin:0pt;">/s/ <font style="font-variant:small-caps;">Brian E. Lane</font></p></td></tr><tr><td style="vertical-align:top;width:53.7%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-indent:-10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:top;width:46.29%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;margin:0pt;">Brian E. Lane<br><i style="font-style:italic;">President and Chief Executive Officer</i></p></td></tr></table></div><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:center;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></div></div><hr style="background-color:#000000;clear:both;color:#000000;height:2pt;line-height:0;margin-left:10.29%;margin-right:10.29%;margin-top:30pt;page-break-after:avoid;width:79.41%;border-width:0;"></body></html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-31.2
<SEQUENCE>3
<FILENAME>fix-20240930xex31d2.htm
<DESCRIPTION>EX-31.2
<TEXT>
<!--Enhanced HTML document created with Toppan Merrill Bridge  10.6.125.0--><!--Created on: 10/24/2024 08:24:57 PM (UTC)--><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta charset="UTF-8"><title></title></head><body><div style="margin-top:30pt;"></div><div style="max-width:100%;padding-left:10.29%;padding-right:10.29%;position:relative;"><div style="clear:both;max-width:100%;position:relative;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:right;margin:0pt 0pt 12pt 0pt;"><b style="font-weight:bold;">Exhibit&#160;31.2</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:center;margin:0pt;"><b style="font-weight:bold;">CERTIFICATION OF CHIEF FINANCIAL OFFICER</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:center;margin:0pt 0pt 12pt 0pt;"><b style="font-weight:bold;">Pursuant to Section&#160;302 of the Sarbanes-Oxley Act of 2002</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;margin:0pt 0pt 12pt 0pt;">I, William George, certify that:</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;padding-left:36pt;text-indent:-36pt;margin:0pt 0pt 12pt 0pt;">1.&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;I have reviewed this quarterly report on Form&#160;10-Q of Comfort Systems USA,&#160;Inc.;</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;padding-left:36pt;text-indent:-36pt;margin:0pt 0pt 12pt 0pt;">2.&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;Based on my knowledge, this report does not contain any untrue statement of a material fact or omit to state a material fact necessary to make the statements made, in light of the circumstances under which such statements were made, not misleading with respect to the period covered by this report;</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;padding-left:36pt;text-indent:-36pt;margin:0pt 0pt 12pt 0pt;">3.&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;Based on my knowledge, the financial statements, and other financial information included in this report, fairly present in all material respects the financial condition, results of operations and cash flows of the registrant as of, and for, the periods presented in this report;</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;padding-left:36pt;text-indent:-36pt;margin:0pt 0pt 12pt 0pt;">4.&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;The registrant&#8217;s other certifying officer(s) and I are responsible for establishing and maintaining disclosure controls and procedures (as defined in Exchange Act Rules&#160;13a-15(e) and 15d-15(e)) and internal control over financial reporting (as defined in Exchange Act Rules&#160;13a-15(f) and 15d-15(f)) for the registrant and have:</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;padding-left:35.3pt;text-indent:-35.3pt;margin:0pt 0pt 12pt 36pt;">a.&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;designed such disclosure controls and procedures, or caused such disclosure controls and procedures to be designed under our supervision, to ensure that material information relating to the registrant, including its consolidated subsidiaries, is made known to us by others within those entities, particularly during the period in which this report is being prepared;</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;padding-left:35.3pt;text-indent:-35.3pt;margin:0pt 0pt 12pt 36pt;">b.&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;designed such internal control over financial reporting, or caused such internal control over financial reporting to be designed under our supervision, to provide reasonable assurance regarding the reliability of financial reporting and the preparation of financial statements for external purposes in accordance with generally accepted accounting principles;</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;padding-left:35.3pt;text-indent:-35.3pt;margin:0pt 0pt 12pt 36pt;">c.&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;evaluated the effectiveness of the registrant&#8217;s disclosure controls and procedures and presented in this report our conclusions about the effectiveness of the disclosure controls and procedures, as of the end of the period covered by this report based on such evaluation; and</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;padding-left:35.3pt;text-indent:-35.3pt;margin:0pt 0pt 12pt 36pt;">d.&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;disclosed in this report any change in the registrant&#8217;s internal control over financial reporting that occurred during the registrant&#8217;s most recent fiscal quarter (the registrant&#8217;s fourth fiscal quarter in the case of an annual report) that has materially affected, or is reasonably likely to materially affect, the registrant&#8217;s internal control over financial reporting; and</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;padding-left:36pt;text-indent:-36pt;margin:0pt 0pt 12pt 0pt;">5.&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;The registrant&#8217;s other certifying officer(s) and I have disclosed, based on our most recent evaluation of internal control over financial reporting, to the registrant&#8217;s auditors and the audit committee of the registrant&#8217;s board of directors (or persons performing the equivalent functions):</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;padding-left:35.3pt;text-indent:-35.3pt;margin:0pt 0pt 12pt 36pt;">a.&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;all significant deficiencies and material weaknesses in the design or operation of internal control over financial reporting which are reasonably likely to adversely affect the registrant&#8217;s ability to record, process, summarize and report financial information; and</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;padding-left:35.3pt;text-indent:-35.3pt;margin:0pt 0pt 12pt 36pt;">b.&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;any fraud, whether or not material, that involves management or other employees who have a significant role in the registrant&#8217;s internal control over financial reporting.</p><div><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;" align="center"><tr style="height:1pt;"><td style="vertical-align:top;width:51.86%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="position:absolute;top:0pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;margin:0pt;"><font style="font-size:1pt;visibility:hidden;">&#8203;</font></p></div></div></td><td style="vertical-align:top;width:48.13%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="position:absolute;top:0pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;margin:0pt;"><font style="font-size:1pt;visibility:hidden;">&#8203;</font></p></div></div></td></tr><tr><td style="vertical-align:top;width:51.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-indent:-10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:top;width:48.13%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;margin:0pt;">/s/ <font style="font-variant:small-caps;">William George</font></p></td></tr><tr><td style="vertical-align:top;width:51.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;margin:0pt;">Date: October 24, 2024</p></td><td style="vertical-align:top;width:48.13%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;margin:0pt;">William George<br><i style="font-style:italic;">Executive Vice President and Chief Financial Officer</i></p></td></tr></table></div><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:center;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></div></div><hr style="background-color:#000000;clear:both;color:#000000;height:2pt;line-height:0;margin-left:10.29%;margin-right:10.29%;margin-top:30pt;page-break-after:avoid;width:79.41%;border-width:0;"></body></html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-32.1
<SEQUENCE>4
<FILENAME>fix-20240930xex32d1.htm
<DESCRIPTION>EX-32.1
<TEXT>
<!--Enhanced HTML document created with Toppan Merrill Bridge  10.6.125.0--><!--Created on: 10/24/2024 08:24:58 PM (UTC)--><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta charset="UTF-8"><title></title></head><body><div style="margin-top:30pt;"></div><div style="max-width:100%;padding-left:10.29%;padding-right:10.29%;position:relative;"><div style="clear:both;max-width:100%;position:relative;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:right;margin:0pt 0pt 12pt 0pt;"><b style="font-weight:bold;">Exhibit&#160;32.1</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:center;margin:0pt;"><b style="font-weight:bold;">CERTIFICATION PURSUANT TO</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:center;margin:0pt;"><b style="font-weight:bold;">18 U.S.C. SECTION&#160;1350</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:center;margin:0pt;"><b style="font-weight:bold;">AS ADOPTED PURSUANT TO</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:center;margin:0pt 0pt 12pt 0pt;"><b style="font-weight:bold;">SECTION&#160;906 OF THE SARBANES-OXLEY ACT OF&#160;2002*</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">In connection with the Quarterly Report of Comfort Systems USA,&#160;Inc. (the &#8220;Company&#8221;) on Form&#160;10-Q for the quarter ended September 30, 2024, as filed with the Securities and Exchange Commission on the date hereof (the &#8220;Report&#8221;), I, Brian E. Lane, President and Chief Executive Officer of the Company, certify, pursuant to 18 U.S.C. &#167;1350, as adopted pursuant to Section&#160;906 of the Sarbanes-Oxley Act of 2002, that:</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;padding-left:36pt;text-indent:-36pt;margin:0pt 0pt 12pt 36pt;">1.&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;The Report fully complies with the requirements of Section&#160;13(a) or 15(d), as applicable, of the Securities Exchange Act of 1934; and</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;padding-left:36pt;text-indent:-36pt;margin:0pt 0pt 12pt 36pt;">2.&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;The information contained in the Report fairly presents, in all material respects, the financial condition and result of operations of the Company.</p><div><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;" align="center"><tr style="height:1pt;"><td style="vertical-align:top;width:56.48%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="position:absolute;top:0pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;margin:0pt;"><font style="font-size:1pt;visibility:hidden;">&#8203;</font></p></div></div></td><td style="vertical-align:top;width:43.51%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="position:absolute;top:0pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;margin:0pt;"><font style="font-size:1pt;visibility:hidden;">&#8203;</font></p></div></div></td></tr><tr><td style="vertical-align:top;width:56.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;margin:0pt;">Date: October 24, 2024</p></td><td style="vertical-align:top;width:43.51%;border-bottom:1.0pt solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;margin:0pt;">/s/ <font style="font-variant:small-caps;">Brian E. Lane</font></p></td></tr><tr><td style="vertical-align:top;width:56.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-indent:-10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:top;width:43.51%;border-top:1.0pt solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;margin:0pt;">Brian E. Lane<br><i style="font-style:italic;">President and Chief Executive Officer</i></p></td></tr></table></div><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><div style="font-family:'Times New Roman','Times','serif';font-size:10.0pt;margin-bottom:0pt;min-height:1.19em;position:relative;width:100%;"><hr noshade="true" color="#000000" size="1" width="25.0%" style="background-color:#000000;color:#000000;height:1pt;position:relative;top:0.6em;border:none;margin:0pt;" align="left"></div><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;padding-left:35.3pt;text-indent:-35.3pt;margin:0pt;">*&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;A signed original of this written statement required by Section&#160;906 has been provided to the Company and will be retained by the Company and furnished to the Securities and Exchange Commission or its staff upon request.</p></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:center;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></div></div><hr style="background-color:#000000;clear:both;color:#000000;height:2pt;line-height:0;margin-left:10.29%;margin-right:10.29%;margin-top:30pt;page-break-after:avoid;width:79.41%;border-width:0;"></body></html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-32.2
<SEQUENCE>5
<FILENAME>fix-20240930xex32d2.htm
<DESCRIPTION>EX-32.2
<TEXT>
<!--Enhanced HTML document created with Toppan Merrill Bridge  10.6.125.0--><!--Created on: 10/24/2024 08:24:58 PM (UTC)--><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta charset="UTF-8"><title></title></head><body><div style="margin-top:30pt;"></div><div style="max-width:100%;padding-left:10.29%;padding-right:10.29%;position:relative;"><div style="clear:both;max-width:100%;position:relative;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:right;margin:0pt 0pt 12pt 0pt;"><b style="font-weight:bold;">Exhibit&#160;32.2</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:center;margin:0pt;"><b style="font-weight:bold;">CERTIFICATION PURSUANT TO</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:center;margin:0pt;"><b style="font-weight:bold;">18 U.S.C. SECTION&#160;1350</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:center;margin:0pt;"><b style="font-weight:bold;">AS ADOPTED PURSUANT TO</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:center;margin:0pt 0pt 12pt 0pt;"><b style="font-weight:bold;">SECTION&#160;906 OF THE SARBANES-OXLEY ACT OF&#160;2002*</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">In connection with the Quarterly Report of Comfort Systems USA,&#160;Inc. (the &#8220;Company&#8221;) on Form&#160;10-Q for the quarter ended September 30, 2024, as filed with the Securities and Exchange Commission on the date hereof (the &#8220;Report&#8221;), I, William George, Executive Vice President and Chief Financial Officer of the Company, certify, pursuant to 18 U.S.C. &#167;1350, as adopted pursuant to Section&#160;906 of the Sarbanes-Oxley Act of 2002, that:</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;padding-left:36pt;text-indent:-36pt;margin:0pt 0pt 12pt 36pt;">1.&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;The Report fully complies with the requirements of Section&#160;13(a) or 15(d), as applicable, of the Securities Exchange Act of 1934; and</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;padding-left:36pt;text-indent:-36pt;margin:0pt 0pt 12pt 36pt;">2.&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;The information contained in the Report fairly presents, in all material respects, the financial condition and result of operations of the Company.</p><div><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;" align="center"><tr style="height:1pt;"><td style="vertical-align:top;width:52.77%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="position:absolute;top:0pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;margin:0pt;"><font style="font-size:1pt;visibility:hidden;">&#8203;</font></p></div></div></td><td style="vertical-align:top;width:47.22%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="position:absolute;top:0pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;margin:0pt;"><font style="font-size:1pt;visibility:hidden;">&#8203;</font></p></div></div></td></tr><tr><td style="vertical-align:top;width:52.77%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;margin:0pt;">Date: October 24, 2024</p></td><td style="vertical-align:top;width:47.22%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;margin:0pt;">/s/ <font style="font-variant:small-caps;">William George</font></p></td></tr><tr><td style="vertical-align:top;width:52.77%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-indent:-10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:top;width:47.22%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;margin:0pt;">William George<br><i style="font-style:italic;">Executive Vice President and Chief Financial Officer</i></p></td></tr></table></div><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><div style="font-family:'Times New Roman','Times','serif';font-size:10.0pt;margin-bottom:0pt;min-height:1.19em;position:relative;width:100%;"><hr noshade="true" color="#000000" size="1" width="25.0%" style="background-color:#000000;color:#000000;height:1pt;position:relative;top:0.6em;border:none;margin:0pt;" align="left"></div><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;padding-left:35.3pt;text-indent:-35.3pt;margin:0pt;">*&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;A signed original of this written statement required by Section&#160;906 has been provided to the Company and will be retained by the Company and furnished to the Securities and Exchange Commission or its staff upon request.</p></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:center;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></div></div><hr style="background-color:#000000;clear:both;color:#000000;height:2pt;line-height:0;margin-left:10.29%;margin-right:10.29%;margin-top:30pt;page-break-after:avoid;width:79.41%;border-width:0;"></body></html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-101.SCH
<SEQUENCE>6
<FILENAME>fix-20240930.xsd
<DESCRIPTION>EX-101.SCH
<TEXT>
<XBRL>
<?xml version="1.0" encoding="utf-8"?>
<!--XBRL document created with Toppan Merrill Bridge  10.8.0.95 -->
<!--Based on XBRL 2.1-->
<!--Created on: 10/24/2024 8:25:24 PM-->
<!--Modified on: 10/24/2024 8:25:24 PM-->
<xsd:schema targetNamespace="http://www.comfortsystemsusa.com/20240930" attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xbrldt="http://xbrl.org/2005/xbrldt" xmlns:xl="http://www.xbrl.org/2003/XLink" xmlns:link="http://www.xbrl.org/2003/linkbase" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:attributeFormDefault="unqualified" xmlns:xbrli="http://www.xbrl.org/2003/instance" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:country="http://xbrl.sec.gov/country/2024" xmlns:us-gaap="http://fasb.org/us-gaap/2024" xmlns:us-types="http://fasb.org/us-types/2024" xmlns:us-roles="http://fasb.org/us-roles/2024" xmlns:negated="http://www.xbrl.org/2009/role/negated" xmlns:srt-types="http://fasb.org/srt-types/2024" xmlns:fix="http://www.comfortsystemsusa.com/20240930" xmlns:enum2="http://xbrl.org/2020/extensible-enumerations-2.0" xmlns:dtr-types="http://www.xbrl.org/dtr/type/2022-03-31" xmlns:currency="http://xbrl.sec.gov/currency/2024" xmlns:ref="http://www.xbrl.org/2006/ref" xmlns:sic="http://xbrl.sec.gov/sic/2024" xmlns:srt-roles="http://fasb.org/srt-roles/2024" xmlns:stpr="http://xbrl.sec.gov/stpr/2024" xmlns:utr="http://www.xbrl.org/2009/utr" xmlns:exch="http://xbrl.sec.gov/exch/2024" xmlns:naics="http://xbrl.sec.gov/naics/2024" xmlns:srt="http://fasb.org/srt/2024" xmlns:deprecated="http://www.xbrl.org/2009/role/deprecated" xmlns:net="http://www.xbrl.org/2009/role/net" xmlns:dei="http://xbrl.sec.gov/dei/2024" xmlns:dtr="http://www.xbrl.org/2009/dtr" xmlns:xbrldi="http://xbrl.org/2006/xbrldi" xmlns:us-gaap-ebp="http://fasb.org/us-gaap-ebp/2024" xmlns:ecd="http://xbrl.sec.gov/ecd/2024" xmlns:ecd-sub="http://xbrl.sec.gov/ecd-sub/2024">
  <xsd:annotation>
    <xsd:appinfo>
      <link:roleType roleURI="http://www.comfortsystemsusa.com/role/DisclosureStandardAndCustomAxisDomainDefaults" id="DisclosureStandardAndCustomAxisDomainDefaults">
        <link:definition>99900 - Disclosure - Standard And Custom Axis Domain Defaults</link:definition>
        <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.comfortsystemsusa.com/role/StatementConsolidatedBalanceSheets" id="StatementConsolidatedBalanceSheets">
        <link:definition>995200100 - Statement - CONSOLIDATED BALANCE SHEETS</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfOperations" id="StatementConsolidatedStatementsOfOperations">
        <link:definition>995200200 - Statement - CONSOLIDATED STATEMENTS OF OPERATIONS</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfCashFlows" id="StatementConsolidatedStatementsOfCashFlows">
        <link:definition>995200400 - Statement - CONSOLIDATED STATEMENTS OF CASH FLOWS</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsDetails" id="DisclosureAcquisitionsDetails">
        <link:definition>99940501 - Disclosure - Acquisitions (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.comfortsystemsusa.com/role/DisclosureGoodwillAndIdentifiableIntangibleAssetsNetIdentifiableIntangibleAssetsNetDetails" id="DisclosureGoodwillAndIdentifiableIntangibleAssetsNetIdentifiableIntangibleAssetsNetDetails">
        <link:definition>99940602 - Disclosure - Goodwill and Identifiable Intangible Assets, Net - Identifiable Intangible Assets, Net (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsDetailss" id="DisclosureDebtObligationsDetailss">
        <link:definition>40701 - Disclosure - Debt Obligations (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.comfortsystemsusa.com/role/DisclosureLeasesSummaryOfOperatingLeaseAssetsAndLiabilitiesDetails" id="DisclosureLeasesSummaryOfOperatingLeaseAssetsAndLiabilitiesDetails">
        <link:definition>99940802 - Disclosure - Leases - Summary of Operating Lease 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.comfortsystemsusa.com/role/DisclosureLeasesMaturitiesOfLeaseLiabilitiesDetails" id="DisclosureLeasesMaturitiesOfLeaseLiabilitiesDetails">
        <link:definition>99940803 - Disclosure - Leases - Maturities of Lease 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.comfortsystemsusa.com/role/DisclosureStockholdersEquityNumberOfSharesDetails" id="DisclosureStockholdersEquityNumberOfSharesDetails">
        <link:definition>99941001 - Disclosure - Stockholders' Equity - Number of Shares (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.comfortsystemsusa.com/role/DocumentDocumentAndEntityInformation" id="DocumentDocumentAndEntityInformation">
        <link:definition>995200090 - 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.comfortsystemsusa.com/role/StatementConsolidatedBalanceSheetsParenthetical" id="StatementConsolidatedBalanceSheetsParenthetical">
        <link:definition>995200105 - Statement - CONSOLIDATED BALANCE SHEETS (Parenthetical)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfStockholdersEquity" id="StatementConsolidatedStatementsOfStockholdersEquity">
        <link:definition>995200300 - Statement - CONSOLIDATED STATEMENTS OF STOCKHOLDERS' EQUITY</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.comfortsystemsusa.com/role/DisclosureBusinessAndOrganization" id="DisclosureBusinessAndOrganization">
        <link:definition>995210101 - Disclosure - Business and Organization</link:definition>
        <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.comfortsystemsusa.com/role/DisclosureSummaryOfSignificantAccountingPoliciesAndEstimates" id="DisclosureSummaryOfSignificantAccountingPoliciesAndEstimates">
        <link:definition>995210201 - Disclosure - Summary of Significant Accounting Policies and Estimates</link:definition>
        <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.comfortsystemsusa.com/role/DisclosureRevenueFromContractsWithCustomers" id="DisclosureRevenueFromContractsWithCustomers">
        <link:definition>995210301 - Disclosure - Revenue from Contracts with Customers</link:definition>
        <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.comfortsystemsusa.com/role/DisclosureFairValueMeasurements" id="DisclosureFairValueMeasurements">
        <link:definition>995210401 - Disclosure - Fair Value Measurements</link:definition>
        <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.comfortsystemsusa.com/role/DisclosureAcquisitions" id="DisclosureAcquisitions">
        <link:definition>995210501 - 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.comfortsystemsusa.com/role/DisclosureGoodwillAndIdentifiableIntangibleAssetsNet" id="DisclosureGoodwillAndIdentifiableIntangibleAssetsNet">
        <link:definition>995210601 - Disclosure - Goodwill and Identifiable Intangible Assets, Net</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.comfortsystemsusa.com/role/DisclosureDebtObligations" id="DisclosureDebtObligations">
        <link:definition>995210701 - Disclosure - Debt Obligations</link:definition>
        <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.comfortsystemsusa.com/role/DisclosureLeases" id="DisclosureLeases">
        <link:definition>995210801 - Disclosure - Leases</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.comfortsystemsusa.com/role/DisclosureCommitmentsAndContingencies" id="DisclosureCommitmentsAndContingencies">
        <link:definition>995210901 - Disclosure - Commitments and Contingencies</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.comfortsystemsusa.com/role/DisclosureStockholdersEquity" id="DisclosureStockholdersEquity">
        <link:definition>995211001 - Disclosure - Stockholders' Equity</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.comfortsystemsusa.com/role/DisclosureSummaryOfSignificantAccountingPoliciesAndEstimatesPolicies" id="DisclosureSummaryOfSignificantAccountingPoliciesAndEstimatesPolicies">
        <link:definition>99920202 - Disclosure - Summary of Significant Accounting Policies and Estimates (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.comfortsystemsusa.com/role/DisclosureRevenueFromContractsWithCustomersTables" id="DisclosureRevenueFromContractsWithCustomersTables">
        <link:definition>99930303 - Disclosure - Revenue from Contracts with Customers (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.comfortsystemsusa.com/role/DisclosureFairValueMeasurementsTables" id="DisclosureFairValueMeasurementsTables">
        <link:definition>99930403 - Disclosure - Fair Value Measurements (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.comfortsystemsusa.com/role/DisclosureAcquisitionsTables" id="DisclosureAcquisitionsTables">
        <link:definition>99930503 - 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.comfortsystemsusa.com/role/DisclosureGoodwillAndIdentifiableIntangibleAssetsNetTables" id="DisclosureGoodwillAndIdentifiableIntangibleAssetsNetTables">
        <link:definition>99930603 - Disclosure - Goodwill and Identifiable Intangible Assets, Net (Tables)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsTables" id="DisclosureDebtObligationsTables">
        <link:definition>99930703 - Disclosure - Debt Obligations (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.comfortsystemsusa.com/role/DisclosureLeasesTables" id="DisclosureLeasesTables">
        <link:definition>99930803 - Disclosure - Leases (Tables)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.comfortsystemsusa.com/role/DisclosureStockholdersEquityTables" id="DisclosureStockholdersEquityTables">
        <link:definition>99931003 - Disclosure - Stockholders' Equity (Tables)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.comfortsystemsusa.com/role/DisclosureSummaryOfSignificantAccountingPoliciesAndEstimatesIncomeTaxesDetails" id="DisclosureSummaryOfSignificantAccountingPoliciesAndEstimatesIncomeTaxesDetails">
        <link:definition>99940201 - Disclosure - Summary of Significant Accounting Policies and Estimates - Income Taxes (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.comfortsystemsusa.com/role/DisclosureRevenueFromContractsWithCustomersDisaggregationOfRevenueDetails" id="DisclosureRevenueFromContractsWithCustomersDisaggregationOfRevenueDetails">
        <link:definition>99940302 - Disclosure - Revenue from Contracts with Customers - Disaggregation of Revenue (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.comfortsystemsusa.com/role/DisclosureRevenueFromContractsWithCustomersRemainingPerformanceObligationsDetails" id="DisclosureRevenueFromContractsWithCustomersRemainingPerformanceObligationsDetails">
        <link:definition>99940304 - Disclosure - Revenue from Contracts with Customers - Remaining Performance Obligations (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.comfortsystemsusa.com/role/DisclosureRevenueFromContractsWithCustomersRemainingPerformanceObligationsDefaultDetails" id="DisclosureRevenueFromContractsWithCustomersRemainingPerformanceObligationsDefaultDetails">
        <link:definition>40304 - Disclosure - Revenue from Contracts with Customers - Remaining Performance Obligations Default (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.comfortsystemsusa.com/role/DisclosureFairValueMeasurementsDetails" id="DisclosureFairValueMeasurementsDetails">
        <link:definition>99940401 - Disclosure - Fair Value Measurements (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.comfortsystemsusa.com/role/DisclosureAcquisitionsAcquiredIntangibleAssetsDetails" id="DisclosureAcquisitionsAcquiredIntangibleAssetsDetails">
        <link:definition>99940502 - Disclosure - Acquisitions - Acquired Intangible Assets (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsOtherAcquisitionsDetails" id="DisclosureAcquisitionsOtherAcquisitionsDetails">
        <link:definition>99940503 - Disclosure - Acquisitions - Other Acquisitions (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.comfortsystemsusa.com/role/DisclosureGoodwillAndIdentifiableIntangibleAssetsNetChangesInCarryingAmountOfGoodwillDetails" id="DisclosureGoodwillAndIdentifiableIntangibleAssetsNetChangesInCarryingAmountOfGoodwillDetails">
        <link:definition>99940601 - Disclosure - Goodwill and Identifiable Intangible Assets, Net - Changes in Carrying Amount of Goodwill (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.comfortsystemsusa.com/role/DisclosureDebtObligationsDetails" id="DisclosureDebtObligationsDetails">
        <link:definition>99940701 - Disclosure - Debt Obligations (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsOtherDetails" id="DisclosureDebtObligationsOtherDetails">
        <link:definition>99940702 - Disclosure - Debt Obligations - Other (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.comfortsystemsusa.com/role/DisclosureDebtObligationsNotesToFormerOwnersDetails" id="DisclosureDebtObligationsNotesToFormerOwnersDetails">
        <link:definition>99940703 - Disclosure - Debt Obligations - Notes to Former Owners (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.comfortsystemsusa.com/role/DisclosureLeasesDetails" id="DisclosureLeasesDetails">
        <link:definition>99940801 - Disclosure - Leases (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.comfortsystemsusa.com/role/DisclosureCommitmentsAndContingenciesDetails" id="DisclosureCommitmentsAndContingenciesDetails">
        <link:definition>99940901 - Disclosure - Commitments and Contingencies (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.comfortsystemsusa.com/role/DisclosureStockholdersEquityIncentiveAndOtherDetails" id="DisclosureStockholdersEquityIncentiveAndOtherDetails">
        <link:definition>99941002 - Disclosure - Stockholders' Equity - Incentive and Other (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.comfortsystemsusa.com/role/DisclosureSegmentInformationDetails" id="DisclosureSegmentInformationDetails">
        <link:definition>99941101 - Disclosure - Segment 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.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfStockholdersEquityParenthetical" id="StatementConsolidatedStatementsOfStockholdersEquityParenthetical">
        <link:definition>995200305 - Statement - CONSOLIDATED STATEMENTS OF STOCKHOLDERS' EQUITY (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.comfortsystemsusa.com/role/DisclosureSegmentInformation" id="DisclosureSegmentInformation">
        <link:definition>995211101 - Disclosure - 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.comfortsystemsusa.com/role/DisclosureSegmentInformationTables" id="DisclosureSegmentInformationTables">
        <link:definition>99931103 - Disclosure - 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.comfortsystemsusa.com/role/DisclosureSummaryOfSignificantAccountingPoliciesAndEstimatesInvestmentsDetails" id="DisclosureSummaryOfSignificantAccountingPoliciesAndEstimatesInvestmentsDetails">
        <link:definition>99940202 - Disclosure - Summary of Significant Accounting Policies and Estimates - Investments (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.comfortsystemsusa.com/role/DisclosureRevenueFromContractsWithCustomersNarrativesDetails" id="DisclosureRevenueFromContractsWithCustomersNarrativesDetails">
        <link:definition>99940301 - Disclosure - Revenue from Contracts with Customers - Narratives (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.comfortsystemsusa.com/role/DisclosureRevenueFromContractsWithCustomersContractAssetsAndLiabilitiesDetails" id="DisclosureRevenueFromContractsWithCustomersContractAssetsAndLiabilitiesDetails">
        <link:definition>99940303 - Disclosure - Revenue from Contracts with Customers - 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:linkbaseRef xlink:type="simple" xlink:href="fix-20240930_pre.xml" xlink:role="http://www.xbrl.org/2003/role/presentationLinkbaseRef" xlink:arcrole="http://www.w3.org/1999/xlink/properties/linkbase" />
      <link:linkbaseRef xlink:type="simple" xlink:href="fix-20240930_cal.xml" xlink:role="http://www.xbrl.org/2003/role/calculationLinkbaseRef" xlink:arcrole="http://www.w3.org/1999/xlink/properties/linkbase" />
      <link:linkbaseRef xlink:type="simple" xlink:href="fix-20240930_def.xml" xlink:role="http://www.xbrl.org/2003/role/definitionLinkbaseRef" xlink:arcrole="http://www.w3.org/1999/xlink/properties/linkbase" />
      <link:linkbaseRef xlink:type="simple" xlink:href="fix-20240930_lab.xml" xlink:role="http://www.xbrl.org/2003/role/labelLinkbaseRef" xlink:arcrole="http://www.w3.org/1999/xlink/properties/linkbase" />
    </xsd:appinfo>
  </xsd:annotation>
  <xsd:import namespace="https://xbrl.org/2023/calculation-1.1" schemaLocation="https://www.xbrl.org/2023/calculation-1.1.xsd" />
  <xsd:import namespace="http://xbrl.sec.gov/ecd/2024" schemaLocation="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd" />
  <xsd:import namespace="http://xbrl.sec.gov/dei/2024" schemaLocation="https://xbrl.sec.gov/dei/2024/dei-2024.xsd" />
  <xsd:import namespace="http://www.xbrl.org/dtr/type/2022-03-31" schemaLocation="https://www.xbrl.org/dtr/type/2022-03-31/types.xsd" />
  <xsd:import namespace="http://www.xbrl.org/2009/role/negated" schemaLocation="http://www.xbrl.org/lrr/role/negated-2009-12-16.xsd" />
  <xsd:import namespace="http://fasb.org/us-roles/2024" schemaLocation="https://xbrl.fasb.org/us-gaap/2024/elts/us-roles-2024.xsd" />
  <xsd:import namespace="http://www.xbrl.org/2003/instance" schemaLocation="http://www.xbrl.org/2003/xbrl-instance-2003-12-31.xsd" />
  <xsd:import namespace="http://xbrl.org/2005/xbrldt" schemaLocation="http://www.xbrl.org/2005/xbrldt-2005.xsd" />
  <import namespace="http://fasb.org/us-gaap/2024" schemaLocation="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd" xmlns="http://www.w3.org/2001/XMLSchema" />
  <import namespace="http://fasb.org/srt/2024" schemaLocation="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd" xmlns="http://www.w3.org/2001/XMLSchema" />
  <xsd:import namespace="http://xbrl.sec.gov/ecd-sub/2024" schemaLocation="https://xbrl.sec.gov/ecd/2024/ecd-sub-2024.xsd" />
  <xsd:element name="ContingentConsiderationObligationsMember" id="fix_ContingentConsiderationObligationsMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" abstract="true" nillable="true" xbrli:periodType="duration" />
  <element id="fix_EffectOfUsingWeightedAverageCommonSharesOutstanding" name="EffectOfUsingWeightedAverageCommonSharesOutstanding" nillable="true" type="xbrli:sharesItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" xmlns="http://www.w3.org/2001/XMLSchema" />
  <element id="fix_ScheduleOfAdditionalMarginsTableTextBlock" name="ScheduleOfAdditionalMarginsTableTextBlock" nillable="true" type="dtr-types:textBlockItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" xmlns="http://www.w3.org/2001/XMLSchema" />
  <xsd:element name="DebtCovenantEffectiveDateAxis" id="fix_DebtCovenantEffectiveDateAxis" type="xbrli:stringItemType" substitutionGroup="xbrldt:dimensionItem" abstract="true" nillable="true" xbrli:periodType="duration" />
  <xsd:element name="DebtCovenantEffectiveDateDomain" id="fix_DebtCovenantEffectiveDateDomain" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" abstract="true" nillable="true" xbrli:periodType="duration" />
  <xsd:element name="PercentageOfBusinessWhichHasRequiredBonds" id="fix_PercentageOfBusinessWhichHasRequiredBonds" type="dtr-types:percentItemType" substitutionGroup="xbrli:item" nillable="true" xbrli:periodType="duration" />
  <xsd:element name="DebtCovenantRatioAxis" id="fix_DebtCovenantRatioAxis" type="xbrli:stringItemType" substitutionGroup="xbrldt:dimensionItem" abstract="true" nillable="true" xbrli:periodType="duration" />
  <xsd:element name="DebtCovenantRatioDomain" id="fix_DebtCovenantRatioDomain" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" abstract="true" nillable="true" xbrli:periodType="duration" />
  <xsd:element name="DebtCovenantRatioRangeOneMember" id="fix_DebtCovenantRatioRangeOneMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" abstract="true" nillable="true" xbrli:periodType="duration" />
  <xsd:element name="DebtCovenantRatioRangeTwoMember" id="fix_DebtCovenantRatioRangeTwoMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" abstract="true" nillable="true" xbrli:periodType="duration" />
  <xsd:element name="DebtCovenantRatioRangeThreeMember" id="fix_DebtCovenantRatioRangeThreeMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" abstract="true" nillable="true" xbrli:periodType="duration" />
  <xsd:element name="DebtCovenantRatioRangeFourMember" id="fix_DebtCovenantRatioRangeFourMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" abstract="true" nillable="true" xbrli:periodType="duration" />
  <xsd:element name="LossContingencySuretyAbstract" id="fix_LossContingencySuretyAbstract" type="xbrli:stringItemType" substitutionGroup="xbrli:item" abstract="true" nillable="true" xbrli:periodType="duration" />
  <xsd:element name="LifeInsuranceContractsNumberOfEmployeesCovered" id="fix_LifeInsuranceContractsNumberOfEmployeesCovered" type="xbrli:integerItemType" substitutionGroup="xbrli:item" abstract="false" nillable="true" xbrli:periodType="instant" />
  <xsd:element name="LifeInsuranceContractsFaceAmount" id="fix_LifeInsuranceContractsFaceAmount" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" abstract="false" nillable="true" xbrli:balance="debit" xbrli:periodType="instant" />
  <element id="fix_LineOfCreditBorrowingCapacityAccordionOption" name="LineOfCreditBorrowingCapacityAccordionOption" nillable="true" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" xbrli:periodType="instant" xbrli:balance="credit" xmlns="http://www.w3.org/2001/XMLSchema" />
  <element id="fix_DebtInstrumentVariableRateSecondaryClassificationAxis" name="DebtInstrumentVariableRateSecondaryClassificationAxis" nillable="true" type="xbrli:stringItemType" substitutionGroup="xbrldt:dimensionItem" abstract="true" xbrli:periodType="duration" xmlns="http://www.w3.org/2001/XMLSchema" />
  <element id="fix_DebtInstrumentVariableRateSecondaryClassificationDomain" name="DebtInstrumentVariableRateSecondaryClassificationDomain" nillable="true" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" abstract="true" xbrli:periodType="duration" xmlns="http://www.w3.org/2001/XMLSchema" />
  <element id="fix_DeferredAcquisitionPayments" name="DeferredAcquisitionPayments" nillable="true" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" xbrli:balance="credit" xmlns="http://www.w3.org/2001/XMLSchema" />
  <element id="fix_SubordinateDebtAndPromissoryNoteMember" name="SubordinateDebtAndPromissoryNoteMember" nillable="true" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" abstract="true" xbrli:periodType="duration" xmlns="http://www.w3.org/2001/XMLSchema" />
  <element id="fix_StockRepurchaseProgram2007Member" name="StockRepurchaseProgram2007Member" nillable="true" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" abstract="true" xbrli:periodType="duration" xmlns="http://www.w3.org/2001/XMLSchema" />
  <element id="fix_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesBillingsInExcessOfCostsAndEstimatedEarnings" name="BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesBillingsInExcessOfCostsAndEstimatedEarnings" nillable="true" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" xbrli:periodType="instant" xbrli:balance="credit" xmlns="http://www.w3.org/2001/XMLSchema" />
  <element id="fix_CashFlowDiscountRate" name="CashFlowDiscountRate" nillable="true" type="dtr-types:percentItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" xmlns="http://www.w3.org/2001/XMLSchema" />
  <element id="fix_NewConstructionMember" name="NewConstructionMember" nillable="true" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" abstract="true" xbrli:periodType="duration" xmlns="http://www.w3.org/2001/XMLSchema" />
  <element id="fix_ExistingBuildingConstructionMember" name="ExistingBuildingConstructionMember" nillable="true" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" abstract="true" xbrli:periodType="duration" xmlns="http://www.w3.org/2001/XMLSchema" />
  <element id="fix_ServiceCallsMaintenanceAndMonitoringMember" name="ServiceCallsMaintenanceAndMonitoringMember" nillable="true" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" abstract="true" xbrli:periodType="duration" xmlns="http://www.w3.org/2001/XMLSchema" />
  <element id="fix_EducationMember" name="EducationMember" nillable="true" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" abstract="true" xbrli:periodType="duration" xmlns="http://www.w3.org/2001/XMLSchema" />
  <element id="fix_RetailRestaurantsAndEntertainmentMember" name="RetailRestaurantsAndEntertainmentMember" nillable="true" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" abstract="true" xbrli:periodType="duration" xmlns="http://www.w3.org/2001/XMLSchema" />
  <element id="fix_MultiFamilyAndResidentialMember" name="MultiFamilyAndResidentialMember" nillable="true" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" abstract="true" xbrli:periodType="duration" xmlns="http://www.w3.org/2001/XMLSchema" />
  <element id="fix_PercentageOfRevenueFromContractWithCustomer" name="PercentageOfRevenueFromContractWithCustomer" nillable="true" type="dtr-types:percentItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" xmlns="http://www.w3.org/2001/XMLSchema" />
  <element id="fix_RenewableServiceMaintenanceAgreementsTerm" name="RenewableServiceMaintenanceAgreementsTerm" nillable="true" type="xbrli:durationItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" xmlns="http://www.w3.org/2001/XMLSchema" />
  <element id="fix_ServiceProjectsMember" name="ServiceProjectsMember" nillable="true" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" abstract="true" xbrli:periodType="duration" xmlns="http://www.w3.org/2001/XMLSchema" />
  <element id="fix_OfficeBuildingCustomerMember" name="OfficeBuildingCustomerMember" nillable="true" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" abstract="true" xbrli:periodType="duration" xmlns="http://www.w3.org/2001/XMLSchema" />
  <element id="fix_HealthcareSectorCustomerMember" name="HealthcareSectorCustomerMember" nillable="true" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" abstract="true" xbrli:periodType="duration" xmlns="http://www.w3.org/2001/XMLSchema" />
  <element id="fix_GovernmentCustomerMember" name="GovernmentCustomerMember" nillable="true" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" abstract="true" xbrli:periodType="duration" xmlns="http://www.w3.org/2001/XMLSchema" />
  <element id="fix_NumberOfOptionsToRenew" name="NumberOfOptionsToRenew" nillable="true" type="xbrli:integerItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" xmlns="http://www.w3.org/2001/XMLSchema" />
  <element id="fix_SupplementalInformationRelatedToLeasesAbstract" name="SupplementalInformationRelatedToLeasesAbstract" nillable="true" type="xbrli:stringItemType" substitutionGroup="xbrli:item" abstract="true" xbrli:periodType="duration" xmlns="http://www.w3.org/2001/XMLSchema" />
  <element id="fix_ScheduleOfLeaseAssetsAndLiabilitiesTableTextBlock" name="ScheduleOfLeaseAssetsAndLiabilitiesTableTextBlock" nillable="true" type="dtr-types:textBlockItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" xmlns="http://www.w3.org/2001/XMLSchema" />
  <element id="fix_ScheduleOfSupplementalInformationRelatedToLeasesTableTextBlock" name="ScheduleOfSupplementalInformationRelatedToLeasesTableTextBlock" nillable="true" type="dtr-types:textBlockItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" xmlns="http://www.w3.org/2001/XMLSchema" />
  <element id="fix_VariableLeaseAndShortTermLeaseCost" name="VariableLeaseAndShortTermLeaseCost" nillable="true" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" xbrli:balance="debit" xmlns="http://www.w3.org/2001/XMLSchema" />
  <element id="fix_BusinessCombinationConsiderationTransferredWorkingCapitalAdjustment" name="BusinessCombinationConsiderationTransferredWorkingCapitalAdjustment" nillable="true" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" xbrli:balance="credit" xmlns="http://www.w3.org/2001/XMLSchema" />
  <element id="fix_ChangeInRightOfUseAssets" name="ChangeInRightOfUseAssets" nillable="true" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" xbrli:balance="debit" xmlns="http://www.w3.org/2001/XMLSchema" />
  <element id="fix_UnbilledAccountsReceivableAllowanceForCreditLoss" name="UnbilledAccountsReceivableAllowanceForCreditLoss" nillable="true" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" xbrli:periodType="instant" xbrli:balance="credit" xmlns="http://www.w3.org/2001/XMLSchema" />
  <element id="fix_WeightedAverageCostOfCapital" name="WeightedAverageCostOfCapital" nillable="true" type="dtr-types:percentItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" xmlns="http://www.w3.org/2001/XMLSchema" />
  <element id="fix_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFour" name="LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFour" nillable="true" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" xbrli:periodType="instant" xbrli:balance="credit" xmlns="http://www.w3.org/2001/XMLSchema" />
  <element id="fix_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFour" name="FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFour" nillable="true" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" xbrli:periodType="instant" xbrli:balance="debit" xmlns="http://www.w3.org/2001/XMLSchema" />
  <element id="fix_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsCostsInExcessOfBillings" name="BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsCostsInExcessOfBillings" nillable="true" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" xbrli:periodType="instant" xbrli:balance="debit" xmlns="http://www.w3.org/2001/XMLSchema" />
  <xsd:element name="DebtMaturityDateAxis" id="fix_DebtMaturityDateAxis" type="xbrli:stringItemType" substitutionGroup="xbrldt:dimensionItem" nillable="true" xbrli:periodType="duration" abstract="true" />
  <xsd:element name="DebtMaturityDateDomain" id="fix_DebtMaturityDateDomain" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" nillable="true" xbrli:periodType="duration" abstract="true" />
  <xsd:element name="MaturityYearTwoMember" id="fix_MaturityYearTwoMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" nillable="true" xbrli:periodType="duration" abstract="true" />
  <xsd:element name="MaturityYearThreeMember" id="fix_MaturityYearThreeMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" nillable="true" xbrli:periodType="duration" abstract="true" />
  <xsd:element name="MaturityYearFourMember" id="fix_MaturityYearFourMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" nillable="true" xbrli:periodType="duration" abstract="true" />
  <xsd:element name="RevenueRecognitionInitialApplicationPeriodCumulativeEffectTransitionAxis" id="fix_RevenueRecognitionInitialApplicationPeriodCumulativeEffectTransitionAxis" type="xbrli:stringItemType" substitutionGroup="xbrldt:dimensionItem" nillable="true" xbrli:periodType="duration" abstract="true" />
  <xsd:element name="RevenueRecognitionInitialApplicationPeriodCumulativeEffectTransitionDomain" id="fix_RevenueRecognitionInitialApplicationPeriodCumulativeEffectTransitionDomain" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" nillable="true" xbrli:periodType="duration" abstract="true" />
  <xsd:element name="OtherDebtLongTermAndShortTermCombinedAmount" id="fix_OtherDebtLongTermAndShortTermCombinedAmount" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" nillable="true" xbrli:periodType="instant" abstract="false" xbrli:balance="credit" />
  <xsd:element name="DebtCovenantRatioRangeFiveMember" id="fix_DebtCovenantRatioRangeFiveMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" nillable="true" xbrli:periodType="duration" abstract="true" />
  <xsd:element name="MaturityYearFiveMember" id="fix_MaturityYearFiveMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" nillable="true" xbrli:periodType="duration" abstract="true" />
  <xsd:element name="CumulativeNumberOfCompaniesAcquiredOutstandingNotesToFormerOwners" id="fix_CumulativeNumberOfCompaniesAcquiredOutstandingNotesToFormerOwners" type="xbrli:integerItemType" substitutionGroup="xbrli:item" nillable="true" xbrli:periodType="instant" abstract="false" />
  <xsd:element name="EldecoincMember" id="fix_EldecoincMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" nillable="true" xbrli:periodType="duration" abstract="true" />
  <xsd:element name="TechnologyMember" id="fix_TechnologyMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" nillable="true" xbrli:periodType="duration" abstract="true" />
  <xsd:element name="BusinessCombinationContingentConsiderationChangeInContingentConsiderationLiabilityMember" id="fix_BusinessCombinationContingentConsiderationChangeInContingentConsiderationLiabilityMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" nillable="true" xbrli:periodType="duration" abstract="true" />
  <xsd:element name="DisputeWithCustomerMember" id="fix_DisputeWithCustomerMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" nillable="true" xbrli:periodType="duration" abstract="true" />
  <xsd:element name="GrossProfitMember" id="fix_GrossProfitMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" nillable="true" xbrli:periodType="duration" abstract="true" />
  <xsd:element name="ManufacturingCustomerMember" id="fix_ManufacturingCustomerMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" nillable="true" xbrli:periodType="duration" abstract="true" />
  <xsd:element name="MechanicalSegmentMember" id="fix_MechanicalSegmentMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" nillable="true" xbrli:periodType="duration" abstract="true" />
  <xsd:element name="ElectricalSegmentMember" id="fix_ElectricalSegmentMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" nillable="true" xbrli:periodType="duration" abstract="true" />
  <xsd:element name="DeccoIncMember" id="fix_DeccoIncMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" nillable="true" xbrli:periodType="duration" abstract="true" />
  <xsd:element name="NumberOfOffSiteConstructionRealEstateLeasesCommenced" id="fix_NumberOfOffSiteConstructionRealEstateLeasesCommenced" type="xbrli:integerItemType" substitutionGroup="xbrli:item" nillable="true" xbrli:periodType="instant" abstract="false" />
  <xsd:element name="SeniorRevolvingCreditFacilityMember" id="fix_SeniorRevolvingCreditFacilityMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" nillable="true" xbrli:periodType="duration" abstract="true" />
  <xsd:element name="BusinessCombinationNumberOfEarningsMilestones" id="fix_BusinessCombinationNumberOfEarningsMilestones" type="xbrli:integerItemType" substitutionGroup="xbrli:item" nillable="true" xbrli:periodType="instant" abstract="false" />
  <xsd:element name="BusinessCombinationTermOfEarningsMilestones" id="fix_BusinessCombinationTermOfEarningsMilestones" type="xbrli:durationItemType" substitutionGroup="xbrli:item" nillable="true" xbrli:periodType="duration" abstract="false" />
  <xsd:element name="BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseRightOfUseAssets" id="fix_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseRightOfUseAssets" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" nillable="true" xbrli:periodType="instant" abstract="false" xbrli:balance="debit" />
  <xsd:element name="BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesOperatingLeaseLiabilities" id="fix_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesOperatingLeaseLiabilities" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" nillable="true" xbrli:periodType="instant" abstract="false" xbrli:balance="credit" />
  <xsd:element name="ContractWithCustomerPerformanceObligationSatisfiedInPreviousPeriodPercentage" id="fix_ContractWithCustomerPerformanceObligationSatisfiedInPreviousPeriodPercentage" type="dtr-types:percentItemType" substitutionGroup="xbrli:item" nillable="true" xbrli:periodType="duration" abstract="false" />
  <xsd:element name="SummitIndustrialConstructionLlcMember" id="fix_SummitIndustrialConstructionLlcMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" nillable="true" xbrli:periodType="duration" abstract="true" />
  <xsd:element name="BusinessCombinationRecognizedIdentifiableAssetAcquiredAndLiabilityAssumedOperatingLeaseObligation" id="fix_BusinessCombinationRecognizedIdentifiableAssetAcquiredAndLiabilityAssumedOperatingLeaseObligation" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" nillable="true" xbrli:periodType="instant" abstract="false" xbrli:balance="credit" />
  <xsd:element name="JSMechanicalContractorsIncMember" id="fix_JSMechanicalContractorsIncMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" nillable="true" xbrli:periodType="duration" abstract="true" />
  <xsd:element name="MechanicalContractorNorthCarolinaMember" id="fix_MechanicalContractorNorthCarolinaMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" nillable="true" xbrli:periodType="duration" abstract="true" />
</xsd:schema>
</XBRL>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-101.CAL
<SEQUENCE>7
<FILENAME>fix-20240930_cal.xml
<DESCRIPTION>EX-101.CAL
<TEXT>
<XBRL>
<?xml version="1.0" encoding="utf-8"?>
<!--XBRL document created with Toppan Merrill Bridge  10.8.0.95 -->
<!--Based on XBRL 2.1-->
<!--Created on: 10/24/2024 8:25:24 PM-->
<!--Modified on: 10/24/2024 8:25:24 PM-->
<link:linkbase xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.xbrl.org/2003/linkbase http://www.xbrl.org/2003/xbrl-linkbase-2003-12-31.xsd" xmlns:link="http://www.xbrl.org/2003/linkbase" xmlns:xbrli="http://www.xbrl.org/2003/instance" xmlns:xlink="http://www.w3.org/1999/xlink">
  <roleRef xlink:type="simple" xlink:href="fix-20240930.xsd#StatementConsolidatedBalanceSheets" roleURI="http://www.comfortsystemsusa.com/role/StatementConsolidatedBalanceSheets" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="fix-20240930.xsd#StatementConsolidatedStatementsOfOperations" roleURI="http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfOperations" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="fix-20240930.xsd#StatementConsolidatedStatementsOfCashFlows" roleURI="http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfCashFlows" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="fix-20240930.xsd#DisclosureAcquisitionsDetails" roleURI="http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="fix-20240930.xsd#DisclosureGoodwillAndIdentifiableIntangibleAssetsNetIdentifiableIntangibleAssetsNetDetails" roleURI="http://www.comfortsystemsusa.com/role/DisclosureGoodwillAndIdentifiableIntangibleAssetsNetIdentifiableIntangibleAssetsNetDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="fix-20240930.xsd#DisclosureDebtObligationsDetailss" roleURI="http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsDetailss" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="fix-20240930.xsd#DisclosureLeasesSummaryOfOperatingLeaseAssetsAndLiabilitiesDetails" roleURI="http://www.comfortsystemsusa.com/role/DisclosureLeasesSummaryOfOperatingLeaseAssetsAndLiabilitiesDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="fix-20240930.xsd#DisclosureLeasesMaturitiesOfLeaseLiabilitiesDetails" roleURI="http://www.comfortsystemsusa.com/role/DisclosureLeasesMaturitiesOfLeaseLiabilitiesDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="fix-20240930.xsd#DisclosureStockholdersEquityNumberOfSharesDetails" roleURI="http://www.comfortsystemsusa.com/role/DisclosureStockholdersEquityNumberOfSharesDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <link:arcroleRef arcroleURI="https://xbrl.org/2023/arcrole/summation-item" xlink:type="simple" xlink:href="https://www.xbrl.org/2023/calculation-1.1.xsd#summation-item" />
  <calculationLink xlink:role="http://www.comfortsystemsusa.com/role/StatementConsolidatedBalanceSheets" xlink:type="extended" xlink:title="995200100 - Statement - CONSOLIDATED BALANCE SHEETS" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_Assets" xlink:label="us-gaap_Assets" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AssetsCurrent" xlink:label="us-gaap_AssetsCurrent_638653983206561826" />
    <calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_Assets" xlink:to="us-gaap_AssetsCurrent_638653983206561826" order="1" use="optional" weight="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CashAndCashEquivalentsAtCarryingValue" xlink:label="us-gaap_CashAndCashEquivalentsAtCarryingValue_638653983206561826" />
    <calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_AssetsCurrent_638653983206561826" xlink:to="us-gaap_CashAndCashEquivalentsAtCarryingValue_638653983206561826" order="1" use="optional" weight="1" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BilledContractReceivables" xlink:label="us-gaap_BilledContractReceivables_638653983206571814" />
    <calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_AssetsCurrent_638653983206561826" xlink:to="us-gaap_BilledContractReceivables_638653983206571814" order="2" use="optional" weight="1" priority="2" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_UnbilledContractsReceivable" xlink:label="us-gaap_UnbilledContractsReceivable_638653983206571814" />
    <calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_AssetsCurrent_638653983206561826" xlink:to="us-gaap_UnbilledContractsReceivable_638653983206571814" order="3" use="optional" weight="1" priority="2" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NontradeReceivablesCurrent" xlink:label="us-gaap_NontradeReceivablesCurrent_638653983206571814" />
    <calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_AssetsCurrent_638653983206561826" xlink:to="us-gaap_NontradeReceivablesCurrent_638653983206571814" order="4" use="optional" weight="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_InventoryNet" xlink:label="us-gaap_InventoryNet_638653983206571814" />
    <calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_AssetsCurrent_638653983206561826" xlink:to="us-gaap_InventoryNet_638653983206571814" order="5" use="optional" weight="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ContractWithCustomerAssetNetCurrent" xlink:label="us-gaap_ContractWithCustomerAssetNetCurrent_638653983206571814" />
    <calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_AssetsCurrent_638653983206561826" xlink:to="us-gaap_ContractWithCustomerAssetNetCurrent_638653983206571814" order="6" use="optional" weight="1" priority="2" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PrepaidExpenseAndOtherAssetsCurrent" xlink:label="us-gaap_PrepaidExpenseAndOtherAssetsCurrent_638653983206571814" />
    <calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_AssetsCurrent_638653983206561826" xlink:to="us-gaap_PrepaidExpenseAndOtherAssetsCurrent_638653983206571814" order="7" use="optional" weight="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PropertyPlantAndEquipmentNet" xlink:label="us-gaap_PropertyPlantAndEquipmentNet_638653983206581833" />
    <calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_Assets" xlink:to="us-gaap_PropertyPlantAndEquipmentNet_638653983206581833" order="2" use="optional" weight="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingLeaseRightOfUseAsset" xlink:label="us-gaap_OperatingLeaseRightOfUseAsset_638653983206581833" />
    <calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_Assets" xlink:to="us-gaap_OperatingLeaseRightOfUseAsset_638653983206581833" order="3" use="optional" weight="1" priority="2" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_Goodwill" xlink:label="us-gaap_Goodwill_638653983206581833" />
    <calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_Assets" xlink:to="us-gaap_Goodwill_638653983206581833" order="4" use="optional" weight="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IntangibleAssetsNetExcludingGoodwill" xlink:label="us-gaap_IntangibleAssetsNetExcludingGoodwill_638653983206581833" />
    <calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_Assets" xlink:to="us-gaap_IntangibleAssetsNetExcludingGoodwill_638653983206581833" order="5" use="optional" weight="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredIncomeTaxAssetsNet" xlink:label="us-gaap_DeferredIncomeTaxAssetsNet_638653983206581833" />
    <calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_Assets" xlink:to="us-gaap_DeferredIncomeTaxAssetsNet_638653983206581833" order="6" use="optional" weight="1" priority="2" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OtherAssetsNoncurrent" xlink:label="us-gaap_OtherAssetsNoncurrent_638653983206581833" />
    <calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_Assets" xlink:to="us-gaap_OtherAssetsNoncurrent_638653983206581833" order="7" use="optional" weight="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LiabilitiesAndStockholdersEquity" xlink:label="us-gaap_LiabilitiesAndStockholdersEquity" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_Liabilities" xlink:label="us-gaap_Liabilities_638653983206591835" />
    <calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_LiabilitiesAndStockholdersEquity" xlink:to="us-gaap_Liabilities_638653983206591835" order="1" use="optional" weight="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LiabilitiesCurrent" xlink:label="us-gaap_LiabilitiesCurrent_638653983206591835" />
    <calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_Liabilities_638653983206591835" xlink:to="us-gaap_LiabilitiesCurrent_638653983206591835" order="1" use="optional" weight="1" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LongTermDebtCurrent" xlink:label="us-gaap_LongTermDebtCurrent_638653983206591835" />
    <calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_LiabilitiesCurrent_638653983206591835" xlink:to="us-gaap_LongTermDebtCurrent_638653983206591835" order="1" use="optional" weight="1" priority="2" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AccountsPayableCurrent" xlink:label="us-gaap_AccountsPayableCurrent_638653983206591835" />
    <calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_LiabilitiesCurrent_638653983206591835" xlink:to="us-gaap_AccountsPayableCurrent_638653983206591835" order="2" use="optional" weight="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EmployeeRelatedLiabilitiesCurrent" xlink:label="us-gaap_EmployeeRelatedLiabilitiesCurrent_638653983206591835" />
    <calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_LiabilitiesCurrent_638653983206591835" xlink:to="us-gaap_EmployeeRelatedLiabilitiesCurrent_638653983206591835" order="3" use="optional" weight="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ContractWithCustomerLiabilityCurrent" xlink:label="us-gaap_ContractWithCustomerLiabilityCurrent_638653983206601826" />
    <calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_LiabilitiesCurrent_638653983206591835" xlink:to="us-gaap_ContractWithCustomerLiabilityCurrent_638653983206601826" order="4" use="optional" weight="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SelfInsuranceReserveCurrent" xlink:label="us-gaap_SelfInsuranceReserveCurrent_638653983206601826" />
    <calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_LiabilitiesCurrent_638653983206591835" xlink:to="us-gaap_SelfInsuranceReserveCurrent_638653983206601826" order="5" use="optional" weight="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OtherLiabilitiesCurrent" xlink:label="us-gaap_OtherLiabilitiesCurrent_638653983206601826" />
    <calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_LiabilitiesCurrent_638653983206591835" xlink:to="us-gaap_OtherLiabilitiesCurrent_638653983206601826" order="6" use="optional" weight="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LongTermDebtNoncurrent" xlink:label="us-gaap_LongTermDebtNoncurrent_638653983206601826" />
    <calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_Liabilities_638653983206591835" xlink:to="us-gaap_LongTermDebtNoncurrent_638653983206601826" order="2" use="optional" weight="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingLeaseLiabilityNoncurrent" xlink:label="us-gaap_OperatingLeaseLiabilityNoncurrent_638653983206601826" />
    <calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_Liabilities_638653983206591835" xlink:to="us-gaap_OperatingLeaseLiabilityNoncurrent_638653983206601826" order="3" use="optional" weight="1" priority="2" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredIncomeTaxLiabilitiesNet" xlink:label="us-gaap_DeferredIncomeTaxLiabilitiesNet_638653983206611832" />
    <calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_Liabilities_638653983206591835" xlink:to="us-gaap_DeferredIncomeTaxLiabilitiesNet_638653983206611832" order="4" use="optional" weight="1" priority="2" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OtherLiabilitiesNoncurrent" xlink:label="us-gaap_OtherLiabilitiesNoncurrent_638653983206611832" />
    <calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_Liabilities_638653983206591835" xlink:to="us-gaap_OtherLiabilitiesNoncurrent_638653983206611832" order="5" use="optional" weight="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StockholdersEquity" xlink:label="us-gaap_StockholdersEquity_638653983206611832" />
    <calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_LiabilitiesAndStockholdersEquity" xlink:to="us-gaap_StockholdersEquity_638653983206611832" order="2" use="optional" weight="1" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PreferredStockValue" xlink:label="us-gaap_PreferredStockValue_638653983206611832" />
    <calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_StockholdersEquity_638653983206611832" xlink:to="us-gaap_PreferredStockValue_638653983206611832" order="1" use="optional" weight="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CommonStockValue" xlink:label="us-gaap_CommonStockValue_638653983206611832" />
    <calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_StockholdersEquity_638653983206611832" xlink:to="us-gaap_CommonStockValue_638653983206611832" order="2" use="optional" weight="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_TreasuryStockValue" xlink:label="us-gaap_TreasuryStockValue_638653983206621809" />
    <calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_StockholdersEquity_638653983206611832" xlink:to="us-gaap_TreasuryStockValue_638653983206621809" order="3" use="optional" weight="-1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AdditionalPaidInCapitalCommonStock" xlink:label="us-gaap_AdditionalPaidInCapitalCommonStock_638653983206621809" />
    <calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_StockholdersEquity_638653983206611832" xlink:to="us-gaap_AdditionalPaidInCapitalCommonStock_638653983206621809" order="4" use="optional" weight="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RetainedEarningsAccumulatedDeficit" xlink:label="us-gaap_RetainedEarningsAccumulatedDeficit_638653983206621809" />
    <calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_StockholdersEquity_638653983206611832" xlink:to="us-gaap_RetainedEarningsAccumulatedDeficit_638653983206621809" order="5" use="optional" weight="1" />
  </calculationLink>
  <calculationLink xlink:role="http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfOperations" xlink:type="extended" xlink:title="995200200 - Statement - CONSOLIDATED STATEMENTS OF OPERATIONS" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NetIncomeLoss" xlink:label="us-gaap_NetIncomeLoss" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" xlink:label="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest_638653983206631834" />
    <calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_NetIncomeLoss" xlink:to="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest_638653983206631834" order="1" use="optional" weight="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingIncomeLoss" xlink:label="us-gaap_OperatingIncomeLoss_638653983206631834" />
    <calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest_638653983206631834" xlink:to="us-gaap_OperatingIncomeLoss_638653983206631834" order="1" use="optional" weight="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_GrossProfit" xlink:label="us-gaap_GrossProfit_638653983206631834" />
    <calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_OperatingIncomeLoss_638653983206631834" xlink:to="us-gaap_GrossProfit_638653983206631834" order="1" use="optional" weight="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_Revenues" xlink:label="us-gaap_Revenues_638653983206631834" />
    <calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_GrossProfit_638653983206631834" xlink:to="us-gaap_Revenues_638653983206631834" order="1" use="optional" weight="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CostOfRevenue" xlink:label="us-gaap_CostOfRevenue_638653983206631834" />
    <calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_GrossProfit_638653983206631834" xlink:to="us-gaap_CostOfRevenue_638653983206631834" order="2" use="optional" weight="-1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SellingGeneralAndAdministrativeExpense" xlink:label="us-gaap_SellingGeneralAndAdministrativeExpense_638653983206631834" />
    <calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_OperatingIncomeLoss_638653983206631834" xlink:to="us-gaap_SellingGeneralAndAdministrativeExpense_638653983206631834" order="2" use="optional" weight="-1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_GainLossOnDispositionOfAssets" xlink:label="us-gaap_GainLossOnDispositionOfAssets_638653983206631834" />
    <calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_OperatingIncomeLoss_638653983206631834" xlink:to="us-gaap_GainLossOnDispositionOfAssets_638653983206631834" order="3" use="optional" weight="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NonoperatingIncomeExpense" xlink:label="us-gaap_NonoperatingIncomeExpense_638653983206641817" />
    <calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest_638653983206631834" xlink:to="us-gaap_NonoperatingIncomeExpense_638653983206641817" order="2" use="optional" weight="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_InvestmentIncomeInterest" xlink:label="us-gaap_InvestmentIncomeInterest_638653983206641817" />
    <calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_NonoperatingIncomeExpense_638653983206641817" xlink:to="us-gaap_InvestmentIncomeInterest_638653983206641817" order="1" use="optional" weight="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_InterestExpenseNonoperating" xlink:label="us-gaap_InterestExpenseNonoperating_638653983206641817" />
    <calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_NonoperatingIncomeExpense_638653983206641817" xlink:to="us-gaap_InterestExpenseNonoperating_638653983206641817" order="2" use="optional" weight="-1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1" xlink:label="us-gaap_BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1_638653983206641817" />
    <calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_NonoperatingIncomeExpense_638653983206641817" xlink:to="us-gaap_BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1_638653983206641817" order="3" use="optional" weight="-1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OtherNonoperatingIncomeExpense" xlink:label="us-gaap_OtherNonoperatingIncomeExpense_638653983206641817" />
    <calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_NonoperatingIncomeExpense_638653983206641817" xlink:to="us-gaap_OtherNonoperatingIncomeExpense_638653983206641817" order="4" use="optional" weight="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeTaxExpenseBenefit" xlink:label="us-gaap_IncomeTaxExpenseBenefit_638653983206641817" />
    <calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_NetIncomeLoss" xlink:to="us-gaap_IncomeTaxExpenseBenefit_638653983206641817" order="2" use="optional" weight="-1" priority="7" />
  </calculationLink>
  <calculationLink xlink:role="http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfCashFlows" xlink:type="extended" xlink:title="995200400 - Statement - CONSOLIDATED STATEMENTS OF CASH FLOWS" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect" xlink:label="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:label="us-gaap_NetCashProvidedByUsedInOperatingActivities_638653983206651821" />
    <calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect" xlink:to="us-gaap_NetCashProvidedByUsedInOperatingActivities_638653983206651821" order="1" use="optional" weight="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncreaseDecreaseInOtherOperatingLiabilities" xlink:label="us-gaap_IncreaseDecreaseInOtherOperatingLiabilities_638653983206651821" />
    <calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInOperatingActivities_638653983206651821" xlink:to="us-gaap_IncreaseDecreaseInOtherOperatingLiabilities_638653983206651821" order="1" use="optional" weight="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncreaseDecreaseInContractWithCustomerLiability" xlink:label="us-gaap_IncreaseDecreaseInContractWithCustomerLiability_638653983206651821" />
    <calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInOperatingActivities_638653983206651821" xlink:to="us-gaap_IncreaseDecreaseInContractWithCustomerLiability_638653983206651821" order="2" use="optional" weight="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncreaseDecreaseInAccountsPayableAndAccruedLiabilities" xlink:label="us-gaap_IncreaseDecreaseInAccountsPayableAndAccruedLiabilities_638653983206651821" />
    <calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInOperatingActivities_638653983206651821" xlink:to="us-gaap_IncreaseDecreaseInAccountsPayableAndAccruedLiabilities_638653983206651821" order="3" use="optional" weight="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncreaseDecreaseInOtherOperatingAssets" xlink:label="us-gaap_IncreaseDecreaseInOtherOperatingAssets_638653983206651821" />
    <calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInOperatingActivities_638653983206651821" xlink:to="us-gaap_IncreaseDecreaseInOtherOperatingAssets_638653983206651821" order="4" use="optional" weight="-1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncreaseDecreaseInContractWithCustomerAsset" xlink:label="us-gaap_IncreaseDecreaseInContractWithCustomerAsset_638653983206651821" />
    <calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInOperatingActivities_638653983206651821" xlink:to="us-gaap_IncreaseDecreaseInContractWithCustomerAsset_638653983206651821" order="5" use="optional" weight="-1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets" xlink:label="us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets_638653983206651821" />
    <calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInOperatingActivities_638653983206651821" xlink:to="us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets_638653983206651821" order="6" use="optional" weight="-1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncreaseDecreaseInInventories" xlink:label="us-gaap_IncreaseDecreaseInInventories_638653983206661814" />
    <calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInOperatingActivities_638653983206651821" xlink:to="us-gaap_IncreaseDecreaseInInventories_638653983206661814" order="7" use="optional" weight="-1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncreaseDecreaseInAccountsReceivable" xlink:label="us-gaap_IncreaseDecreaseInAccountsReceivable_638653983206661814" />
    <calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInOperatingActivities_638653983206651821" xlink:to="us-gaap_IncreaseDecreaseInAccountsReceivable_638653983206661814" order="8" use="optional" weight="-1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensation" xlink:label="us-gaap_ShareBasedCompensation_638653983206661814" />
    <calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInOperatingActivities_638653983206651821" xlink:to="us-gaap_ShareBasedCompensation_638653983206661814" order="9" use="optional" weight="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1" xlink:label="us-gaap_BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1_638653983206661814" />
    <calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInOperatingActivities_638653983206651821" xlink:to="us-gaap_BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1_638653983206661814" order="10" use="optional" weight="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_GainLossOnSaleOfPropertyPlantEquipment" xlink:label="us-gaap_GainLossOnSaleOfPropertyPlantEquipment_638653983206661814" />
    <calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInOperatingActivities_638653983206651821" xlink:to="us-gaap_GainLossOnSaleOfPropertyPlantEquipment_638653983206661814" order="11" use="optional" weight="-1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AmortizationOfFinancingCosts" xlink:label="us-gaap_AmortizationOfFinancingCosts_638653983206661814" />
    <calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInOperatingActivities_638653983206651821" xlink:to="us-gaap_AmortizationOfFinancingCosts_638653983206661814" order="12" use="optional" weight="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredIncomeTaxExpenseBenefit" xlink:label="us-gaap_DeferredIncomeTaxExpenseBenefit_638653983206671810" />
    <calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInOperatingActivities_638653983206651821" xlink:to="us-gaap_DeferredIncomeTaxExpenseBenefit_638653983206671810" order="13" use="optional" weight="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ProvisionForDoubtfulAccounts" xlink:label="us-gaap_ProvisionForDoubtfulAccounts_638653983206671810" />
    <calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInOperatingActivities_638653983206651821" xlink:to="us-gaap_ProvisionForDoubtfulAccounts_638653983206671810" order="14" use="optional" weight="1" />
    <loc xlink:type="locator" xlink:href="fix-20240930.xsd#fix_ChangeInRightOfUseAssets" xlink:label="fix_ChangeInRightOfUseAssets_638653983206671810" />
    <calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInOperatingActivities_638653983206651821" xlink:to="fix_ChangeInRightOfUseAssets_638653983206671810" order="15" use="optional" weight="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_Depreciation" xlink:label="us-gaap_Depreciation_638653983206671810" />
    <calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInOperatingActivities_638653983206651821" xlink:to="us-gaap_Depreciation_638653983206671810" order="16" use="optional" weight="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AmortizationOfIntangibleAssets" xlink:label="us-gaap_AmortizationOfIntangibleAssets_638653983206671810" />
    <calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInOperatingActivities_638653983206651821" xlink:to="us-gaap_AmortizationOfIntangibleAssets_638653983206671810" order="17" use="optional" weight="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ProfitLoss" xlink:label="us-gaap_ProfitLoss_638653983206671810" />
    <calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInOperatingActivities_638653983206651821" xlink:to="us-gaap_ProfitLoss_638653983206671810" order="18" use="optional" weight="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NetCashProvidedByUsedInInvestingActivities" xlink:label="us-gaap_NetCashProvidedByUsedInInvestingActivities_638653983206681813" />
    <calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect" xlink:to="us-gaap_NetCashProvidedByUsedInInvestingActivities_638653983206681813" order="2" use="optional" weight="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired" xlink:label="us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired_638653983206681813" />
    <calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInInvestingActivities_638653983206681813" xlink:to="us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired_638653983206681813" order="1" use="optional" weight="-1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PaymentsToAcquireInvestments" xlink:label="us-gaap_PaymentsToAcquireInvestments_638653983206681813" />
    <calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInInvestingActivities_638653983206681813" xlink:to="us-gaap_PaymentsToAcquireInvestments_638653983206681813" order="2" use="optional" weight="-1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ProceedsFromSaleOfPropertyPlantAndEquipment" xlink:label="us-gaap_ProceedsFromSaleOfPropertyPlantAndEquipment_638653983206681813" />
    <calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInInvestingActivities_638653983206681813" xlink:to="us-gaap_ProceedsFromSaleOfPropertyPlantAndEquipment_638653983206681813" order="3" use="optional" weight="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PaymentsToAcquirePropertyPlantAndEquipment" xlink:label="us-gaap_PaymentsToAcquirePropertyPlantAndEquipment_638653983206691818" />
    <calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInInvestingActivities_638653983206681813" xlink:to="us-gaap_PaymentsToAcquirePropertyPlantAndEquipment_638653983206691818" order="4" use="optional" weight="-1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NetCashProvidedByUsedInFinancingActivities" xlink:label="us-gaap_NetCashProvidedByUsedInFinancingActivities_638653983206691818" />
    <calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect" xlink:to="us-gaap_NetCashProvidedByUsedInFinancingActivities_638653983206691818" order="3" use="optional" weight="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ProceedsFromLongTermLinesOfCredit" xlink:label="us-gaap_ProceedsFromLongTermLinesOfCredit_638653983206691818" />
    <calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivities_638653983206691818" xlink:to="us-gaap_ProceedsFromLongTermLinesOfCredit_638653983206691818" order="1" use="optional" weight="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RepaymentsOfLongTermLinesOfCredit" xlink:label="us-gaap_RepaymentsOfLongTermLinesOfCredit_638653983206691818" />
    <calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivities_638653983206691818" xlink:to="us-gaap_RepaymentsOfLongTermLinesOfCredit_638653983206691818" order="2" use="optional" weight="-1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ProceedsFromOtherDebt" xlink:label="us-gaap_ProceedsFromOtherDebt_638653983206691818" />
    <calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivities_638653983206691818" xlink:to="us-gaap_ProceedsFromOtherDebt_638653983206691818" order="3" use="optional" weight="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RepaymentsOfOtherDebt" xlink:label="us-gaap_RepaymentsOfOtherDebt_638653983206701818" />
    <calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivities_638653983206691818" xlink:to="us-gaap_RepaymentsOfOtherDebt_638653983206701818" order="4" use="optional" weight="-1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PaymentsOfDividendsCommonStock" xlink:label="us-gaap_PaymentsOfDividendsCommonStock_638653983206701818" />
    <calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivities_638653983206691818" xlink:to="us-gaap_PaymentsOfDividendsCommonStock_638653983206701818" order="5" use="optional" weight="-1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PaymentsForRepurchaseOfCommonStock" xlink:label="us-gaap_PaymentsForRepurchaseOfCommonStock_638653983206701818" />
    <calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivities_638653983206691818" xlink:to="us-gaap_PaymentsForRepurchaseOfCommonStock_638653983206701818" order="6" use="optional" weight="-1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PaymentsRelatedToTaxWithholdingForShareBasedCompensation" xlink:label="us-gaap_PaymentsRelatedToTaxWithholdingForShareBasedCompensation_638653983206701818" />
    <calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivities_638653983206691818" xlink:to="us-gaap_PaymentsRelatedToTaxWithholdingForShareBasedCompensation_638653983206701818" order="7" use="optional" weight="-1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ProceedsFromStockOptionsExercised" xlink:label="us-gaap_ProceedsFromStockOptionsExercised_638653983206711823" />
    <calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivities_638653983206691818" xlink:to="us-gaap_ProceedsFromStockOptionsExercised_638653983206711823" order="8" use="optional" weight="1" />
    <loc xlink:type="locator" xlink:href="fix-20240930.xsd#fix_DeferredAcquisitionPayments" xlink:label="fix_DeferredAcquisitionPayments_638653983206711823" />
    <calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivities_638653983206691818" xlink:to="fix_DeferredAcquisitionPayments_638653983206711823" order="9" use="optional" weight="-1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PaymentForContingentConsiderationLiabilityFinancingActivities" xlink:label="us-gaap_PaymentForContingentConsiderationLiabilityFinancingActivities_638653983206711823" />
    <calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivities_638653983206691818" xlink:to="us-gaap_PaymentForContingentConsiderationLiabilityFinancingActivities_638653983206711823" order="10" use="optional" weight="-1" />
  </calculationLink>
  <calculationLink xlink:role="http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsDetails" xlink:type="extended" xlink:title="99940501 - Disclosure - Acquisitions (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet" />
    <loc xlink:type="locator" xlink:href="fix-20240930.xsd#fix_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesBillingsInExcessOfCostsAndEstimatedEarnings" xlink:label="fix_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesBillingsInExcessOfCostsAndEstimatedEarnings_638653983206721825" />
    <calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet" xlink:to="fix_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesBillingsInExcessOfCostsAndEstimatedEarnings_638653983206721825" order="1" use="optional" weight="-1" priority="2" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents_638653983206721825" />
    <calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents_638653983206721825" order="2" use="optional" weight="1" priority="2" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables_638653983206721825" />
    <calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables_638653983206721825" order="3" use="optional" weight="1" priority="2" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedInventory" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedInventory_638653983206721825" />
    <calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedInventory_638653983206721825" order="4" use="optional" weight="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsPrepaidExpenseAndOtherAssets" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsPrepaidExpenseAndOtherAssets_638653983206721825" />
    <calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsPrepaidExpenseAndOtherAssets_638653983206721825" order="5" use="optional" weight="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable_638653983206731829" />
    <calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable_638653983206731829" order="6" use="optional" weight="-1" priority="2" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesOther" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesOther_638653983206731829" />
    <calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesOther_638653983206731829" order="7" use="optional" weight="-1" priority="2" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNoncurrentLiabilitiesLongTermDebt" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNoncurrentLiabilitiesLongTermDebt_638653983206731829" />
    <calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNoncurrentLiabilitiesLongTermDebt_638653983206731829" order="8" use="optional" weight="-1" />
    <loc xlink:type="locator" xlink:href="fix-20240930.xsd#fix_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsCostsInExcessOfBillings" xlink:label="fix_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsCostsInExcessOfBillings_638653983206731829" />
    <calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet" xlink:to="fix_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsCostsInExcessOfBillings_638653983206731829" order="9" use="optional" weight="1" priority="2" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOtherNoncurrentAssets" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOtherNoncurrentAssets_638653983206731829" />
    <calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOtherNoncurrentAssets_638653983206731829" order="10" use="optional" weight="1" priority="2" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_Goodwill" xlink:label="us-gaap_Goodwill_638653983206731829" />
    <calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet" xlink:to="us-gaap_Goodwill_638653983206731829" order="11" use="optional" weight="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles_638653983206741820" />
    <calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles_638653983206741820" order="12" use="optional" weight="1" priority="2" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment_638653983206741820" />
    <calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment_638653983206741820" order="13" use="optional" weight="1" priority="2" />
    <loc xlink:type="locator" xlink:href="fix-20240930.xsd#fix_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseRightOfUseAssets" xlink:label="fix_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseRightOfUseAssets_638653983206741820" />
    <calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet" xlink:to="fix_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseRightOfUseAssets_638653983206741820" order="14" use="optional" weight="1" />
    <loc xlink:type="locator" xlink:href="fix-20240930.xsd#fix_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesOperatingLeaseLiabilities" xlink:label="fix_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesOperatingLeaseLiabilities_638653983206741820" />
    <calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet" xlink:to="fix_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesOperatingLeaseLiabilities_638653983206741820" order="15" use="optional" weight="-1" />
    <loc xlink:type="locator" xlink:href="fix-20240930.xsd#fix_BusinessCombinationRecognizedIdentifiableAssetAcquiredAndLiabilityAssumedOperatingLeaseObligation" xlink:label="fix_BusinessCombinationRecognizedIdentifiableAssetAcquiredAndLiabilityAssumedOperatingLeaseObligation_638653983206751833" />
    <calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet" xlink:to="fix_BusinessCombinationRecognizedIdentifiableAssetAcquiredAndLiabilityAssumedOperatingLeaseObligation_638653983206751833" order="16" use="optional" weight="-1" />
  </calculationLink>
  <calculationLink xlink:role="http://www.comfortsystemsusa.com/role/DisclosureGoodwillAndIdentifiableIntangibleAssetsNetIdentifiableIntangibleAssetsNetDetails" xlink:type="extended" xlink:title="99940602 - Disclosure - Goodwill and Identifiable Intangible Assets, Net - Identifiable Intangible Assets, Net (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FiniteLivedIntangibleAssetsNet" xlink:label="us-gaap_FiniteLivedIntangibleAssetsNet" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths_638653983206751833" />
    <calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_FiniteLivedIntangibleAssetsNet" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths_638653983206751833" order="1" use="optional" weight="1" priority="2" />
    <loc xlink:type="locator" xlink:href="fix-20240930.xsd#fix_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFour" xlink:label="fix_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFour_638653983206751833" />
    <calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_FiniteLivedIntangibleAssetsNet" xlink:to="fix_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFour_638653983206751833" order="2" use="optional" weight="1" priority="2" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour_638653983206751833" />
    <calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_FiniteLivedIntangibleAssetsNet" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour_638653983206751833" order="3" use="optional" weight="1" priority="2" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree_638653983206751833" />
    <calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_FiniteLivedIntangibleAssetsNet" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree_638653983206751833" order="4" use="optional" weight="1" priority="2" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo_638653983206761830" />
    <calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_FiniteLivedIntangibleAssetsNet" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo_638653983206761830" order="5" use="optional" weight="1" priority="2" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseRemainderOfFiscalYear" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseRemainderOfFiscalYear_638653983206761830" />
    <calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_FiniteLivedIntangibleAssetsNet" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseRemainderOfFiscalYear_638653983206761830" order="6" use="optional" weight="1" priority="2" />
  </calculationLink>
  <calculationLink xlink:role="http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsDetailss" xlink:type="extended" xlink:title="40701 - Disclosure - Debt Obligations (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LongTermDebtAndCapitalLeaseObligationsIncludingCurrentMaturities" xlink:label="us-gaap_LongTermDebtAndCapitalLeaseObligationsIncludingCurrentMaturities" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LongTermDebtAndCapitalLeaseObligationsCurrent" xlink:label="us-gaap_LongTermDebtAndCapitalLeaseObligationsCurrent_638653983206761830" />
    <calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_LongTermDebtAndCapitalLeaseObligationsIncludingCurrentMaturities" xlink:to="us-gaap_LongTermDebtAndCapitalLeaseObligationsCurrent_638653983206761830" order="1" use="optional" weight="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LongTermDebtAndCapitalLeaseObligations" xlink:label="us-gaap_LongTermDebtAndCapitalLeaseObligations_638653983206761830" />
    <calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_LongTermDebtAndCapitalLeaseObligationsIncludingCurrentMaturities" xlink:to="us-gaap_LongTermDebtAndCapitalLeaseObligations_638653983206761830" order="2" use="optional" weight="1" />
  </calculationLink>
  <calculationLink xlink:role="http://www.comfortsystemsusa.com/role/DisclosureLeasesSummaryOfOperatingLeaseAssetsAndLiabilitiesDetails" xlink:type="extended" xlink:title="99940802 - Disclosure - Leases - Summary of Operating Lease Assets and Liabilities (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingLeaseLiability" xlink:label="us-gaap_OperatingLeaseLiability" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingLeaseLiabilityCurrent" xlink:label="us-gaap_OperatingLeaseLiabilityCurrent_638653983206771829" />
    <calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_OperatingLeaseLiability" xlink:to="us-gaap_OperatingLeaseLiabilityCurrent_638653983206771829" order="1" use="optional" weight="1" priority="2" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingLeaseLiabilityNoncurrent" xlink:label="us-gaap_OperatingLeaseLiabilityNoncurrent_638653983206771829" />
    <calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_OperatingLeaseLiability" xlink:to="us-gaap_OperatingLeaseLiabilityNoncurrent_638653983206771829" order="2" use="optional" weight="1" priority="2" />
  </calculationLink>
  <calculationLink xlink:role="http://www.comfortsystemsusa.com/role/DisclosureLeasesMaturitiesOfLeaseLiabilitiesDetails" xlink:type="extended" xlink:title="99940803 - Disclosure - Leases - Maturities of Lease Liabilities (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsRemainderOfFiscalYear" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsRemainderOfFiscalYear_638653983206771829" />
    <calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsRemainderOfFiscalYear_638653983206771829" order="1" use="optional" weight="1" priority="2" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths_638653983206771829" />
    <calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths_638653983206771829" order="2" use="optional" weight="1" priority="2" />
    <loc xlink:type="locator" xlink:href="fix-20240930.xsd#fix_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFour" xlink:label="fix_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFour_638653983206771829" />
    <calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue" xlink:to="fix_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFour_638653983206771829" order="3" use="optional" weight="1" priority="2" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour_638653983206781827" />
    <calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour_638653983206781827" order="4" use="optional" weight="1" priority="2" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree_638653983206781827" />
    <calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree_638653983206781827" order="5" use="optional" weight="1" priority="2" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo_638653983206781827" />
    <calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo_638653983206781827" order="6" use="optional" weight="1" priority="2" />
  </calculationLink>
  <calculationLink xlink:role="http://www.comfortsystemsusa.com/role/DisclosureStockholdersEquityNumberOfSharesDetails" xlink:type="extended" xlink:title="99941001 - Disclosure - Stockholders' Equity - Number of Shares (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding" xlink:label="us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncrementalCommonSharesAttributableToShareBasedPaymentArrangements" xlink:label="us-gaap_IncrementalCommonSharesAttributableToShareBasedPaymentArrangements_638653983206781827" />
    <calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding" xlink:to="us-gaap_IncrementalCommonSharesAttributableToShareBasedPaymentArrangements_638653983206781827" order="1" use="optional" weight="1" priority="2" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncrementalCommonSharesAttributableToContingentlyIssuableShares" xlink:label="us-gaap_IncrementalCommonSharesAttributableToContingentlyIssuableShares_638653983206792241" />
    <calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding" xlink:to="us-gaap_IncrementalCommonSharesAttributableToContingentlyIssuableShares_638653983206792241" order="2" use="optional" weight="1" priority="2" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_WeightedAverageNumberOfSharesOutstandingBasic" xlink:label="us-gaap_WeightedAverageNumberOfSharesOutstandingBasic_638653983206792241" />
    <calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding" xlink:to="us-gaap_WeightedAverageNumberOfSharesOutstandingBasic_638653983206792241" order="3" use="optional" weight="1" priority="2" />
  </calculationLink>
</link:linkbase>
</XBRL>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-101.DEF
<SEQUENCE>8
<FILENAME>fix-20240930_def.xml
<DESCRIPTION>EX-101.DEF
<TEXT>
<XBRL>
<?xml version="1.0" encoding="utf-8"?>
<!--XBRL document created with Toppan Merrill Bridge  10.8.0.95 -->
<!--Based on XBRL 2.1-->
<!--Created on: 10/24/2024 8:25:24 PM-->
<!--Modified on: 10/24/2024 8:25:24 PM-->
<link:linkbase xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.xbrl.org/2003/linkbase http://www.xbrl.org/2003/xbrl-linkbase-2003-12-31.xsd" xmlns:link="http://www.xbrl.org/2003/linkbase" xmlns:xbrldt="http://xbrl.org/2005/xbrldt" xmlns:xbrli="http://www.xbrl.org/2003/instance" xmlns:xlink="http://www.w3.org/1999/xlink">
  <roleRef xlink:type="simple" xlink:href="fix-20240930.xsd#StatementConsolidatedStatementsOfStockholdersEquity" roleURI="http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfStockholdersEquity" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="fix-20240930.xsd#DisclosureAcquisitionsTables" roleURI="http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsTables" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="fix-20240930.xsd#DisclosureDebtObligationsTables" roleURI="http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsTables" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="fix-20240930.xsd#DisclosureRevenueFromContractsWithCustomersDisaggregationOfRevenueDetails" roleURI="http://www.comfortsystemsusa.com/role/DisclosureRevenueFromContractsWithCustomersDisaggregationOfRevenueDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="fix-20240930.xsd#DisclosureRevenueFromContractsWithCustomersRemainingPerformanceObligationsDetails" roleURI="http://www.comfortsystemsusa.com/role/DisclosureRevenueFromContractsWithCustomersRemainingPerformanceObligationsDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="fix-20240930.xsd#DisclosureRevenueFromContractsWithCustomersRemainingPerformanceObligationsDefaultDetails" roleURI="http://www.comfortsystemsusa.com/role/DisclosureRevenueFromContractsWithCustomersRemainingPerformanceObligationsDefaultDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="fix-20240930.xsd#DisclosureFairValueMeasurementsDetails" roleURI="http://www.comfortsystemsusa.com/role/DisclosureFairValueMeasurementsDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="fix-20240930.xsd#DisclosureAcquisitionsDetails" roleURI="http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="fix-20240930.xsd#DisclosureAcquisitionsAcquiredIntangibleAssetsDetails" roleURI="http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsAcquiredIntangibleAssetsDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="fix-20240930.xsd#DisclosureAcquisitionsOtherAcquisitionsDetails" roleURI="http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsOtherAcquisitionsDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="fix-20240930.xsd#DisclosureGoodwillAndIdentifiableIntangibleAssetsNetChangesInCarryingAmountOfGoodwillDetails" roleURI="http://www.comfortsystemsusa.com/role/DisclosureGoodwillAndIdentifiableIntangibleAssetsNetChangesInCarryingAmountOfGoodwillDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="fix-20240930.xsd#DisclosureGoodwillAndIdentifiableIntangibleAssetsNetIdentifiableIntangibleAssetsNetDetails" roleURI="http://www.comfortsystemsusa.com/role/DisclosureGoodwillAndIdentifiableIntangibleAssetsNetIdentifiableIntangibleAssetsNetDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="fix-20240930.xsd#DisclosureDebtObligationsDetails" roleURI="http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="fix-20240930.xsd#DisclosureDebtObligationsOtherDetails" roleURI="http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsOtherDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="fix-20240930.xsd#DisclosureDebtObligationsNotesToFormerOwnersDetails" roleURI="http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsNotesToFormerOwnersDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="fix-20240930.xsd#DisclosureLeasesDetails" roleURI="http://www.comfortsystemsusa.com/role/DisclosureLeasesDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="fix-20240930.xsd#DisclosureCommitmentsAndContingenciesDetails" roleURI="http://www.comfortsystemsusa.com/role/DisclosureCommitmentsAndContingenciesDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="fix-20240930.xsd#DisclosureStockholdersEquityIncentiveAndOtherDetails" roleURI="http://www.comfortsystemsusa.com/role/DisclosureStockholdersEquityIncentiveAndOtherDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="fix-20240930.xsd#DisclosureSegmentInformationDetails" roleURI="http://www.comfortsystemsusa.com/role/DisclosureSegmentInformationDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <link:arcroleRef arcroleURI="http://www.esma.europa.eu/xbrl/esef/arcrole/wider-narrower" xlink:type="simple" xlink:href="http://www.xbrl.org/lrr/arcrole/esma-arcrole-2018-11-21.xsd#wider-narrower" />
  <link:roleRef roleURI="http://www.comfortsystemsusa.com/role/DisclosureStandardAndCustomAxisDomainDefaults" xlink:href="fix-20240930.xsd#DisclosureStandardAndCustomAxisDomainDefaults" xlink:type="simple" />
  <roleRef xlink:type="simple" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-roles-2024.xsd#eedm" roleURI="http://fasb.org/us-gaap/role/eedm/ExtensibleEnumerationLists" xmlns="http://www.xbrl.org/2003/linkbase" />
  <link:arcroleRef arcroleURI="http://xbrl.org/int/dim/arcrole/all" xlink:type="simple" xlink:href="http://www.xbrl.org/2005/xbrldt-2005.xsd#all" />
  <link:arcroleRef arcroleURI="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:type="simple" xlink:href="http://www.xbrl.org/2005/xbrldt-2005.xsd#dimension-domain" />
  <link:arcroleRef arcroleURI="http://xbrl.org/int/dim/arcrole/domain-member" xlink:type="simple" xlink:href="http://www.xbrl.org/2005/xbrldt-2005.xsd#domain-member" />
  <link:arcroleRef arcroleURI="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:type="simple" xlink:href="http://www.xbrl.org/2005/xbrldt-2005.xsd#hypercube-dimension" />
  <link:arcroleRef arcroleURI="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:type="simple" xlink:href="http://www.xbrl.org/2005/xbrldt-2005.xsd#dimension-default" />
  <definitionLink xlink:role="http://fasb.org/us-gaap/role/eedm/ExtensibleEnumerationLists" xlink:type="extended" xlink:title="Extensible Enumeration Domain Members" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LiabilitiesAbstract" xlink:label="us-gaap_LiabilitiesAbstract" xlink:title="us-gaap_LiabilitiesAbstract" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_Liabilities" xlink:label="us-gaap_Liabilities_1" xlink:title="us-gaap_Liabilities_1" />
    <definitionArc xlink:type="arc" xlink:from="us-gaap_LiabilitiesAbstract" xlink:to="us-gaap_Liabilities_1" use="optional" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:title="definition:us-gaap_LiabilitiesAbstract To us-gaap_Liabilities_1" order="1" priority="0" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LongTermDebtCurrent" xlink:label="us-gaap_LongTermDebtCurrent_1" xlink:title="us-gaap_LongTermDebtCurrent_1" />
    <definitionArc xlink:type="arc" xlink:from="us-gaap_LiabilitiesAbstract" xlink:to="us-gaap_LongTermDebtCurrent_1" use="optional" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:title="definition:us-gaap_LiabilitiesAbstract To us-gaap_LongTermDebtCurrent_1" order="2" priority="0" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LongTermDebtNoncurrent" xlink:label="us-gaap_LongTermDebtNoncurrent_1" xlink:title="us-gaap_LongTermDebtNoncurrent_1" />
    <definitionArc xlink:type="arc" xlink:from="us-gaap_LiabilitiesAbstract" xlink:to="us-gaap_LongTermDebtNoncurrent_1" use="optional" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:title="definition:us-gaap_LiabilitiesAbstract To us-gaap_LongTermDebtNoncurrent_1" order="3" priority="0" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeStatementAbstract" xlink:label="us-gaap_IncomeStatementAbstract" xlink:title="us-gaap_IncomeStatementAbstract" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1" xlink:label="us-gaap_BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1_1" xlink:title="us-gaap_BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1_1" />
    <definitionArc xlink:type="arc" xlink:from="us-gaap_IncomeStatementAbstract" xlink:to="us-gaap_BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1_1" use="optional" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:title="definition:us-gaap_IncomeStatementAbstract To us-gaap_BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1_1" order="1" priority="0" />
  </definitionLink>
  <link:definitionLink xlink:role="http://www.comfortsystemsusa.com/role/DisclosureStandardAndCustomAxisDomainDefaults" xlink:type="extended" xlink:title="99900 - Disclosure - Standard And Custom Axis Domain Defaults">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis_1" xlink:title="dei_LegalEntityAxis_1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain_1" xlink:title="dei_EntityDomain_1" />
    <link:definitionArc xlink:type="arc" xlink:from="dei_LegalEntityAxis_1" xlink:to="dei_EntityDomain_1" use="optional" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:title="definition:dei_LegalEntityAxis_1 To dei_EntityDomain_1" order="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_StatementScenarioAxis" xlink:label="srt_StatementScenarioAxis_1" xlink:title="srt_StatementScenarioAxis_1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_ScenarioUnspecifiedDomain" xlink:label="srt_ScenarioUnspecifiedDomain_1" xlink:title="srt_ScenarioUnspecifiedDomain_1" />
    <link:definitionArc xlink:type="arc" xlink:from="srt_StatementScenarioAxis_1" xlink:to="srt_ScenarioUnspecifiedDomain_1" use="optional" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:title="definition:srt_StatementScenarioAxis_1 To srt_ScenarioUnspecifiedDomain_1" order="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_CumulativeEffectPeriodOfAdoptionAxis" xlink:label="srt_CumulativeEffectPeriodOfAdoptionAxis_1" xlink:title="srt_CumulativeEffectPeriodOfAdoptionAxis_1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_CumulativeEffectPeriodOfAdoptionDomain" xlink:label="srt_CumulativeEffectPeriodOfAdoptionDomain_1" xlink:title="srt_CumulativeEffectPeriodOfAdoptionDomain_1" />
    <link:definitionArc xlink:type="arc" xlink:from="srt_CumulativeEffectPeriodOfAdoptionAxis_1" xlink:to="srt_CumulativeEffectPeriodOfAdoptionDomain_1" use="optional" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:title="definition:srt_CumulativeEffectPeriodOfAdoptionAxis_1 To srt_CumulativeEffectPeriodOfAdoptionDomain_1" order="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StatementEquityComponentsAxis" xlink:label="us-gaap_StatementEquityComponentsAxis_1" xlink:title="us-gaap_StatementEquityComponentsAxis_1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EquityComponentDomain" xlink:label="us-gaap_EquityComponentDomain_1" xlink:title="us-gaap_EquityComponentDomain_1" />
    <link:definitionArc xlink:type="arc" xlink:from="us-gaap_StatementEquityComponentsAxis_1" xlink:to="us-gaap_EquityComponentDomain_1" use="optional" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:title="definition:us-gaap_StatementEquityComponentsAxis_1 To us-gaap_EquityComponentDomain_1" order="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeTaxAuthorityNameAxis" xlink:label="us-gaap_IncomeTaxAuthorityNameAxis_1" xlink:title="us-gaap_IncomeTaxAuthorityNameAxis_1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeTaxAuthorityNameDomain" xlink:label="us-gaap_IncomeTaxAuthorityNameDomain_1" xlink:title="us-gaap_IncomeTaxAuthorityNameDomain_1" />
    <link:definitionArc xlink:type="arc" xlink:from="us-gaap_IncomeTaxAuthorityNameAxis_1" xlink:to="us-gaap_IncomeTaxAuthorityNameDomain_1" use="optional" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:title="definition:us-gaap_IncomeTaxAuthorityNameAxis_1 To us-gaap_IncomeTaxAuthorityNameDomain_1" order="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_TaxPeriodAxis" xlink:label="us-gaap_TaxPeriodAxis_1" xlink:title="us-gaap_TaxPeriodAxis_1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_TaxPeriodDomain" xlink:label="us-gaap_TaxPeriodDomain_1" xlink:title="us-gaap_TaxPeriodDomain_1" />
    <link:definitionArc xlink:type="arc" xlink:from="us-gaap_TaxPeriodAxis_1" xlink:to="us-gaap_TaxPeriodDomain_1" use="optional" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:title="definition:us-gaap_TaxPeriodAxis_1 To us-gaap_TaxPeriodDomain_1" order="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_TaxCreditCarryforwardAxis" xlink:label="us-gaap_TaxCreditCarryforwardAxis_1" xlink:title="us-gaap_TaxCreditCarryforwardAxis_1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_TaxCreditCarryforwardNameDomain" xlink:label="us-gaap_TaxCreditCarryforwardNameDomain_1" xlink:title="us-gaap_TaxCreditCarryforwardNameDomain_1" />
    <link:definitionArc xlink:type="arc" xlink:from="us-gaap_TaxCreditCarryforwardAxis_1" xlink:to="us-gaap_TaxCreditCarryforwardNameDomain_1" use="optional" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:title="definition:us-gaap_TaxCreditCarryforwardAxis_1 To us-gaap_TaxCreditCarryforwardNameDomain_1" order="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_RangeAxis" xlink:label="srt_RangeAxis_1" xlink:title="srt_RangeAxis_1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_RangeMember" xlink:label="srt_RangeMember_1" xlink:title="srt_RangeMember_1" />
    <link:definitionArc xlink:type="arc" xlink:from="srt_RangeAxis_1" xlink:to="srt_RangeMember_1" use="optional" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:title="definition:srt_RangeAxis_1 To srt_RangeMember_1" order="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_InitialApplicationPeriodCumulativeEffectTransitionAxis" xlink:label="us-gaap_InitialApplicationPeriodCumulativeEffectTransitionAxis_1" xlink:title="us-gaap_InitialApplicationPeriodCumulativeEffectTransitionAxis_1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_InitialApplicationPeriodCumulativeEffectTransitionDomain" xlink:label="us-gaap_InitialApplicationPeriodCumulativeEffectTransitionDomain_1" xlink:title="us-gaap_InitialApplicationPeriodCumulativeEffectTransitionDomain_1" />
    <link:definitionArc xlink:type="arc" xlink:from="us-gaap_InitialApplicationPeriodCumulativeEffectTransitionAxis_1" xlink:to="us-gaap_InitialApplicationPeriodCumulativeEffectTransitionDomain_1" use="optional" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:title="definition:us-gaap_InitialApplicationPeriodCumulativeEffectTransitionAxis_1 To us-gaap_InitialApplicationPeriodCumulativeEffectTransitionDomain_1" order="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_ProductOrServiceAxis" xlink:label="srt_ProductOrServiceAxis_1" xlink:title="srt_ProductOrServiceAxis_1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_ProductsAndServicesDomain" xlink:label="srt_ProductsAndServicesDomain_1" xlink:title="srt_ProductsAndServicesDomain_1" />
    <link:definitionArc xlink:type="arc" xlink:from="srt_ProductOrServiceAxis_1" xlink:to="srt_ProductsAndServicesDomain_1" use="optional" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:title="definition:srt_ProductOrServiceAxis_1 To srt_ProductsAndServicesDomain_1" order="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_MajorCustomersAxis" xlink:label="srt_MajorCustomersAxis_1" xlink:title="srt_MajorCustomersAxis_1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_NameOfMajorCustomerDomain" xlink:label="srt_NameOfMajorCustomerDomain_1" xlink:title="srt_NameOfMajorCustomerDomain_1" />
    <link:definitionArc xlink:type="arc" xlink:from="srt_MajorCustomersAxis_1" xlink:to="srt_NameOfMajorCustomerDomain_1" use="optional" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:title="definition:srt_MajorCustomersAxis_1 To srt_NameOfMajorCustomerDomain_1" order="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StatementBusinessSegmentsAxis" xlink:label="us-gaap_StatementBusinessSegmentsAxis_1" xlink:title="us-gaap_StatementBusinessSegmentsAxis_1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SegmentDomain" xlink:label="us-gaap_SegmentDomain_1" xlink:title="us-gaap_SegmentDomain_1" />
    <link:definitionArc xlink:type="arc" xlink:from="us-gaap_StatementBusinessSegmentsAxis_1" xlink:to="us-gaap_SegmentDomain_1" use="optional" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:title="definition:us-gaap_StatementBusinessSegmentsAxis_1 To us-gaap_SegmentDomain_1" order="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DerivativeInstrumentRiskAxis" xlink:label="us-gaap_DerivativeInstrumentRiskAxis_1" xlink:title="us-gaap_DerivativeInstrumentRiskAxis_1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DerivativeContractTypeDomain" xlink:label="us-gaap_DerivativeContractTypeDomain_1" xlink:title="us-gaap_DerivativeContractTypeDomain_1" />
    <link:definitionArc xlink:type="arc" xlink:from="us-gaap_DerivativeInstrumentRiskAxis_1" xlink:to="us-gaap_DerivativeContractTypeDomain_1" use="optional" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:title="definition:us-gaap_DerivativeInstrumentRiskAxis_1 To us-gaap_DerivativeContractTypeDomain_1" order="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FairValueByMeasurementFrequencyAxis" xlink:label="us-gaap_FairValueByMeasurementFrequencyAxis_1" xlink:title="us-gaap_FairValueByMeasurementFrequencyAxis_1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FairValueMeasurementFrequencyDomain" xlink:label="us-gaap_FairValueMeasurementFrequencyDomain_1" xlink:title="us-gaap_FairValueMeasurementFrequencyDomain_1" />
    <link:definitionArc xlink:type="arc" xlink:from="us-gaap_FairValueByMeasurementFrequencyAxis_1" xlink:to="us-gaap_FairValueMeasurementFrequencyDomain_1" use="optional" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:title="definition:us-gaap_FairValueByMeasurementFrequencyAxis_1 To us-gaap_FairValueMeasurementFrequencyDomain_1" order="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FairValueByFairValueHierarchyLevelAxis" xlink:label="us-gaap_FairValueByFairValueHierarchyLevelAxis_1" xlink:title="us-gaap_FairValueByFairValueHierarchyLevelAxis_1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FairValueMeasurementsFairValueHierarchyDomain" xlink:label="us-gaap_FairValueMeasurementsFairValueHierarchyDomain_1" xlink:title="us-gaap_FairValueMeasurementsFairValueHierarchyDomain_1" />
    <link:definitionArc xlink:type="arc" xlink:from="us-gaap_FairValueByFairValueHierarchyLevelAxis_1" xlink:to="us-gaap_FairValueMeasurementsFairValueHierarchyDomain_1" use="optional" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:title="definition:us-gaap_FairValueByFairValueHierarchyLevelAxis_1 To us-gaap_FairValueMeasurementsFairValueHierarchyDomain_1" order="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FairValueByLiabilityClassAxis" xlink:label="us-gaap_FairValueByLiabilityClassAxis_1" xlink:title="us-gaap_FairValueByLiabilityClassAxis_1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationByLiabilityClassDomain" xlink:label="us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationByLiabilityClassDomain_1" xlink:title="us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationByLiabilityClassDomain_1" />
    <link:definitionArc xlink:type="arc" xlink:from="us-gaap_FairValueByLiabilityClassAxis_1" xlink:to="us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationByLiabilityClassDomain_1" use="optional" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:title="definition:us-gaap_FairValueByLiabilityClassAxis_1 To us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationByLiabilityClassDomain_1" order="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FairValueByMeasurementBasisAxis" xlink:label="us-gaap_FairValueByMeasurementBasisAxis_1" xlink:title="us-gaap_FairValueByMeasurementBasisAxis_1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PortionAtFairValueFairValueDisclosureMember" xlink:label="us-gaap_PortionAtFairValueFairValueDisclosureMember_1" xlink:title="us-gaap_PortionAtFairValueFairValueDisclosureMember_1" />
    <link:definitionArc xlink:type="arc" xlink:from="us-gaap_FairValueByMeasurementBasisAxis_1" xlink:to="us-gaap_PortionAtFairValueFairValueDisclosureMember_1" use="optional" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:title="definition:us-gaap_FairValueByMeasurementBasisAxis_1 To us-gaap_PortionAtFairValueFairValueDisclosureMember_1" order="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_HedgingDesignationAxis" xlink:label="us-gaap_HedgingDesignationAxis_1" xlink:title="us-gaap_HedgingDesignationAxis_1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_HedgingDesignationDomain" xlink:label="us-gaap_HedgingDesignationDomain_1" xlink:title="us-gaap_HedgingDesignationDomain_1" />
    <link:definitionArc xlink:type="arc" xlink:from="us-gaap_HedgingDesignationAxis_1" xlink:to="us-gaap_HedgingDesignationDomain_1" use="optional" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:title="definition:us-gaap_HedgingDesignationAxis_1 To us-gaap_HedgingDesignationDomain_1" order="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessAcquisitionAxis" xlink:label="us-gaap_BusinessAcquisitionAxis_1" xlink:title="us-gaap_BusinessAcquisitionAxis_1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessAcquisitionAcquireeDomain" xlink:label="us-gaap_BusinessAcquisitionAcquireeDomain_1" xlink:title="us-gaap_BusinessAcquisitionAcquireeDomain_1" />
    <link:definitionArc xlink:type="arc" xlink:from="us-gaap_BusinessAcquisitionAxis_1" xlink:to="us-gaap_BusinessAcquisitionAcquireeDomain_1" use="optional" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:title="definition:us-gaap_BusinessAcquisitionAxis_1 To us-gaap_BusinessAcquisitionAcquireeDomain_1" order="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ValuationTechniqueAxis" xlink:label="us-gaap_ValuationTechniqueAxis_1" xlink:title="us-gaap_ValuationTechniqueAxis_1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ValuationTechniqueDomain" xlink:label="us-gaap_ValuationTechniqueDomain_1" xlink:title="us-gaap_ValuationTechniqueDomain_1" />
    <link:definitionArc xlink:type="arc" xlink:from="us-gaap_ValuationTechniqueAxis_1" xlink:to="us-gaap_ValuationTechniqueDomain_1" use="optional" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:title="definition:us-gaap_ValuationTechniqueAxis_1 To us-gaap_ValuationTechniqueDomain_1" order="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_StatementGeographicalAxis" xlink:label="srt_StatementGeographicalAxis_1" xlink:title="srt_StatementGeographicalAxis_1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_SegmentGeographicalDomain" xlink:label="srt_SegmentGeographicalDomain_1" xlink:title="srt_SegmentGeographicalDomain_1" />
    <link:definitionArc xlink:type="arc" xlink:from="srt_StatementGeographicalAxis_1" xlink:to="srt_SegmentGeographicalDomain_1" use="optional" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:title="definition:srt_StatementGeographicalAxis_1 To srt_SegmentGeographicalDomain_1" order="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:label="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_1" xlink:title="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:label="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_1" xlink:title="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_1" />
    <link:definitionArc xlink:type="arc" xlink:from="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_1" xlink:to="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_1" use="optional" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:title="definition:us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_1 To us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_1" order="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DebtInstrumentAxis" xlink:label="us-gaap_DebtInstrumentAxis_1" xlink:title="us-gaap_DebtInstrumentAxis_1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DebtInstrumentNameDomain" xlink:label="us-gaap_DebtInstrumentNameDomain_1" xlink:title="us-gaap_DebtInstrumentNameDomain_1" />
    <link:definitionArc xlink:type="arc" xlink:from="us-gaap_DebtInstrumentAxis_1" xlink:to="us-gaap_DebtInstrumentNameDomain_1" use="optional" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:title="definition:us-gaap_DebtInstrumentAxis_1 To us-gaap_DebtInstrumentNameDomain_1" order="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LongtermDebtTypeAxis" xlink:label="us-gaap_LongtermDebtTypeAxis_1" xlink:title="us-gaap_LongtermDebtTypeAxis_1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LongtermDebtTypeDomain" xlink:label="us-gaap_LongtermDebtTypeDomain_1" xlink:title="us-gaap_LongtermDebtTypeDomain_1" />
    <link:definitionArc xlink:type="arc" xlink:from="us-gaap_LongtermDebtTypeAxis_1" xlink:to="us-gaap_LongtermDebtTypeDomain_1" use="optional" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:title="definition:us-gaap_LongtermDebtTypeAxis_1 To us-gaap_LongtermDebtTypeDomain_1" order="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_VariableRateAxis" xlink:label="us-gaap_VariableRateAxis_1" xlink:title="us-gaap_VariableRateAxis_1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_VariableRateDomain" xlink:label="us-gaap_VariableRateDomain_1" xlink:title="us-gaap_VariableRateDomain_1" />
    <link:definitionArc xlink:type="arc" xlink:from="us-gaap_VariableRateAxis_1" xlink:to="us-gaap_VariableRateDomain_1" use="optional" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:title="definition:us-gaap_VariableRateAxis_1 To us-gaap_VariableRateDomain_1" order="1" />
    <link:loc xlink:type="locator" xlink:href="fix-20240930.xsd#fix_DebtInstrumentVariableRateSecondaryClassificationAxis" xlink:label="fix_DebtInstrumentVariableRateSecondaryClassificationAxis_1" xlink:title="fix_DebtInstrumentVariableRateSecondaryClassificationAxis_1" />
    <link:loc xlink:type="locator" xlink:href="fix-20240930.xsd#fix_DebtInstrumentVariableRateSecondaryClassificationDomain" xlink:label="fix_DebtInstrumentVariableRateSecondaryClassificationDomain_1" xlink:title="fix_DebtInstrumentVariableRateSecondaryClassificationDomain_1" />
    <link:definitionArc xlink:type="arc" xlink:from="fix_DebtInstrumentVariableRateSecondaryClassificationAxis_1" xlink:to="fix_DebtInstrumentVariableRateSecondaryClassificationDomain_1" use="optional" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:title="definition:fix_DebtInstrumentVariableRateSecondaryClassificationAxis_1 To fix_DebtInstrumentVariableRateSecondaryClassificationDomain_1" order="1" />
    <link:loc xlink:type="locator" xlink:href="fix-20240930.xsd#fix_DebtCovenantRatioAxis" xlink:label="fix_DebtCovenantRatioAxis_1" xlink:title="fix_DebtCovenantRatioAxis_1" />
    <link:loc xlink:type="locator" xlink:href="fix-20240930.xsd#fix_DebtCovenantRatioDomain" xlink:label="fix_DebtCovenantRatioDomain_1" xlink:title="fix_DebtCovenantRatioDomain_1" />
    <link:definitionArc xlink:type="arc" xlink:from="fix_DebtCovenantRatioAxis_1" xlink:to="fix_DebtCovenantRatioDomain_1" use="optional" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:title="definition:fix_DebtCovenantRatioAxis_1 To fix_DebtCovenantRatioDomain_1" order="1" />
    <link:loc xlink:type="locator" xlink:href="fix-20240930.xsd#fix_DebtCovenantEffectiveDateAxis" xlink:label="fix_DebtCovenantEffectiveDateAxis_1" xlink:title="fix_DebtCovenantEffectiveDateAxis_1" />
    <link:loc xlink:type="locator" xlink:href="fix-20240930.xsd#fix_DebtCovenantEffectiveDateDomain" xlink:label="fix_DebtCovenantEffectiveDateDomain_1" xlink:title="fix_DebtCovenantEffectiveDateDomain_1" />
    <link:definitionArc xlink:type="arc" xlink:from="fix_DebtCovenantEffectiveDateAxis_1" xlink:to="fix_DebtCovenantEffectiveDateDomain_1" use="optional" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:title="definition:fix_DebtCovenantEffectiveDateAxis_1 To fix_DebtCovenantEffectiveDateDomain_1" order="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeStatementLocationAxis" xlink:label="us-gaap_IncomeStatementLocationAxis_1" xlink:title="us-gaap_IncomeStatementLocationAxis_1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeStatementLocationDomain" xlink:label="us-gaap_IncomeStatementLocationDomain_1" xlink:title="us-gaap_IncomeStatementLocationDomain_1" />
    <link:definitionArc xlink:type="arc" xlink:from="us-gaap_IncomeStatementLocationAxis_1" xlink:to="us-gaap_IncomeStatementLocationDomain_1" use="optional" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:title="definition:us-gaap_IncomeStatementLocationAxis_1 To us-gaap_IncomeStatementLocationDomain_1" order="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_CounterpartyNameAxis" xlink:label="srt_CounterpartyNameAxis_1" xlink:title="srt_CounterpartyNameAxis_1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_RepurchaseAgreementCounterpartyNameDomain" xlink:label="srt_RepurchaseAgreementCounterpartyNameDomain_1" xlink:title="srt_RepurchaseAgreementCounterpartyNameDomain_1" />
    <link:definitionArc xlink:type="arc" xlink:from="srt_CounterpartyNameAxis_1" xlink:to="srt_RepurchaseAgreementCounterpartyNameDomain_1" use="optional" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:title="definition:srt_CounterpartyNameAxis_1 To srt_RepurchaseAgreementCounterpartyNameDomain_1" order="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LossContingenciesByNatureOfContingencyAxis" xlink:label="us-gaap_LossContingenciesByNatureOfContingencyAxis_1" xlink:title="us-gaap_LossContingenciesByNatureOfContingencyAxis_1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LossContingencyNatureDomain" xlink:label="us-gaap_LossContingencyNatureDomain_1" xlink:title="us-gaap_LossContingencyNatureDomain_1" />
    <link:definitionArc xlink:type="arc" xlink:from="us-gaap_LossContingenciesByNatureOfContingencyAxis_1" xlink:to="us-gaap_LossContingencyNatureDomain_1" use="optional" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:title="definition:us-gaap_LossContingenciesByNatureOfContingencyAxis_1 To us-gaap_LossContingencyNatureDomain_1" order="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LitigationStatusAxis" xlink:label="us-gaap_LitigationStatusAxis_1" xlink:title="us-gaap_LitigationStatusAxis_1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LitigationStatusDomain" xlink:label="us-gaap_LitigationStatusDomain_1" xlink:title="us-gaap_LitigationStatusDomain_1" />
    <link:definitionArc xlink:type="arc" xlink:from="us-gaap_LitigationStatusAxis_1" xlink:to="us-gaap_LitigationStatusDomain_1" use="optional" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:title="definition:us-gaap_LitigationStatusAxis_1 To us-gaap_LitigationStatusDomain_1" order="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PlanNameAxis" xlink:label="us-gaap_PlanNameAxis_1" xlink:title="us-gaap_PlanNameAxis_1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PlanNameDomain" xlink:label="us-gaap_PlanNameDomain_1" xlink:title="us-gaap_PlanNameDomain_1" />
    <link:definitionArc xlink:type="arc" xlink:from="us-gaap_PlanNameAxis_1" xlink:to="us-gaap_PlanNameDomain_1" use="optional" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:title="definition:us-gaap_PlanNameAxis_1 To us-gaap_PlanNameDomain_1" order="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis" xlink:label="us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_1" xlink:title="us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AntidilutiveSecuritiesNameDomain" xlink:label="us-gaap_AntidilutiveSecuritiesNameDomain_1" xlink:title="us-gaap_AntidilutiveSecuritiesNameDomain_1" />
    <link:definitionArc xlink:type="arc" xlink:from="us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_1" xlink:to="us-gaap_AntidilutiveSecuritiesNameDomain_1" use="optional" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:title="definition:us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_1 To us-gaap_AntidilutiveSecuritiesNameDomain_1" order="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_ConsolidationItemsAxis" xlink:label="srt_ConsolidationItemsAxis_1" xlink:title="srt_ConsolidationItemsAxis_1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_ConsolidationItemsDomain" xlink:label="srt_ConsolidationItemsDomain_1" xlink:title="srt_ConsolidationItemsDomain_1" />
    <link:definitionArc xlink:type="arc" xlink:from="srt_ConsolidationItemsAxis_1" xlink:to="srt_ConsolidationItemsDomain_1" use="optional" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:title="definition:srt_ConsolidationItemsAxis_1 To srt_ConsolidationItemsDomain_1" order="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AdjustmentsForNewAccountingPronouncementsAxis" xlink:label="us-gaap_AdjustmentsForNewAccountingPronouncementsAxis_1" xlink:title="us-gaap_AdjustmentsForNewAccountingPronouncementsAxis_1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_TypeOfAdoptionMember" xlink:label="us-gaap_TypeOfAdoptionMember_1" xlink:title="us-gaap_TypeOfAdoptionMember_1" />
    <link:definitionArc xlink:type="arc" xlink:from="us-gaap_AdjustmentsForNewAccountingPronouncementsAxis_1" xlink:to="us-gaap_TypeOfAdoptionMember_1" use="optional" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:title="definition:us-gaap_AdjustmentsForNewAccountingPronouncementsAxis_1 To us-gaap_TypeOfAdoptionMember_1" order="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_RestatementAxis" xlink:label="srt_RestatementAxis_1" xlink:title="srt_RestatementAxis_1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_RestatementDomain" xlink:label="srt_RestatementDomain_1" xlink:title="srt_RestatementDomain_1" />
    <link:definitionArc xlink:type="arc" xlink:from="srt_RestatementAxis_1" xlink:to="srt_RestatementDomain_1" use="optional" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:title="definition:srt_RestatementAxis_1 To srt_RestatementDomain_1" order="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ConcentrationRiskByBenchmarkAxis" xlink:label="us-gaap_ConcentrationRiskByBenchmarkAxis_1" xlink:title="us-gaap_ConcentrationRiskByBenchmarkAxis_1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ConcentrationRiskBenchmarkDomain" xlink:label="us-gaap_ConcentrationRiskBenchmarkDomain_1" xlink:title="us-gaap_ConcentrationRiskBenchmarkDomain_1" />
    <link:definitionArc xlink:type="arc" xlink:from="us-gaap_ConcentrationRiskByBenchmarkAxis_1" xlink:to="us-gaap_ConcentrationRiskBenchmarkDomain_1" use="optional" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:title="definition:us-gaap_ConcentrationRiskByBenchmarkAxis_1 To us-gaap_ConcentrationRiskBenchmarkDomain_1" order="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ConcentrationRiskByTypeAxis" xlink:label="us-gaap_ConcentrationRiskByTypeAxis_1" xlink:title="us-gaap_ConcentrationRiskByTypeAxis_1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ConcentrationRiskTypeDomain" xlink:label="us-gaap_ConcentrationRiskTypeDomain_1" xlink:title="us-gaap_ConcentrationRiskTypeDomain_1" />
    <link:definitionArc xlink:type="arc" xlink:from="us-gaap_ConcentrationRiskByTypeAxis_1" xlink:to="us-gaap_ConcentrationRiskTypeDomain_1" use="optional" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:title="definition:us-gaap_ConcentrationRiskByTypeAxis_1 To us-gaap_ConcentrationRiskTypeDomain_1" order="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeStatementBalanceSheetAndAdditionalDisclosuresByDisposalGroupsIncludingDiscontinuedOperationsAxis" xlink:label="us-gaap_IncomeStatementBalanceSheetAndAdditionalDisclosuresByDisposalGroupsIncludingDiscontinuedOperationsAxis_1" xlink:title="us-gaap_IncomeStatementBalanceSheetAndAdditionalDisclosuresByDisposalGroupsIncludingDiscontinuedOperationsAxis_1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DisposalGroupsIncludingDiscontinuedOperationsNameDomain" xlink:label="us-gaap_DisposalGroupsIncludingDiscontinuedOperationsNameDomain_1" xlink:title="us-gaap_DisposalGroupsIncludingDiscontinuedOperationsNameDomain_1" />
    <link:definitionArc xlink:type="arc" xlink:from="us-gaap_IncomeStatementBalanceSheetAndAdditionalDisclosuresByDisposalGroupsIncludingDiscontinuedOperationsAxis_1" xlink:to="us-gaap_DisposalGroupsIncludingDiscontinuedOperationsNameDomain_1" use="optional" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:title="definition:us-gaap_IncomeStatementBalanceSheetAndAdditionalDisclosuresByDisposalGroupsIncludingDiscontinuedOperationsAxis_1 To us-gaap_DisposalGroupsIncludingDiscontinuedOperationsNameDomain_1" order="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DisposalGroupClassificationAxis" xlink:label="us-gaap_DisposalGroupClassificationAxis_1" xlink:title="us-gaap_DisposalGroupClassificationAxis_1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DisposalGroupClassificationDomain" xlink:label="us-gaap_DisposalGroupClassificationDomain_1" xlink:title="us-gaap_DisposalGroupClassificationDomain_1" />
    <link:definitionArc xlink:type="arc" xlink:from="us-gaap_DisposalGroupClassificationAxis_1" xlink:to="us-gaap_DisposalGroupClassificationDomain_1" use="optional" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:title="definition:us-gaap_DisposalGroupClassificationAxis_1 To us-gaap_DisposalGroupClassificationDomain_1" order="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeTaxAuthorityAxis" xlink:label="us-gaap_IncomeTaxAuthorityAxis_1" xlink:title="us-gaap_IncomeTaxAuthorityAxis_1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeTaxAuthorityDomain" xlink:label="us-gaap_IncomeTaxAuthorityDomain_1" xlink:title="us-gaap_IncomeTaxAuthorityDomain_1" />
    <link:definitionArc xlink:type="arc" xlink:from="us-gaap_IncomeTaxAuthorityAxis_1" xlink:to="us-gaap_IncomeTaxAuthorityDomain_1" use="optional" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:title="definition:us-gaap_IncomeTaxAuthorityAxis_1 To us-gaap_IncomeTaxAuthorityDomain_1" order="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PropertyPlantAndEquipmentByTypeAxis" xlink:label="us-gaap_PropertyPlantAndEquipmentByTypeAxis_1" xlink:title="us-gaap_PropertyPlantAndEquipmentByTypeAxis_1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PropertyPlantAndEquipmentTypeDomain" xlink:label="us-gaap_PropertyPlantAndEquipmentTypeDomain_1" xlink:title="us-gaap_PropertyPlantAndEquipmentTypeDomain_1" />
    <link:definitionArc xlink:type="arc" xlink:from="us-gaap_PropertyPlantAndEquipmentByTypeAxis_1" xlink:to="us-gaap_PropertyPlantAndEquipmentTypeDomain_1" use="optional" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:title="definition:us-gaap_PropertyPlantAndEquipmentByTypeAxis_1 To us-gaap_PropertyPlantAndEquipmentTypeDomain_1" order="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RelatedPartyTransactionsByRelatedPartyAxis" xlink:label="us-gaap_RelatedPartyTransactionsByRelatedPartyAxis_1" xlink:title="us-gaap_RelatedPartyTransactionsByRelatedPartyAxis_1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RelatedPartyDomain" xlink:label="us-gaap_RelatedPartyDomain_1" xlink:title="us-gaap_RelatedPartyDomain_1" />
    <link:definitionArc xlink:type="arc" xlink:from="us-gaap_RelatedPartyTransactionsByRelatedPartyAxis_1" xlink:to="us-gaap_RelatedPartyDomain_1" use="optional" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:title="definition:us-gaap_RelatedPartyTransactionsByRelatedPartyAxis_1 To us-gaap_RelatedPartyDomain_1" order="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AwardTypeAxis" xlink:label="us-gaap_AwardTypeAxis_1" xlink:title="us-gaap_AwardTypeAxis_1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_1" xlink:title="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_1" />
    <link:definitionArc xlink:type="arc" xlink:from="us-gaap_AwardTypeAxis_1" xlink:to="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_1" use="optional" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:title="definition:us-gaap_AwardTypeAxis_1 To us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_1" order="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis" xlink:label="us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis_1" xlink:title="us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis_1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeDomain" xlink:label="us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeDomain_1" xlink:title="us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeDomain_1" />
    <link:definitionArc xlink:type="arc" xlink:from="us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis_1" xlink:to="us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeDomain_1" use="optional" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:title="definition:us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis_1 To us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeDomain_1" order="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SubsequentEventTypeAxis" xlink:label="us-gaap_SubsequentEventTypeAxis_1" xlink:title="us-gaap_SubsequentEventTypeAxis_1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SubsequentEventTypeDomain" xlink:label="us-gaap_SubsequentEventTypeDomain_1" xlink:title="us-gaap_SubsequentEventTypeDomain_1" />
    <link:definitionArc xlink:type="arc" xlink:from="us-gaap_SubsequentEventTypeAxis_1" xlink:to="us-gaap_SubsequentEventTypeDomain_1" use="optional" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:title="definition:us-gaap_SubsequentEventTypeAxis_1 To us-gaap_SubsequentEventTypeDomain_1" order="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_ConsolidatedEntitiesAxis" xlink:label="srt_ConsolidatedEntitiesAxis_1" xlink:title="srt_ConsolidatedEntitiesAxis_1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_ConsolidatedEntitiesDomain" xlink:label="srt_ConsolidatedEntitiesDomain_1" xlink:title="srt_ConsolidatedEntitiesDomain_1" />
    <link:definitionArc xlink:type="arc" xlink:from="srt_ConsolidatedEntitiesAxis_1" xlink:to="srt_ConsolidatedEntitiesDomain_1" use="optional" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:title="definition:srt_ConsolidatedEntitiesAxis_1 To srt_ConsolidatedEntitiesDomain_1" order="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_MeasurementInputTypeAxis" xlink:label="us-gaap_MeasurementInputTypeAxis_1" xlink:title="us-gaap_MeasurementInputTypeAxis_1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_MeasurementInputTypeDomain" xlink:label="us-gaap_MeasurementInputTypeDomain_1" xlink:title="us-gaap_MeasurementInputTypeDomain_1" />
    <link:definitionArc xlink:type="arc" xlink:from="us-gaap_MeasurementInputTypeAxis_1" xlink:to="us-gaap_MeasurementInputTypeDomain_1" use="optional" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:title="definition:us-gaap_MeasurementInputTypeAxis_1 To us-gaap_MeasurementInputTypeDomain_1" order="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BalanceSheetLocationAxis" xlink:label="us-gaap_BalanceSheetLocationAxis_1" xlink:title="us-gaap_BalanceSheetLocationAxis_1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BalanceSheetLocationDomain" xlink:label="us-gaap_BalanceSheetLocationDomain_1" xlink:title="us-gaap_BalanceSheetLocationDomain_1" />
    <link:definitionArc xlink:type="arc" xlink:from="us-gaap_BalanceSheetLocationAxis_1" xlink:to="us-gaap_BalanceSheetLocationDomain_1" use="optional" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:title="definition:us-gaap_BalanceSheetLocationAxis_1 To us-gaap_BalanceSheetLocationDomain_1" order="1" />
    <link:loc xlink:type="locator" xlink:href="fix-20240930.xsd#fix_DebtMaturityDateAxis" xlink:label="fix_DebtMaturityDateAxis_1" xlink:title="fix_DebtMaturityDateAxis_1" />
    <link:loc xlink:type="locator" xlink:href="fix-20240930.xsd#fix_DebtMaturityDateDomain" xlink:label="fix_DebtMaturityDateDomain_1" xlink:title="fix_DebtMaturityDateDomain_1" />
    <link:definitionArc xlink:type="arc" xlink:from="fix_DebtMaturityDateAxis_1" xlink:to="fix_DebtMaturityDateDomain_1" use="optional" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:title="definition:fix_DebtMaturityDateAxis_1 To fix_DebtMaturityDateDomain_1" order="1" />
    <link:loc xlink:type="locator" xlink:href="fix-20240930.xsd#fix_RevenueRecognitionInitialApplicationPeriodCumulativeEffectTransitionAxis" xlink:label="fix_RevenueRecognitionInitialApplicationPeriodCumulativeEffectTransitionAxis_1" xlink:title="fix_RevenueRecognitionInitialApplicationPeriodCumulativeEffectTransitionAxis_1" />
    <link:loc xlink:type="locator" xlink:href="fix-20240930.xsd#fix_RevenueRecognitionInitialApplicationPeriodCumulativeEffectTransitionDomain" xlink:label="fix_RevenueRecognitionInitialApplicationPeriodCumulativeEffectTransitionDomain_1" xlink:title="fix_RevenueRecognitionInitialApplicationPeriodCumulativeEffectTransitionDomain_1" />
    <link:definitionArc xlink:type="arc" xlink:from="fix_RevenueRecognitionInitialApplicationPeriodCumulativeEffectTransitionAxis_1" xlink:to="fix_RevenueRecognitionInitialApplicationPeriodCumulativeEffectTransitionDomain_1" use="optional" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:title="definition:fix_RevenueRecognitionInitialApplicationPeriodCumulativeEffectTransitionAxis_1 To fix_RevenueRecognitionInitialApplicationPeriodCumulativeEffectTransitionDomain_1" order="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PledgedStatusAxis" xlink:label="us-gaap_PledgedStatusAxis_1" xlink:title="us-gaap_PledgedStatusAxis_1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PledgedStatusDomain" xlink:label="us-gaap_PledgedStatusDomain_1" xlink:title="us-gaap_PledgedStatusDomain_1" />
    <link:definitionArc xlink:type="arc" xlink:from="us-gaap_PledgedStatusAxis_1" xlink:to="us-gaap_PledgedStatusDomain_1" use="optional" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:title="definition:us-gaap_PledgedStatusAxis_1 To us-gaap_PledgedStatusDomain_1" order="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CreditFacilityAxis" xlink:label="us-gaap_CreditFacilityAxis_1" xlink:title="us-gaap_CreditFacilityAxis_1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CreditFacilityDomain" xlink:label="us-gaap_CreditFacilityDomain_1" xlink:title="us-gaap_CreditFacilityDomain_1" />
    <link:definitionArc xlink:type="arc" xlink:from="us-gaap_CreditFacilityAxis_1" xlink:to="us-gaap_CreditFacilityDomain_1" use="optional" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:title="definition:us-gaap_CreditFacilityAxis_1 To us-gaap_CreditFacilityDomain_1" order="1" />
  </link:definitionLink>
  <definitionLink xlink:role="http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfStockholdersEquity" xlink:type="extended" xlink:title="995200300 - Statement - CONSOLIDATED STATEMENTS OF STOCKHOLDERS' EQUITY" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StatementEquityComponentsAxis" xlink:label="us-gaap_StatementEquityComponentsAxis" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" order="1" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementEquityComponentsAxis" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EquityComponentDomain" xlink:label="us-gaap_EquityComponentDomain" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" order="1" xlink:from="us-gaap_StatementEquityComponentsAxis" xlink:to="us-gaap_EquityComponentDomain" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CommonStockMember" xlink:label="us-gaap_CommonStockMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="us-gaap_EquityComponentDomain" xlink:to="us-gaap_CommonStockMember" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_TreasuryStockCommonMember" xlink:label="us-gaap_TreasuryStockCommonMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="us-gaap_EquityComponentDomain" xlink:to="us-gaap_TreasuryStockCommonMember" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AdditionalPaidInCapitalMember" xlink:label="us-gaap_AdditionalPaidInCapitalMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="3" xlink:from="us-gaap_EquityComponentDomain" xlink:to="us-gaap_AdditionalPaidInCapitalMember" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RetainedEarningsMember" xlink:label="us-gaap_RetainedEarningsMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="4" xlink:from="us-gaap_EquityComponentDomain" xlink:to="us-gaap_RetainedEarningsMember" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" order="1" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" use="optional" xbrldt:contextElement="segment" xbrldt:closed="true" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncreaseDecreaseInStockholdersEquityRollForward" xlink:label="us-gaap_IncreaseDecreaseInStockholdersEquityRollForward" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_IncreaseDecreaseInStockholdersEquityRollForward" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StockholdersEquity" xlink:label="us-gaap_StockholdersEquity" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="us-gaap_IncreaseDecreaseInStockholdersEquityRollForward" xlink:to="us-gaap_StockholdersEquity" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CommonStockSharesIssued" xlink:label="us-gaap_CommonStockSharesIssued" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="us-gaap_IncreaseDecreaseInStockholdersEquityRollForward" xlink:to="us-gaap_CommonStockSharesIssued" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_TreasuryStockCommonShares" xlink:label="us-gaap_TreasuryStockCommonShares" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="3" xlink:from="us-gaap_IncreaseDecreaseInStockholdersEquityRollForward" xlink:to="us-gaap_TreasuryStockCommonShares" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ProfitLoss" xlink:label="us-gaap_ProfitLoss" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="4" xlink:from="us-gaap_IncreaseDecreaseInStockholdersEquityRollForward" xlink:to="us-gaap_ProfitLoss" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StockIssuedDuringPeriodSharebasedCompensationAbstract" xlink:label="us-gaap_StockIssuedDuringPeriodSharebasedCompensationAbstract" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="5" xlink:from="us-gaap_IncreaseDecreaseInStockholdersEquityRollForward" xlink:to="us-gaap_StockIssuedDuringPeriodSharebasedCompensationAbstract" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised" xlink:label="us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="us-gaap_StockIssuedDuringPeriodSharebasedCompensationAbstract" xlink:to="us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised" xlink:label="us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised" xlink:to="us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StockIssuedDuringPeriodValueShareBasedCompensation" xlink:label="us-gaap_StockIssuedDuringPeriodValueShareBasedCompensation" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="us-gaap_StockIssuedDuringPeriodSharebasedCompensationAbstract" xlink:to="us-gaap_StockIssuedDuringPeriodValueShareBasedCompensation" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StockIssuedDuringPeriodSharesShareBasedCompensation" xlink:label="us-gaap_StockIssuedDuringPeriodSharesShareBasedCompensation" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="us-gaap_StockIssuedDuringPeriodValueShareBasedCompensation" xlink:to="us-gaap_StockIssuedDuringPeriodSharesShareBasedCompensation" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation" xlink:label="us-gaap_AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="6" xlink:from="us-gaap_IncreaseDecreaseInStockholdersEquityRollForward" xlink:to="us-gaap_AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SharesPaidForTaxWithholdingForShareBasedCompensation" xlink:label="us-gaap_SharesPaidForTaxWithholdingForShareBasedCompensation" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="us-gaap_AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation" xlink:to="us-gaap_SharesPaidForTaxWithholdingForShareBasedCompensation" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" xlink:label="us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="7" xlink:from="us-gaap_IncreaseDecreaseInStockholdersEquityRollForward" xlink:to="us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DividendsCommonStockCash" xlink:label="us-gaap_DividendsCommonStockCash" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="8" xlink:from="us-gaap_IncreaseDecreaseInStockholdersEquityRollForward" xlink:to="us-gaap_DividendsCommonStockCash" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_TreasuryStockValueAcquiredCostMethod" xlink:label="us-gaap_TreasuryStockValueAcquiredCostMethod" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="9" xlink:from="us-gaap_IncreaseDecreaseInStockholdersEquityRollForward" xlink:to="us-gaap_TreasuryStockValueAcquiredCostMethod" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_TreasuryStockSharesAcquired" xlink:label="us-gaap_TreasuryStockSharesAcquired" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="us-gaap_TreasuryStockValueAcquiredCostMethod" xlink:to="us-gaap_TreasuryStockSharesAcquired" priority="1" use="optional" />
  </definitionLink>
  <definitionLink xlink:role="http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsTables" xlink:type="extended" xlink:title="99930503 - Disclosure - Acquisitions (Tables)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable" xlink:label="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessAcquisitionAxis" xlink:label="us-gaap_BusinessAcquisitionAxis" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" order="1" xlink:from="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable" xlink:to="us-gaap_BusinessAcquisitionAxis" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessAcquisitionAcquireeDomain" xlink:label="us-gaap_BusinessAcquisitionAcquireeDomain" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" order="1" xlink:from="us-gaap_BusinessAcquisitionAxis" xlink:to="us-gaap_BusinessAcquisitionAcquireeDomain" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20240930.xsd#fix_SummitIndustrialConstructionLlcMember" xlink:label="fix_SummitIndustrialConstructionLlcMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="fix_SummitIndustrialConstructionLlcMember" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20240930.xsd#fix_JSMechanicalContractorsIncMember" xlink:label="fix_JSMechanicalContractorsIncMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="fix_JSMechanicalContractorsIncMember" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessAcquisitionLineItems" xlink:label="us-gaap_BusinessAcquisitionLineItems" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" order="1" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable" use="optional" xbrldt:contextElement="segment" xbrldt:closed="true" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTextBlock" xlink:label="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTextBlock" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTextBlock" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfFiniteLivedIntangibleAssetsAcquiredAsPartOfBusinessCombinationTextBlock" xlink:label="us-gaap_ScheduleOfFiniteLivedIntangibleAssetsAcquiredAsPartOfBusinessCombinationTextBlock" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="3" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="us-gaap_ScheduleOfFiniteLivedIntangibleAssetsAcquiredAsPartOfBusinessCombinationTextBlock" priority="1" use="optional" />
  </definitionLink>
  <definitionLink xlink:role="http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsTables" xlink:type="extended" xlink:title="99930703 - Disclosure - Debt Obligations (Tables)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DebtInstrumentAxis" xlink:label="us-gaap_DebtInstrumentAxis" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" order="1" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_DebtInstrumentAxis" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DebtInstrumentNameDomain" xlink:label="us-gaap_DebtInstrumentNameDomain" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" order="1" xlink:from="us-gaap_DebtInstrumentAxis" xlink:to="us-gaap_DebtInstrumentNameDomain" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20240930.xsd#fix_SubordinateDebtAndPromissoryNoteMember" xlink:label="fix_SubordinateDebtAndPromissoryNoteMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="us-gaap_DebtInstrumentNameDomain" xlink:to="fix_SubordinateDebtAndPromissoryNoteMember" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" order="1" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" use="optional" xbrldt:contextElement="segment" xbrldt:closed="true" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfDebtTableTextBlock" xlink:label="us-gaap_ScheduleOfDebtTableTextBlock" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ScheduleOfDebtTableTextBlock" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfMaturitiesOfLongTermDebtTableTextBlock" xlink:label="us-gaap_ScheduleOfMaturitiesOfLongTermDebtTableTextBlock" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="3" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ScheduleOfMaturitiesOfLongTermDebtTableTextBlock" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20240930.xsd#fix_ScheduleOfAdditionalMarginsTableTextBlock" xlink:label="fix_ScheduleOfAdditionalMarginsTableTextBlock" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="4" xlink:from="us-gaap_StatementLineItems" xlink:to="fix_ScheduleOfAdditionalMarginsTableTextBlock" priority="1" use="optional" />
  </definitionLink>
  <definitionLink xlink:role="http://www.comfortsystemsusa.com/role/DisclosureRevenueFromContractsWithCustomersDisaggregationOfRevenueDetails" xlink:type="extended" xlink:title="99940302 - Disclosure - Revenue from Contracts with Customers - Disaggregation of Revenue (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DisaggregationOfRevenueTable" xlink:label="us-gaap_DisaggregationOfRevenueTable" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_ProductOrServiceAxis" xlink:label="srt_ProductOrServiceAxis" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" order="1" xlink:from="us-gaap_DisaggregationOfRevenueTable" xlink:to="srt_ProductOrServiceAxis" priority="2" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_ProductsAndServicesDomain" xlink:label="srt_ProductsAndServicesDomain" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" order="1" xlink:from="srt_ProductOrServiceAxis" xlink:to="srt_ProductsAndServicesDomain" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20240930.xsd#fix_MechanicalSegmentMember" xlink:label="fix_MechanicalSegmentMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="srt_ProductsAndServicesDomain" xlink:to="fix_MechanicalSegmentMember" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20240930.xsd#fix_ElectricalSegmentMember" xlink:label="fix_ElectricalSegmentMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="srt_ProductsAndServicesDomain" xlink:to="fix_ElectricalSegmentMember" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StatementBusinessSegmentsAxis" xlink:label="us-gaap_StatementBusinessSegmentsAxis" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" order="2" xlink:from="us-gaap_DisaggregationOfRevenueTable" xlink:to="us-gaap_StatementBusinessSegmentsAxis" priority="2" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SegmentDomain" xlink:label="us-gaap_SegmentDomain" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" order="1" xlink:from="us-gaap_StatementBusinessSegmentsAxis" xlink:to="us-gaap_SegmentDomain" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20240930.xsd#fix_NewConstructionMember" xlink:label="fix_NewConstructionMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="us-gaap_SegmentDomain" xlink:to="fix_NewConstructionMember" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20240930.xsd#fix_ExistingBuildingConstructionMember" xlink:label="fix_ExistingBuildingConstructionMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="us-gaap_SegmentDomain" xlink:to="fix_ExistingBuildingConstructionMember" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20240930.xsd#fix_ServiceProjectsMember" xlink:label="fix_ServiceProjectsMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="3" xlink:from="us-gaap_SegmentDomain" xlink:to="fix_ServiceProjectsMember" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20240930.xsd#fix_ServiceCallsMaintenanceAndMonitoringMember" xlink:label="fix_ServiceCallsMaintenanceAndMonitoringMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="4" xlink:from="us-gaap_SegmentDomain" xlink:to="fix_ServiceCallsMaintenanceAndMonitoringMember" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_MajorCustomersAxis" xlink:label="srt_MajorCustomersAxis" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" order="3" xlink:from="us-gaap_DisaggregationOfRevenueTable" xlink:to="srt_MajorCustomersAxis" priority="2" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_NameOfMajorCustomerDomain" xlink:label="srt_NameOfMajorCustomerDomain" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" order="1" xlink:from="srt_MajorCustomersAxis" xlink:to="srt_NameOfMajorCustomerDomain" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20240930.xsd#fix_TechnologyMember" xlink:label="fix_TechnologyMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="srt_NameOfMajorCustomerDomain" xlink:to="fix_TechnologyMember" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20240930.xsd#fix_ManufacturingCustomerMember" xlink:label="fix_ManufacturingCustomerMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="srt_NameOfMajorCustomerDomain" xlink:to="fix_ManufacturingCustomerMember" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20240930.xsd#fix_EducationMember" xlink:label="fix_EducationMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="3" xlink:from="srt_NameOfMajorCustomerDomain" xlink:to="fix_EducationMember" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20240930.xsd#fix_HealthcareSectorCustomerMember" xlink:label="fix_HealthcareSectorCustomerMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="4" xlink:from="srt_NameOfMajorCustomerDomain" xlink:to="fix_HealthcareSectorCustomerMember" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20240930.xsd#fix_OfficeBuildingCustomerMember" xlink:label="fix_OfficeBuildingCustomerMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="5" xlink:from="srt_NameOfMajorCustomerDomain" xlink:to="fix_OfficeBuildingCustomerMember" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20240930.xsd#fix_RetailRestaurantsAndEntertainmentMember" xlink:label="fix_RetailRestaurantsAndEntertainmentMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="6" xlink:from="srt_NameOfMajorCustomerDomain" xlink:to="fix_RetailRestaurantsAndEntertainmentMember" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20240930.xsd#fix_GovernmentCustomerMember" xlink:label="fix_GovernmentCustomerMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="7" xlink:from="srt_NameOfMajorCustomerDomain" xlink:to="fix_GovernmentCustomerMember" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20240930.xsd#fix_MultiFamilyAndResidentialMember" xlink:label="fix_MultiFamilyAndResidentialMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="8" xlink:from="srt_NameOfMajorCustomerDomain" xlink:to="fix_MultiFamilyAndResidentialMember" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OtherCustomerMember" xlink:label="us-gaap_OtherCustomerMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="9" xlink:from="srt_NameOfMajorCustomerDomain" xlink:to="us-gaap_OtherCustomerMember" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DisaggregationOfRevenueLineItems" xlink:label="us-gaap_DisaggregationOfRevenueLineItems" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" order="1" xlink:from="us-gaap_DisaggregationOfRevenueLineItems" xlink:to="us-gaap_DisaggregationOfRevenueTable" use="optional" xbrldt:contextElement="segment" xbrldt:closed="true" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_Revenues" xlink:label="us-gaap_Revenues" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="us-gaap_DisaggregationOfRevenueLineItems" xlink:to="us-gaap_Revenues" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20240930.xsd#fix_PercentageOfRevenueFromContractWithCustomer" xlink:label="fix_PercentageOfRevenueFromContractWithCustomer" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="3" xlink:from="us-gaap_DisaggregationOfRevenueLineItems" xlink:to="fix_PercentageOfRevenueFromContractWithCustomer" priority="1" use="optional" />
  </definitionLink>
  <definitionLink xlink:role="http://www.comfortsystemsusa.com/role/DisclosureRevenueFromContractsWithCustomersRemainingPerformanceObligationsDetails" xlink:type="extended" xlink:title="99940304 - Disclosure - Revenue from Contracts with Customers - Remaining Performance Obligations (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionTable" xlink:label="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionTable" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis" xlink:label="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" order="1" xlink:from="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionTable" xlink:to="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_RangeAxis" xlink:label="srt_RangeAxis" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" order="2" xlink:from="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionTable" xlink:to="srt_RangeAxis" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_RangeMember" xlink:label="srt_RangeMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" order="1" xlink:from="srt_RangeAxis" xlink:to="srt_RangeMember" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_MinimumMember" xlink:label="srt_MinimumMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="srt_RangeMember" xlink:to="srt_MinimumMember" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_MaximumMember" xlink:label="srt_MaximumMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="srt_RangeMember" xlink:to="srt_MaximumMember" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionLineItems" xlink:label="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionLineItems" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" order="1" xlink:from="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionLineItems" xlink:to="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionTable" use="optional" xbrldt:contextElement="segment" xbrldt:closed="true" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RevenueRemainingPerformanceObligation" xlink:label="us-gaap_RevenueRemainingPerformanceObligation" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionLineItems" xlink:to="us-gaap_RevenueRemainingPerformanceObligation" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RevenueRemainingPerformanceObligationPercentage" xlink:label="us-gaap_RevenueRemainingPerformanceObligationPercentage" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="3" xlink:from="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionLineItems" xlink:to="us-gaap_RevenueRemainingPerformanceObligationPercentage" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1" xlink:label="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="4" xlink:from="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionLineItems" xlink:to="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20240930.xsd#fix_RenewableServiceMaintenanceAgreementsTerm" xlink:label="fix_RenewableServiceMaintenanceAgreementsTerm" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="5" xlink:from="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionLineItems" xlink:to="fix_RenewableServiceMaintenanceAgreementsTerm" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RevenuePracticalExpedientRemainingPerformanceObligation" xlink:label="us-gaap_RevenuePracticalExpedientRemainingPerformanceObligation" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="6" xlink:from="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionLineItems" xlink:to="us-gaap_RevenuePracticalExpedientRemainingPerformanceObligation" priority="1" use="optional" />
  </definitionLink>
  <definitionLink xlink:role="http://www.comfortsystemsusa.com/role/DisclosureRevenueFromContractsWithCustomersRemainingPerformanceObligationsDefaultDetails" xlink:type="extended" xlink:title="40304 - Disclosure - Revenue from Contracts with Customers - Remaining Performance Obligations Default (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionTable" xlink:label="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionTable" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_RangeAxis" xlink:label="srt_RangeAxis" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" order="2" xlink:from="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionTable" xlink:to="srt_RangeAxis" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_RangeMember" xlink:label="srt_RangeMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" order="1" xlink:from="srt_RangeAxis" xlink:to="srt_RangeMember" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_MinimumMember" xlink:label="srt_MinimumMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="srt_RangeMember" xlink:to="srt_MinimumMember" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_MaximumMember" xlink:label="srt_MaximumMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="srt_RangeMember" xlink:to="srt_MaximumMember" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionLineItems" xlink:label="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionLineItems" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" order="1" xlink:from="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionLineItems" xlink:to="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionTable" use="optional" xbrldt:contextElement="segment" xbrldt:closed="true" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RevenueRemainingPerformanceObligation" xlink:label="us-gaap_RevenueRemainingPerformanceObligation" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionLineItems" xlink:to="us-gaap_RevenueRemainingPerformanceObligation" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RevenueRemainingPerformanceObligationPercentage" xlink:label="us-gaap_RevenueRemainingPerformanceObligationPercentage" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="3" xlink:from="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionLineItems" xlink:to="us-gaap_RevenueRemainingPerformanceObligationPercentage" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1" xlink:label="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="4" xlink:from="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionLineItems" xlink:to="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20240930.xsd#fix_RenewableServiceMaintenanceAgreementsTerm" xlink:label="fix_RenewableServiceMaintenanceAgreementsTerm" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="5" xlink:from="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionLineItems" xlink:to="fix_RenewableServiceMaintenanceAgreementsTerm" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RevenuePracticalExpedientRemainingPerformanceObligation" xlink:label="us-gaap_RevenuePracticalExpedientRemainingPerformanceObligation" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="6" xlink:from="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionLineItems" xlink:to="us-gaap_RevenuePracticalExpedientRemainingPerformanceObligation" priority="1" use="optional" />
  </definitionLink>
  <definitionLink xlink:role="http://www.comfortsystemsusa.com/role/DisclosureFairValueMeasurementsDetails" xlink:type="extended" xlink:title="99940401 - Disclosure - Fair Value Measurements (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable" xlink:label="us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FairValueByMeasurementFrequencyAxis" xlink:label="us-gaap_FairValueByMeasurementFrequencyAxis" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" order="1" xlink:from="us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable" xlink:to="us-gaap_FairValueByMeasurementFrequencyAxis" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FairValueMeasurementFrequencyDomain" xlink:label="us-gaap_FairValueMeasurementFrequencyDomain" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" order="1" xlink:from="us-gaap_FairValueByMeasurementFrequencyAxis" xlink:to="us-gaap_FairValueMeasurementFrequencyDomain" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FairValueMeasurementsRecurringMember" xlink:label="us-gaap_FairValueMeasurementsRecurringMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="us-gaap_FairValueMeasurementFrequencyDomain" xlink:to="us-gaap_FairValueMeasurementsRecurringMember" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FairValueByFairValueHierarchyLevelAxis" xlink:label="us-gaap_FairValueByFairValueHierarchyLevelAxis" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" order="2" xlink:from="us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable" xlink:to="us-gaap_FairValueByFairValueHierarchyLevelAxis" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FairValueMeasurementsFairValueHierarchyDomain" xlink:label="us-gaap_FairValueMeasurementsFairValueHierarchyDomain" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" order="1" xlink:from="us-gaap_FairValueByFairValueHierarchyLevelAxis" xlink:to="us-gaap_FairValueMeasurementsFairValueHierarchyDomain" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FairValueInputsLevel1Member" xlink:label="us-gaap_FairValueInputsLevel1Member" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="us-gaap_FairValueMeasurementsFairValueHierarchyDomain" xlink:to="us-gaap_FairValueInputsLevel1Member" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FairValueInputsLevel2Member" xlink:label="us-gaap_FairValueInputsLevel2Member" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="us-gaap_FairValueMeasurementsFairValueHierarchyDomain" xlink:to="us-gaap_FairValueInputsLevel2Member" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FairValueInputsLevel3Member" xlink:label="us-gaap_FairValueInputsLevel3Member" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="3" xlink:from="us-gaap_FairValueMeasurementsFairValueHierarchyDomain" xlink:to="us-gaap_FairValueInputsLevel3Member" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FairValueByLiabilityClassAxis" xlink:label="us-gaap_FairValueByLiabilityClassAxis" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" order="3" xlink:from="us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable" xlink:to="us-gaap_FairValueByLiabilityClassAxis" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationByLiabilityClassDomain" xlink:label="us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationByLiabilityClassDomain" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" order="1" xlink:from="us-gaap_FairValueByLiabilityClassAxis" xlink:to="us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationByLiabilityClassDomain" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20240930.xsd#fix_ContingentConsiderationObligationsMember" xlink:label="fix_ContingentConsiderationObligationsMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationByLiabilityClassDomain" xlink:to="fix_ContingentConsiderationObligationsMember" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FairValueByMeasurementBasisAxis" xlink:label="us-gaap_FairValueByMeasurementBasisAxis" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" order="4" xlink:from="us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable" xlink:to="us-gaap_FairValueByMeasurementBasisAxis" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PortionAtFairValueFairValueDisclosureMember" xlink:label="us-gaap_PortionAtFairValueFairValueDisclosureMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" order="1" xlink:from="us-gaap_FairValueByMeasurementBasisAxis" xlink:to="us-gaap_PortionAtFairValueFairValueDisclosureMember" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EstimateOfFairValueFairValueDisclosureMember" xlink:label="us-gaap_EstimateOfFairValueFairValueDisclosureMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="us-gaap_PortionAtFairValueFairValueDisclosureMember" xlink:to="us-gaap_EstimateOfFairValueFairValueDisclosureMember" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_RangeAxis" xlink:label="srt_RangeAxis" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" order="5" xlink:from="us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable" xlink:to="srt_RangeAxis" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_RangeMember" xlink:label="srt_RangeMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" order="1" xlink:from="srt_RangeAxis" xlink:to="srt_RangeMember" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_MinimumMember" xlink:label="srt_MinimumMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="srt_RangeMember" xlink:to="srt_MinimumMember" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_MaximumMember" xlink:label="srt_MaximumMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="srt_RangeMember" xlink:to="srt_MaximumMember" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems" xlink:label="us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" order="1" xlink:from="us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems" xlink:to="us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable" use="optional" xbrldt:contextElement="segment" xbrldt:closed="true" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CashAndCashEquivalentsFairValueDisclosure" xlink:label="us-gaap_CashAndCashEquivalentsFairValueDisclosure" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems" xlink:to="us-gaap_CashAndCashEquivalentsFairValueDisclosure" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CashSurrenderValueFairValueDisclosure" xlink:label="us-gaap_CashSurrenderValueFairValueDisclosure" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="3" xlink:from="us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems" xlink:to="us-gaap_CashSurrenderValueFairValueDisclosure" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue" xlink:label="us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="4" xlink:from="us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems" xlink:to="us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20240930.xsd#fix_LifeInsuranceContractsNumberOfEmployeesCovered" xlink:label="fix_LifeInsuranceContractsNumberOfEmployeesCovered" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="5" xlink:from="us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems" xlink:to="fix_LifeInsuranceContractsNumberOfEmployeesCovered" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20240930.xsd#fix_LifeInsuranceContractsFaceAmount" xlink:label="fix_LifeInsuranceContractsFaceAmount" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="6" xlink:from="us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems" xlink:to="fix_LifeInsuranceContractsFaceAmount" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20240930.xsd#fix_WeightedAverageCostOfCapital" xlink:label="fix_WeightedAverageCostOfCapital" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="7" xlink:from="us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems" xlink:to="fix_WeightedAverageCostOfCapital" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationCalculationRollForward" xlink:label="us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationCalculationRollForward" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="8" xlink:from="us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems" xlink:to="us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationCalculationRollForward" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityIssues" xlink:label="us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityIssues" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationCalculationRollForward" xlink:to="us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityIssues" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilitySettlements" xlink:label="us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilitySettlements" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationCalculationRollForward" xlink:to="us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilitySettlements" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityGainLossIncludedInEarnings" xlink:label="us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityGainLossIncludedInEarnings" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="3" xlink:from="us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationCalculationRollForward" xlink:to="us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityGainLossIncludedInEarnings" priority="1" use="optional" />
  </definitionLink>
  <definitionLink xlink:role="http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsDetails" xlink:type="extended" xlink:title="99940501 - Disclosure - Acquisitions (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable" xlink:label="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessAcquisitionAxis" xlink:label="us-gaap_BusinessAcquisitionAxis" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" order="1" xlink:from="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable" xlink:to="us-gaap_BusinessAcquisitionAxis" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessAcquisitionAcquireeDomain" xlink:label="us-gaap_BusinessAcquisitionAcquireeDomain" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" order="1" xlink:from="us-gaap_BusinessAcquisitionAxis" xlink:to="us-gaap_BusinessAcquisitionAcquireeDomain" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20240930.xsd#fix_SummitIndustrialConstructionLlcMember" xlink:label="fix_SummitIndustrialConstructionLlcMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="fix_SummitIndustrialConstructionLlcMember" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20240930.xsd#fix_JSMechanicalContractorsIncMember" xlink:label="fix_JSMechanicalContractorsIncMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="fix_JSMechanicalContractorsIncMember" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessAcquisitionLineItems" xlink:label="us-gaap_BusinessAcquisitionLineItems" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" order="1" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable" use="optional" xbrldt:contextElement="segment" xbrldt:closed="true" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessCombinationConsiderationTransferredAbstract" xlink:label="us-gaap_BusinessCombinationConsiderationTransferredAbstract" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="us-gaap_BusinessCombinationConsiderationTransferredAbstract" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PaymentsToAcquireBusinessesGross" xlink:label="us-gaap_PaymentsToAcquireBusinessesGross" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="us-gaap_BusinessCombinationConsiderationTransferredAbstract" xlink:to="us-gaap_PaymentsToAcquireBusinessesGross" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20240930.xsd#fix_BusinessCombinationConsiderationTransferredWorkingCapitalAdjustment" xlink:label="fix_BusinessCombinationConsiderationTransferredWorkingCapitalAdjustment" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="us-gaap_BusinessCombinationConsiderationTransferredAbstract" xlink:to="fix_BusinessCombinationConsiderationTransferredWorkingCapitalAdjustment" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessCombinationConsiderationTransferredLiabilitiesIncurred" xlink:label="us-gaap_BusinessCombinationConsiderationTransferredLiabilitiesIncurred" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="3" xlink:from="us-gaap_BusinessCombinationConsiderationTransferredAbstract" xlink:to="us-gaap_BusinessCombinationConsiderationTransferredLiabilitiesIncurred" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessCombinationContingentConsiderationLiability" xlink:label="us-gaap_BusinessCombinationContingentConsiderationLiability" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="4" xlink:from="us-gaap_BusinessCombinationConsiderationTransferredAbstract" xlink:to="us-gaap_BusinessCombinationContingentConsiderationLiability" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="5" xlink:from="us-gaap_BusinessCombinationConsiderationTransferredAbstract" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_Revenues" xlink:label="us-gaap_Revenues" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="6" xlink:from="us-gaap_BusinessCombinationConsiderationTransferredAbstract" xlink:to="us-gaap_Revenues" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNetAbstract" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNetAbstract" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="3" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNetAbstract" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNetAbstract" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNetAbstract" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedInventory" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedInventory" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="3" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNetAbstract" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedInventory" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsPrepaidExpenseAndOtherAssets" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsPrepaidExpenseAndOtherAssets" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="4" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNetAbstract" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsPrepaidExpenseAndOtherAssets" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20240930.xsd#fix_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsCostsInExcessOfBillings" xlink:label="fix_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsCostsInExcessOfBillings" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="5" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNetAbstract" xlink:to="fix_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsCostsInExcessOfBillings" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="6" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNetAbstract" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20240930.xsd#fix_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseRightOfUseAssets" xlink:label="fix_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseRightOfUseAssets" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="7" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNetAbstract" xlink:to="fix_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseRightOfUseAssets" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_Goodwill" xlink:label="us-gaap_Goodwill" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="8" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNetAbstract" xlink:to="us-gaap_Goodwill" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="9" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNetAbstract" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOtherNoncurrentAssets" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOtherNoncurrentAssets" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="10" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNetAbstract" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOtherNoncurrentAssets" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="11" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNetAbstract" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20240930.xsd#fix_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesBillingsInExcessOfCostsAndEstimatedEarnings" xlink:label="fix_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesBillingsInExcessOfCostsAndEstimatedEarnings" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="12" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNetAbstract" xlink:to="fix_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesBillingsInExcessOfCostsAndEstimatedEarnings" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20240930.xsd#fix_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesOperatingLeaseLiabilities" xlink:label="fix_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesOperatingLeaseLiabilities" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="13" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNetAbstract" xlink:to="fix_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesOperatingLeaseLiabilities" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesOther" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesOther" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="14" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNetAbstract" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesOther" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNoncurrentLiabilitiesLongTermDebt" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNoncurrentLiabilitiesLongTermDebt" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="15" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNetAbstract" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNoncurrentLiabilitiesLongTermDebt" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20240930.xsd#fix_BusinessCombinationRecognizedIdentifiableAssetAcquiredAndLiabilityAssumedOperatingLeaseObligation" xlink:label="fix_BusinessCombinationRecognizedIdentifiableAssetAcquiredAndLiabilityAssumedOperatingLeaseObligation" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="16" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNetAbstract" xlink:to="fix_BusinessCombinationRecognizedIdentifiableAssetAcquiredAndLiabilityAssumedOperatingLeaseObligation" priority="1" use="optional" />
  </definitionLink>
  <definitionLink xlink:role="http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsAcquiredIntangibleAssetsDetails" xlink:type="extended" xlink:title="99940502 - Disclosure - Acquisitions - Acquired Intangible Assets (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FiniteLivedIntangibleAssetsAcquiredAsPartOfBusinessCombinationTable" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAcquiredAsPartOfBusinessCombinationTable" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessAcquisitionAxis" xlink:label="us-gaap_BusinessAcquisitionAxis" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" order="1" xlink:from="us-gaap_FiniteLivedIntangibleAssetsAcquiredAsPartOfBusinessCombinationTable" xlink:to="us-gaap_BusinessAcquisitionAxis" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessAcquisitionAcquireeDomain" xlink:label="us-gaap_BusinessAcquisitionAcquireeDomain" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" order="1" xlink:from="us-gaap_BusinessAcquisitionAxis" xlink:to="us-gaap_BusinessAcquisitionAcquireeDomain" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20240930.xsd#fix_SummitIndustrialConstructionLlcMember" xlink:label="fix_SummitIndustrialConstructionLlcMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="fix_SummitIndustrialConstructionLlcMember" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20240930.xsd#fix_JSMechanicalContractorsIncMember" xlink:label="fix_JSMechanicalContractorsIncMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="fix_JSMechanicalContractorsIncMember" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:label="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" order="2" xlink:from="us-gaap_FiniteLivedIntangibleAssetsAcquiredAsPartOfBusinessCombinationTable" xlink:to="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:label="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" order="1" xlink:from="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:to="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OrderOrProductionBacklogMember" xlink:label="us-gaap_OrderOrProductionBacklogMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:to="us-gaap_OrderOrProductionBacklogMember" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_TradeNamesMember" xlink:label="us-gaap_TradeNamesMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:to="us-gaap_TradeNamesMember" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CustomerRelationshipsMember" xlink:label="us-gaap_CustomerRelationshipsMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="3" xlink:from="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:to="us-gaap_CustomerRelationshipsMember" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FairValueByLiabilityClassAxis" xlink:label="us-gaap_FairValueByLiabilityClassAxis" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" order="3" xlink:from="us-gaap_FiniteLivedIntangibleAssetsAcquiredAsPartOfBusinessCombinationTable" xlink:to="us-gaap_FairValueByLiabilityClassAxis" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationByLiabilityClassDomain" xlink:label="us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationByLiabilityClassDomain" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" order="1" xlink:from="us-gaap_FairValueByLiabilityClassAxis" xlink:to="us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationByLiabilityClassDomain" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20240930.xsd#fix_ContingentConsiderationObligationsMember" xlink:label="fix_ContingentConsiderationObligationsMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationByLiabilityClassDomain" xlink:to="fix_ContingentConsiderationObligationsMember" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_RangeAxis" xlink:label="srt_RangeAxis" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" order="4" xlink:from="us-gaap_FiniteLivedIntangibleAssetsAcquiredAsPartOfBusinessCombinationTable" xlink:to="srt_RangeAxis" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_RangeMember" xlink:label="srt_RangeMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" order="1" xlink:from="srt_RangeAxis" xlink:to="srt_RangeMember" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_MinimumMember" xlink:label="srt_MinimumMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="srt_RangeMember" xlink:to="srt_MinimumMember" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_MaximumMember" xlink:label="srt_MaximumMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="srt_RangeMember" xlink:to="srt_MaximumMember" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_MeasurementInputTypeAxis" xlink:label="us-gaap_MeasurementInputTypeAxis" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" order="5" xlink:from="us-gaap_FiniteLivedIntangibleAssetsAcquiredAsPartOfBusinessCombinationTable" xlink:to="us-gaap_MeasurementInputTypeAxis" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_MeasurementInputTypeDomain" xlink:label="us-gaap_MeasurementInputTypeDomain" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" order="1" xlink:from="us-gaap_MeasurementInputTypeAxis" xlink:to="us-gaap_MeasurementInputTypeDomain" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_MeasurementInputInceptionDiscountRateMember" xlink:label="us-gaap_MeasurementInputInceptionDiscountRateMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="us-gaap_MeasurementInputTypeDomain" xlink:to="us-gaap_MeasurementInputInceptionDiscountRateMember" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AcquiredFiniteLivedIntangibleAssetsLineItems" xlink:label="us-gaap_AcquiredFiniteLivedIntangibleAssetsLineItems" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" order="1" xlink:from="us-gaap_AcquiredFiniteLivedIntangibleAssetsLineItems" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAcquiredAsPartOfBusinessCombinationTable" use="optional" xbrldt:contextElement="segment" xbrldt:closed="true" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife" xlink:label="us-gaap_AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="us-gaap_AcquiredFiniteLivedIntangibleAssetsLineItems" xlink:to="us-gaap_AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="3" xlink:from="us-gaap_AcquiredFiniteLivedIntangibleAssetsLineItems" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20240930.xsd#fix_BusinessCombinationNumberOfEarningsMilestones" xlink:label="fix_BusinessCombinationNumberOfEarningsMilestones" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="4" xlink:from="us-gaap_AcquiredFiniteLivedIntangibleAssetsLineItems" xlink:to="fix_BusinessCombinationNumberOfEarningsMilestones" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20240930.xsd#fix_BusinessCombinationTermOfEarningsMilestones" xlink:label="fix_BusinessCombinationTermOfEarningsMilestones" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="5" xlink:from="us-gaap_AcquiredFiniteLivedIntangibleAssetsLineItems" xlink:to="fix_BusinessCombinationTermOfEarningsMilestones" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueHigh" xlink:label="us-gaap_BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueHigh" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="6" xlink:from="us-gaap_AcquiredFiniteLivedIntangibleAssetsLineItems" xlink:to="us-gaap_BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueHigh" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueLow" xlink:label="us-gaap_BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueLow" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="7" xlink:from="us-gaap_AcquiredFiniteLivedIntangibleAssetsLineItems" xlink:to="us-gaap_BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueLow" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20240930.xsd#fix_CashFlowDiscountRate" xlink:label="fix_CashFlowDiscountRate" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="8" xlink:from="us-gaap_AcquiredFiniteLivedIntangibleAssetsLineItems" xlink:to="fix_CashFlowDiscountRate" priority="1" use="optional" />
  </definitionLink>
  <definitionLink xlink:role="http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsOtherAcquisitionsDetails" xlink:type="extended" xlink:title="99940503 - Disclosure - Acquisitions - Other Acquisitions (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable" xlink:label="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessAcquisitionAxis" xlink:label="us-gaap_BusinessAcquisitionAxis" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" order="1" xlink:from="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable" xlink:to="us-gaap_BusinessAcquisitionAxis" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessAcquisitionAcquireeDomain" xlink:label="us-gaap_BusinessAcquisitionAcquireeDomain" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" order="1" xlink:from="us-gaap_BusinessAcquisitionAxis" xlink:to="us-gaap_BusinessAcquisitionAcquireeDomain" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20240930.xsd#fix_DeccoIncMember" xlink:label="fix_DeccoIncMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="fix_DeccoIncMember" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20240930.xsd#fix_EldecoincMember" xlink:label="fix_EldecoincMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="fix_EldecoincMember" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20240930.xsd#fix_MechanicalContractorNorthCarolinaMember" xlink:label="fix_MechanicalContractorNorthCarolinaMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="3" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="fix_MechanicalContractorNorthCarolinaMember" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessAcquisitionLineItems" xlink:label="us-gaap_BusinessAcquisitionLineItems" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" order="1" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable" use="optional" xbrldt:contextElement="segment" xbrldt:closed="true" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessCombinationConsiderationTransferred1" xlink:label="us-gaap_BusinessCombinationConsiderationTransferred1" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="us-gaap_BusinessCombinationConsiderationTransferred1" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PaymentsToAcquireBusinessesGross" xlink:label="us-gaap_PaymentsToAcquireBusinessesGross" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="3" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="us-gaap_PaymentsToAcquireBusinessesGross" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessCombinationConsiderationTransferredLiabilitiesIncurred" xlink:label="us-gaap_BusinessCombinationConsiderationTransferredLiabilitiesIncurred" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="4" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="us-gaap_BusinessCombinationConsiderationTransferredLiabilitiesIncurred" priority="1" use="optional" />
  </definitionLink>
  <definitionLink xlink:role="http://www.comfortsystemsusa.com/role/DisclosureGoodwillAndIdentifiableIntangibleAssetsNetChangesInCarryingAmountOfGoodwillDetails" xlink:type="extended" xlink:title="99940601 - Disclosure - Goodwill and Identifiable Intangible Assets, Net - Changes in Carrying Amount of Goodwill (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfGoodwillTable" xlink:label="us-gaap_ScheduleOfGoodwillTable" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StatementBusinessSegmentsAxis" xlink:label="us-gaap_StatementBusinessSegmentsAxis" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" order="1" xlink:from="us-gaap_ScheduleOfGoodwillTable" xlink:to="us-gaap_StatementBusinessSegmentsAxis" priority="2" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SegmentDomain" xlink:label="us-gaap_SegmentDomain" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" order="1" xlink:from="us-gaap_StatementBusinessSegmentsAxis" xlink:to="us-gaap_SegmentDomain" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20240930.xsd#fix_MechanicalSegmentMember" xlink:label="fix_MechanicalSegmentMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="us-gaap_SegmentDomain" xlink:to="fix_MechanicalSegmentMember" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20240930.xsd#fix_ElectricalSegmentMember" xlink:label="fix_ElectricalSegmentMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="us-gaap_SegmentDomain" xlink:to="fix_ElectricalSegmentMember" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_GoodwillLineItems" xlink:label="us-gaap_GoodwillLineItems" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" order="1" xlink:from="us-gaap_GoodwillLineItems" xlink:to="us-gaap_ScheduleOfGoodwillTable" use="optional" xbrldt:contextElement="segment" xbrldt:closed="true" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_GoodwillRollForward" xlink:label="us-gaap_GoodwillRollForward" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="us-gaap_GoodwillLineItems" xlink:to="us-gaap_GoodwillRollForward" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_Goodwill" xlink:label="us-gaap_Goodwill" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="us-gaap_GoodwillRollForward" xlink:to="us-gaap_Goodwill" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_GoodwillAcquiredDuringPeriod" xlink:label="us-gaap_GoodwillAcquiredDuringPeriod" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="us-gaap_GoodwillRollForward" xlink:to="us-gaap_GoodwillAcquiredDuringPeriod" priority="1" use="optional" />
  </definitionLink>
  <definitionLink xlink:role="http://www.comfortsystemsusa.com/role/DisclosureGoodwillAndIdentifiableIntangibleAssetsNetIdentifiableIntangibleAssetsNetDetails" xlink:type="extended" xlink:title="99940602 - Disclosure - Goodwill and Identifiable Intangible Assets, Net - Identifiable Intangible Assets, Net (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable" xlink:label="us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:label="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" order="1" xlink:from="us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable" xlink:to="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:label="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" order="1" xlink:from="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:to="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CustomerRelationshipsMember" xlink:label="us-gaap_CustomerRelationshipsMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:to="us-gaap_CustomerRelationshipsMember" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OrderOrProductionBacklogMember" xlink:label="us-gaap_OrderOrProductionBacklogMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:to="us-gaap_OrderOrProductionBacklogMember" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_TradeNamesMember" xlink:label="us-gaap_TradeNamesMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="3" xlink:from="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:to="us-gaap_TradeNamesMember" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FiniteLivedIntangibleAssetsLineItems" xlink:label="us-gaap_FiniteLivedIntangibleAssetsLineItems" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" order="1" xlink:from="us-gaap_FiniteLivedIntangibleAssetsLineItems" xlink:to="us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable" use="optional" xbrldt:contextElement="segment" xbrldt:closed="true" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife" xlink:label="us-gaap_AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="us-gaap_FiniteLivedIntangibleAssetsLineItems" xlink:to="us-gaap_AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FiniteLivedIntangibleAssetsFutureAmortizationExpenseAbstract" xlink:label="us-gaap_FiniteLivedIntangibleAssetsFutureAmortizationExpenseAbstract" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="3" xlink:from="us-gaap_FiniteLivedIntangibleAssetsLineItems" xlink:to="us-gaap_FiniteLivedIntangibleAssetsFutureAmortizationExpenseAbstract" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseRemainderOfFiscalYear" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseRemainderOfFiscalYear" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="us-gaap_FiniteLivedIntangibleAssetsFutureAmortizationExpenseAbstract" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseRemainderOfFiscalYear" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="us-gaap_FiniteLivedIntangibleAssetsFutureAmortizationExpenseAbstract" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="3" xlink:from="us-gaap_FiniteLivedIntangibleAssetsFutureAmortizationExpenseAbstract" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="4" xlink:from="us-gaap_FiniteLivedIntangibleAssetsFutureAmortizationExpenseAbstract" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="5" xlink:from="us-gaap_FiniteLivedIntangibleAssetsFutureAmortizationExpenseAbstract" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20240930.xsd#fix_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFour" xlink:label="fix_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFour" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="6" xlink:from="us-gaap_FiniteLivedIntangibleAssetsFutureAmortizationExpenseAbstract" xlink:to="fix_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFour" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FiniteLivedIntangibleAssetsNet" xlink:label="us-gaap_FiniteLivedIntangibleAssetsNet" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="7" xlink:from="us-gaap_FiniteLivedIntangibleAssetsFutureAmortizationExpenseAbstract" xlink:to="us-gaap_FiniteLivedIntangibleAssetsNet" priority="1" use="optional" />
  </definitionLink>
  <definitionLink xlink:role="http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsDetails" xlink:type="extended" xlink:title="99940701 - Disclosure - Debt Obligations (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DebtInstrumentTable" xlink:label="us-gaap_DebtInstrumentTable" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DebtInstrumentAxis" xlink:label="us-gaap_DebtInstrumentAxis" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" order="1" xlink:from="us-gaap_DebtInstrumentTable" xlink:to="us-gaap_DebtInstrumentAxis" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DebtInstrumentNameDomain" xlink:label="us-gaap_DebtInstrumentNameDomain" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" order="1" xlink:from="us-gaap_DebtInstrumentAxis" xlink:to="us-gaap_DebtInstrumentNameDomain" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20240930.xsd#fix_SubordinateDebtAndPromissoryNoteMember" xlink:label="fix_SubordinateDebtAndPromissoryNoteMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="us-gaap_DebtInstrumentNameDomain" xlink:to="fix_SubordinateDebtAndPromissoryNoteMember" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DebtInstrumentLineItems" xlink:label="us-gaap_DebtInstrumentLineItems" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" order="1" xlink:from="us-gaap_DebtInstrumentLineItems" xlink:to="us-gaap_DebtInstrumentTable" use="optional" xbrldt:contextElement="segment" xbrldt:closed="true" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNoncurrentLiabilitiesLongTermDebt" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNoncurrentLiabilitiesLongTermDebt" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="us-gaap_DebtInstrumentLineItems" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNoncurrentLiabilitiesLongTermDebt" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NotesAndLoansPayable" xlink:label="us-gaap_NotesAndLoansPayable" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="3" xlink:from="us-gaap_DebtInstrumentLineItems" xlink:to="us-gaap_NotesAndLoansPayable" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20240930.xsd#fix_OtherDebtLongTermAndShortTermCombinedAmount" xlink:label="fix_OtherDebtLongTermAndShortTermCombinedAmount" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="4" xlink:from="us-gaap_DebtInstrumentLineItems" xlink:to="fix_OtherDebtLongTermAndShortTermCombinedAmount" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LongTermDebtAndCapitalLeaseObligationsIncludingCurrentMaturities" xlink:label="us-gaap_LongTermDebtAndCapitalLeaseObligationsIncludingCurrentMaturities" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="5" xlink:from="us-gaap_DebtInstrumentLineItems" xlink:to="us-gaap_LongTermDebtAndCapitalLeaseObligationsIncludingCurrentMaturities" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LongTermDebtAndCapitalLeaseObligationsCurrent" xlink:label="us-gaap_LongTermDebtAndCapitalLeaseObligationsCurrent" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="6" xlink:from="us-gaap_DebtInstrumentLineItems" xlink:to="us-gaap_LongTermDebtAndCapitalLeaseObligationsCurrent" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LongTermDebtAndCapitalLeaseObligations" xlink:label="us-gaap_LongTermDebtAndCapitalLeaseObligations" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="7" xlink:from="us-gaap_DebtInstrumentLineItems" xlink:to="us-gaap_LongTermDebtAndCapitalLeaseObligations" priority="1" use="optional" />
  </definitionLink>
  <definitionLink xlink:role="http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsOtherDetails" xlink:type="extended" xlink:title="99940702 - Disclosure - Debt Obligations - Other (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DebtInstrumentTable" xlink:label="us-gaap_DebtInstrumentTable" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CreditFacilityAxis" xlink:label="us-gaap_CreditFacilityAxis" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" order="1" xlink:from="us-gaap_DebtInstrumentTable" xlink:to="us-gaap_CreditFacilityAxis" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CreditFacilityDomain" xlink:label="us-gaap_CreditFacilityDomain" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" order="1" xlink:from="us-gaap_CreditFacilityAxis" xlink:to="us-gaap_CreditFacilityDomain" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RevolvingCreditFacilityMember" xlink:label="us-gaap_RevolvingCreditFacilityMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="us-gaap_CreditFacilityDomain" xlink:to="us-gaap_RevolvingCreditFacilityMember" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DebtInstrumentAxis" xlink:label="us-gaap_DebtInstrumentAxis" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" order="2" xlink:from="us-gaap_DebtInstrumentTable" xlink:to="us-gaap_DebtInstrumentAxis" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DebtInstrumentNameDomain" xlink:label="us-gaap_DebtInstrumentNameDomain" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" order="1" xlink:from="us-gaap_DebtInstrumentAxis" xlink:to="us-gaap_DebtInstrumentNameDomain" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20240930.xsd#fix_SeniorRevolvingCreditFacilityMember" xlink:label="fix_SeniorRevolvingCreditFacilityMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="us-gaap_DebtInstrumentNameDomain" xlink:to="fix_SeniorRevolvingCreditFacilityMember" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20240930.xsd#fix_SubordinateDebtAndPromissoryNoteMember" xlink:label="fix_SubordinateDebtAndPromissoryNoteMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="us-gaap_DebtInstrumentNameDomain" xlink:to="fix_SubordinateDebtAndPromissoryNoteMember" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LetterOfCreditMember" xlink:label="us-gaap_LetterOfCreditMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="3" xlink:from="us-gaap_DebtInstrumentNameDomain" xlink:to="us-gaap_LetterOfCreditMember" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_VariableRateAxis" xlink:label="us-gaap_VariableRateAxis" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" order="3" xlink:from="us-gaap_DebtInstrumentTable" xlink:to="us-gaap_VariableRateAxis" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_VariableRateDomain" xlink:label="us-gaap_VariableRateDomain" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" order="1" xlink:from="us-gaap_VariableRateAxis" xlink:to="us-gaap_VariableRateDomain" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SecuredOvernightFinancingRateSofrMember" xlink:label="us-gaap_SecuredOvernightFinancingRateSofrMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="us-gaap_VariableRateDomain" xlink:to="us-gaap_SecuredOvernightFinancingRateSofrMember" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BaseRateMember" xlink:label="us-gaap_BaseRateMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="us-gaap_VariableRateDomain" xlink:to="us-gaap_BaseRateMember" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_RangeAxis" xlink:label="srt_RangeAxis" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" order="4" xlink:from="us-gaap_DebtInstrumentTable" xlink:to="srt_RangeAxis" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_RangeMember" xlink:label="srt_RangeMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" order="1" xlink:from="srt_RangeAxis" xlink:to="srt_RangeMember" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_MinimumMember" xlink:label="srt_MinimumMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="srt_RangeMember" xlink:to="srt_MinimumMember" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_MaximumMember" xlink:label="srt_MaximumMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="srt_RangeMember" xlink:to="srt_MaximumMember" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20240930.xsd#fix_DebtCovenantRatioAxis" xlink:label="fix_DebtCovenantRatioAxis" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" order="5" xlink:from="us-gaap_DebtInstrumentTable" xlink:to="fix_DebtCovenantRatioAxis" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20240930.xsd#fix_DebtCovenantRatioDomain" xlink:label="fix_DebtCovenantRatioDomain" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" order="1" xlink:from="fix_DebtCovenantRatioAxis" xlink:to="fix_DebtCovenantRatioDomain" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20240930.xsd#fix_DebtCovenantRatioRangeOneMember" xlink:label="fix_DebtCovenantRatioRangeOneMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="fix_DebtCovenantRatioDomain" xlink:to="fix_DebtCovenantRatioRangeOneMember" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20240930.xsd#fix_DebtCovenantRatioRangeTwoMember" xlink:label="fix_DebtCovenantRatioRangeTwoMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="fix_DebtCovenantRatioDomain" xlink:to="fix_DebtCovenantRatioRangeTwoMember" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20240930.xsd#fix_DebtCovenantRatioRangeThreeMember" xlink:label="fix_DebtCovenantRatioRangeThreeMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="3" xlink:from="fix_DebtCovenantRatioDomain" xlink:to="fix_DebtCovenantRatioRangeThreeMember" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20240930.xsd#fix_DebtCovenantRatioRangeFourMember" xlink:label="fix_DebtCovenantRatioRangeFourMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="4" xlink:from="fix_DebtCovenantRatioDomain" xlink:to="fix_DebtCovenantRatioRangeFourMember" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20240930.xsd#fix_DebtCovenantRatioRangeFiveMember" xlink:label="fix_DebtCovenantRatioRangeFiveMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="5" xlink:from="fix_DebtCovenantRatioDomain" xlink:to="fix_DebtCovenantRatioRangeFiveMember" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DebtInstrumentLineItems" xlink:label="us-gaap_DebtInstrumentLineItems" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" order="1" xlink:from="us-gaap_DebtInstrumentLineItems" xlink:to="us-gaap_DebtInstrumentTable" use="optional" xbrldt:contextElement="segment" xbrldt:closed="true" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LineOfCreditFacilityMaximumBorrowingCapacity" xlink:label="us-gaap_LineOfCreditFacilityMaximumBorrowingCapacity" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="us-gaap_DebtInstrumentLineItems" xlink:to="us-gaap_LineOfCreditFacilityMaximumBorrowingCapacity" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20240930.xsd#fix_LineOfCreditBorrowingCapacityAccordionOption" xlink:label="fix_LineOfCreditBorrowingCapacityAccordionOption" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="3" xlink:from="us-gaap_DebtInstrumentLineItems" xlink:to="fix_LineOfCreditBorrowingCapacityAccordionOption" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LineOfCredit" xlink:label="us-gaap_LineOfCredit" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="4" xlink:from="us-gaap_DebtInstrumentLineItems" xlink:to="us-gaap_LineOfCredit" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LettersOfCreditOutstandingAmount" xlink:label="us-gaap_LettersOfCreditOutstandingAmount" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="5" xlink:from="us-gaap_DebtInstrumentLineItems" xlink:to="us-gaap_LettersOfCreditOutstandingAmount" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LineOfCreditFacilityRemainingBorrowingCapacity" xlink:label="us-gaap_LineOfCreditFacilityRemainingBorrowingCapacity" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="6" xlink:from="us-gaap_DebtInstrumentLineItems" xlink:to="us-gaap_LineOfCreditFacilityRemainingBorrowingCapacity" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DebtInstrumentInterestRateEffectivePercentageAbstract" xlink:label="us-gaap_DebtInstrumentInterestRateEffectivePercentageAbstract" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="7" xlink:from="us-gaap_DebtInstrumentLineItems" xlink:to="us-gaap_DebtInstrumentInterestRateEffectivePercentageAbstract" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DebtInstrumentBasisSpreadOnVariableRate1" xlink:label="us-gaap_DebtInstrumentBasisSpreadOnVariableRate1" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="us-gaap_DebtInstrumentInterestRateEffectivePercentageAbstract" xlink:to="us-gaap_DebtInstrumentBasisSpreadOnVariableRate1" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LineOfCreditFacilityUnusedCapacityCommitmentFeePercentage" xlink:label="us-gaap_LineOfCreditFacilityUnusedCapacityCommitmentFeePercentage" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="8" xlink:from="us-gaap_DebtInstrumentLineItems" xlink:to="us-gaap_LineOfCreditFacilityUnusedCapacityCommitmentFeePercentage" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LongTermDebtOtherDisclosuresAbstract" xlink:label="us-gaap_LongTermDebtOtherDisclosuresAbstract" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="9" xlink:from="us-gaap_DebtInstrumentLineItems" xlink:to="us-gaap_LongTermDebtOtherDisclosuresAbstract" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20240930.xsd#fix_CumulativeNumberOfCompaniesAcquiredOutstandingNotesToFormerOwners" xlink:label="fix_CumulativeNumberOfCompaniesAcquiredOutstandingNotesToFormerOwners" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="us-gaap_LongTermDebtOtherDisclosuresAbstract" xlink:to="fix_CumulativeNumberOfCompaniesAcquiredOutstandingNotesToFormerOwners" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NotesAndLoansPayable" xlink:label="us-gaap_NotesAndLoansPayable" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="us-gaap_LongTermDebtOtherDisclosuresAbstract" xlink:to="us-gaap_NotesAndLoansPayable" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNoncurrentLiabilitiesLongTermDebt" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNoncurrentLiabilitiesLongTermDebt" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="10" xlink:from="us-gaap_DebtInstrumentLineItems" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNoncurrentLiabilitiesLongTermDebt" priority="1" use="optional" />
  </definitionLink>
  <definitionLink xlink:role="http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsNotesToFormerOwnersDetails" xlink:type="extended" xlink:title="99940703 - Disclosure - Debt Obligations - Notes to Former Owners (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DebtInstrumentTable" xlink:label="us-gaap_DebtInstrumentTable" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DebtInstrumentAxis" xlink:label="us-gaap_DebtInstrumentAxis" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" order="1" xlink:from="us-gaap_DebtInstrumentTable" xlink:to="us-gaap_DebtInstrumentAxis" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DebtInstrumentNameDomain" xlink:label="us-gaap_DebtInstrumentNameDomain" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" order="1" xlink:from="us-gaap_DebtInstrumentAxis" xlink:to="us-gaap_DebtInstrumentNameDomain" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20240930.xsd#fix_SubordinateDebtAndPromissoryNoteMember" xlink:label="fix_SubordinateDebtAndPromissoryNoteMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="us-gaap_DebtInstrumentNameDomain" xlink:to="fix_SubordinateDebtAndPromissoryNoteMember" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20240930.xsd#fix_DebtMaturityDateAxis" xlink:label="fix_DebtMaturityDateAxis" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" order="2" xlink:from="us-gaap_DebtInstrumentTable" xlink:to="fix_DebtMaturityDateAxis" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20240930.xsd#fix_DebtMaturityDateDomain" xlink:label="fix_DebtMaturityDateDomain" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" order="1" xlink:from="fix_DebtMaturityDateAxis" xlink:to="fix_DebtMaturityDateDomain" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20240930.xsd#fix_MaturityYearTwoMember" xlink:label="fix_MaturityYearTwoMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="fix_DebtMaturityDateDomain" xlink:to="fix_MaturityYearTwoMember" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20240930.xsd#fix_MaturityYearThreeMember" xlink:label="fix_MaturityYearThreeMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="fix_DebtMaturityDateDomain" xlink:to="fix_MaturityYearThreeMember" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20240930.xsd#fix_MaturityYearFourMember" xlink:label="fix_MaturityYearFourMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="3" xlink:from="fix_DebtMaturityDateDomain" xlink:to="fix_MaturityYearFourMember" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20240930.xsd#fix_MaturityYearFiveMember" xlink:label="fix_MaturityYearFiveMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="4" xlink:from="fix_DebtMaturityDateDomain" xlink:to="fix_MaturityYearFiveMember" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_RangeAxis" xlink:label="srt_RangeAxis" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" order="3" xlink:from="us-gaap_DebtInstrumentTable" xlink:to="srt_RangeAxis" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_RangeMember" xlink:label="srt_RangeMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" order="1" xlink:from="srt_RangeAxis" xlink:to="srt_RangeMember" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_MinimumMember" xlink:label="srt_MinimumMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="srt_RangeMember" xlink:to="srt_MinimumMember" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_MaximumMember" xlink:label="srt_MaximumMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="srt_RangeMember" xlink:to="srt_MaximumMember" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DebtInstrumentLineItems" xlink:label="us-gaap_DebtInstrumentLineItems" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" order="1" xlink:from="us-gaap_DebtInstrumentLineItems" xlink:to="us-gaap_DebtInstrumentTable" use="optional" xbrldt:contextElement="segment" xbrldt:closed="true" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LongTermDebtByMaturityAbstract" xlink:label="us-gaap_LongTermDebtByMaturityAbstract" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="us-gaap_DebtInstrumentLineItems" xlink:to="us-gaap_LongTermDebtByMaturityAbstract" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NotesAndLoansPayable" xlink:label="us-gaap_NotesAndLoansPayable" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="us-gaap_LongTermDebtByMaturityAbstract" xlink:to="us-gaap_NotesAndLoansPayable" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DebtInstrumentInterestRateStatedPercentage" xlink:label="us-gaap_DebtInstrumentInterestRateStatedPercentage" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="3" xlink:from="us-gaap_DebtInstrumentLineItems" xlink:to="us-gaap_DebtInstrumentInterestRateStatedPercentage" priority="1" use="optional" />
  </definitionLink>
  <definitionLink xlink:role="http://www.comfortsystemsusa.com/role/DisclosureLeasesDetails" xlink:type="extended" xlink:title="99940801 - Disclosure - Leases (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LesseeLeaseDescriptionTable" xlink:label="us-gaap_LesseeLeaseDescriptionTable" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_RangeAxis" xlink:label="srt_RangeAxis" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" order="1" xlink:from="us-gaap_LesseeLeaseDescriptionTable" xlink:to="srt_RangeAxis" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_RangeMember" xlink:label="srt_RangeMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" order="1" xlink:from="srt_RangeAxis" xlink:to="srt_RangeMember" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_MinimumMember" xlink:label="srt_MinimumMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="srt_RangeMember" xlink:to="srt_MinimumMember" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_MaximumMember" xlink:label="srt_MaximumMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="srt_RangeMember" xlink:to="srt_MaximumMember" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LesseeLeaseDescriptionLineItems" xlink:label="us-gaap_LesseeLeaseDescriptionLineItems" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" order="1" xlink:from="us-gaap_LesseeLeaseDescriptionLineItems" xlink:to="us-gaap_LesseeLeaseDescriptionTable" use="optional" xbrldt:contextElement="segment" xbrldt:closed="true" />
    <loc xlink:type="locator" xlink:href="fix-20240930.xsd#fix_VariableLeaseAndShortTermLeaseCost" xlink:label="fix_VariableLeaseAndShortTermLeaseCost" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="us-gaap_LesseeLeaseDescriptionLineItems" xlink:to="fix_VariableLeaseAndShortTermLeaseCost" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent" xlink:label="us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="3" xlink:from="us-gaap_LesseeLeaseDescriptionLineItems" xlink:to="us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingLeaseExpense" xlink:label="us-gaap_OperatingLeaseExpense" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="4" xlink:from="us-gaap_LesseeLeaseDescriptionLineItems" xlink:to="us-gaap_OperatingLeaseExpense" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LesseeOperatingLeaseTermOfContract" xlink:label="us-gaap_LesseeOperatingLeaseTermOfContract" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="5" xlink:from="us-gaap_LesseeLeaseDescriptionLineItems" xlink:to="us-gaap_LesseeOperatingLeaseTermOfContract" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20240930.xsd#fix_NumberOfOptionsToRenew" xlink:label="fix_NumberOfOptionsToRenew" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="6" xlink:from="us-gaap_LesseeLeaseDescriptionLineItems" xlink:to="fix_NumberOfOptionsToRenew" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1" xlink:label="us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="7" xlink:from="us-gaap_LesseeLeaseDescriptionLineItems" xlink:to="us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PaymentsForRent" xlink:label="us-gaap_PaymentsForRent" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="8" xlink:from="us-gaap_LesseeLeaseDescriptionLineItems" xlink:to="us-gaap_PaymentsForRent" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LesseeOperatingLeaseExistenceOfOptionToExtend" xlink:label="us-gaap_LesseeOperatingLeaseExistenceOfOptionToExtend" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="9" xlink:from="us-gaap_LesseeLeaseDescriptionLineItems" xlink:to="us-gaap_LesseeOperatingLeaseExistenceOfOptionToExtend" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20240930.xsd#fix_NumberOfOffSiteConstructionRealEstateLeasesCommenced" xlink:label="fix_NumberOfOffSiteConstructionRealEstateLeasesCommenced" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="10" xlink:from="us-gaap_LesseeLeaseDescriptionLineItems" xlink:to="fix_NumberOfOffSiteConstructionRealEstateLeasesCommenced" priority="1" use="optional" />
  </definitionLink>
  <definitionLink xlink:role="http://www.comfortsystemsusa.com/role/DisclosureCommitmentsAndContingenciesDetails" xlink:type="extended" xlink:title="99940901 - Disclosure - Commitments and Contingencies (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LossContingenciesTable" xlink:label="us-gaap_LossContingenciesTable" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeStatementLocationAxis" xlink:label="us-gaap_IncomeStatementLocationAxis" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" order="1" xlink:from="us-gaap_LossContingenciesTable" xlink:to="us-gaap_IncomeStatementLocationAxis" priority="2" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeStatementLocationDomain" xlink:label="us-gaap_IncomeStatementLocationDomain" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" order="1" xlink:from="us-gaap_IncomeStatementLocationAxis" xlink:to="us-gaap_IncomeStatementLocationDomain" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20240930.xsd#fix_GrossProfitMember" xlink:label="fix_GrossProfitMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="us-gaap_IncomeStatementLocationDomain" xlink:to="fix_GrossProfitMember" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SellingGeneralAndAdministrativeExpensesMember" xlink:label="us-gaap_SellingGeneralAndAdministrativeExpensesMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="us-gaap_IncomeStatementLocationDomain" xlink:to="us-gaap_SellingGeneralAndAdministrativeExpensesMember" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_InterestIncomeMember" xlink:label="us-gaap_InterestIncomeMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="3" xlink:from="us-gaap_IncomeStatementLocationDomain" xlink:to="us-gaap_InterestIncomeMember" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20240930.xsd#fix_BusinessCombinationContingentConsiderationChangeInContingentConsiderationLiabilityMember" xlink:label="fix_BusinessCombinationContingentConsiderationChangeInContingentConsiderationLiabilityMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="4" xlink:from="us-gaap_IncomeStatementLocationDomain" xlink:to="fix_BusinessCombinationContingentConsiderationChangeInContingentConsiderationLiabilityMember" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LossContingenciesByNatureOfContingencyAxis" xlink:label="us-gaap_LossContingenciesByNatureOfContingencyAxis" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" order="2" xlink:from="us-gaap_LossContingenciesTable" xlink:to="us-gaap_LossContingenciesByNatureOfContingencyAxis" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LossContingencyNatureDomain" xlink:label="us-gaap_LossContingencyNatureDomain" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" order="1" xlink:from="us-gaap_LossContingenciesByNatureOfContingencyAxis" xlink:to="us-gaap_LossContingencyNatureDomain" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20240930.xsd#fix_DisputeWithCustomerMember" xlink:label="fix_DisputeWithCustomerMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="us-gaap_LossContingencyNatureDomain" xlink:to="fix_DisputeWithCustomerMember" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SuretyBondMember" xlink:label="us-gaap_SuretyBondMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="us-gaap_LossContingencyNatureDomain" xlink:to="us-gaap_SuretyBondMember" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_RangeAxis" xlink:label="srt_RangeAxis" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" order="3" xlink:from="us-gaap_LossContingenciesTable" xlink:to="srt_RangeAxis" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_RangeMember" xlink:label="srt_RangeMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" order="1" xlink:from="srt_RangeAxis" xlink:to="srt_RangeMember" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_MinimumMember" xlink:label="srt_MinimumMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="srt_RangeMember" xlink:to="srt_MinimumMember" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_MaximumMember" xlink:label="srt_MaximumMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="srt_RangeMember" xlink:to="srt_MaximumMember" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LossContingenciesLineItems" xlink:label="us-gaap_LossContingenciesLineItems" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" order="1" xlink:from="us-gaap_LossContingenciesLineItems" xlink:to="us-gaap_LossContingenciesTable" use="optional" xbrldt:contextElement="segment" xbrldt:closed="true" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_GainLossRelatedToLitigationSettlement" xlink:label="us-gaap_GainLossRelatedToLitigationSettlement" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="us-gaap_LossContingenciesLineItems" xlink:to="us-gaap_GainLossRelatedToLitigationSettlement" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20240930.xsd#fix_LossContingencySuretyAbstract" xlink:label="fix_LossContingencySuretyAbstract" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="3" xlink:from="us-gaap_LossContingenciesLineItems" xlink:to="fix_LossContingencySuretyAbstract" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20240930.xsd#fix_PercentageOfBusinessWhichHasRequiredBonds" xlink:label="fix_PercentageOfBusinessWhichHasRequiredBonds" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="fix_LossContingencySuretyAbstract" xlink:to="fix_PercentageOfBusinessWhichHasRequiredBonds" priority="1" use="optional" />
  </definitionLink>
  <definitionLink xlink:role="http://www.comfortsystemsusa.com/role/DisclosureStockholdersEquityIncentiveAndOtherDetails" xlink:type="extended" xlink:title="99941002 - Disclosure - Stockholders' Equity - Incentive and Other (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:label="us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PlanNameAxis" xlink:label="us-gaap_PlanNameAxis" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" order="1" xlink:from="us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:to="us-gaap_PlanNameAxis" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PlanNameDomain" xlink:label="us-gaap_PlanNameDomain" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" order="1" xlink:from="us-gaap_PlanNameAxis" xlink:to="us-gaap_PlanNameDomain" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20240930.xsd#fix_StockRepurchaseProgram2007Member" xlink:label="fix_StockRepurchaseProgram2007Member" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="us-gaap_PlanNameDomain" xlink:to="fix_StockRepurchaseProgram2007Member" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_RangeAxis" xlink:label="srt_RangeAxis" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" order="2" xlink:from="us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:to="srt_RangeAxis" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_RangeMember" xlink:label="srt_RangeMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" order="1" xlink:from="srt_RangeAxis" xlink:to="srt_RangeMember" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_MaximumMember" xlink:label="srt_MaximumMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="srt_RangeMember" xlink:to="srt_MaximumMember" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" order="1" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" use="optional" xbrldt:contextElement="segment" xbrldt:closed="true" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DisclosureOfRepurchaseAgreementsAbstract" xlink:label="us-gaap_DisclosureOfRepurchaseAgreementsAbstract" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="us-gaap_DisclosureOfRepurchaseAgreementsAbstract" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_StockRepurchaseProgramNumberOfSharesAuthorizedToBeRepurchased" xlink:label="srt_StockRepurchaseProgramNumberOfSharesAuthorizedToBeRepurchased" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="us-gaap_DisclosureOfRepurchaseAgreementsAbstract" xlink:to="srt_StockRepurchaseProgramNumberOfSharesAuthorizedToBeRepurchased" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_TreasuryStockSharesAcquired" xlink:label="us-gaap_TreasuryStockSharesAcquired" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="us-gaap_DisclosureOfRepurchaseAgreementsAbstract" xlink:to="us-gaap_TreasuryStockSharesAcquired" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PaymentsForRepurchaseOfCommonStock" xlink:label="us-gaap_PaymentsForRepurchaseOfCommonStock" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="3" xlink:from="us-gaap_DisclosureOfRepurchaseAgreementsAbstract" xlink:to="us-gaap_PaymentsForRepurchaseOfCommonStock" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_TreasuryStockAcquiredAverageCostPerShare" xlink:label="us-gaap_TreasuryStockAcquiredAverageCostPerShare" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="4" xlink:from="us-gaap_DisclosureOfRepurchaseAgreementsAbstract" xlink:to="us-gaap_TreasuryStockAcquiredAverageCostPerShare" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" xlink:label="us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="5" xlink:from="us-gaap_DisclosureOfRepurchaseAgreementsAbstract" xlink:to="us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" priority="1" use="optional" />
  </definitionLink>
  <definitionLink xlink:role="http://www.comfortsystemsusa.com/role/DisclosureSegmentInformationDetails" xlink:type="extended" xlink:title="99941101 - Disclosure - Segment Information (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfSegmentReportingInformationBySegmentTable" xlink:label="us-gaap_ScheduleOfSegmentReportingInformationBySegmentTable" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_ConsolidationItemsAxis" xlink:label="srt_ConsolidationItemsAxis" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" order="1" xlink:from="us-gaap_ScheduleOfSegmentReportingInformationBySegmentTable" xlink:to="srt_ConsolidationItemsAxis" priority="2" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_ConsolidationItemsDomain" xlink:label="srt_ConsolidationItemsDomain" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" order="1" xlink:from="srt_ConsolidationItemsAxis" xlink:to="srt_ConsolidationItemsDomain" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingSegmentsMember" xlink:label="us-gaap_OperatingSegmentsMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="srt_ConsolidationItemsDomain" xlink:to="us-gaap_OperatingSegmentsMember" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StatementBusinessSegmentsAxis" xlink:label="us-gaap_StatementBusinessSegmentsAxis" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" order="2" xlink:from="us-gaap_ScheduleOfSegmentReportingInformationBySegmentTable" xlink:to="us-gaap_StatementBusinessSegmentsAxis" priority="2" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SegmentDomain" xlink:label="us-gaap_SegmentDomain" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" order="1" xlink:from="us-gaap_StatementBusinessSegmentsAxis" xlink:to="us-gaap_SegmentDomain" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20240930.xsd#fix_MechanicalSegmentMember" xlink:label="fix_MechanicalSegmentMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="us-gaap_SegmentDomain" xlink:to="fix_MechanicalSegmentMember" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20240930.xsd#fix_ElectricalSegmentMember" xlink:label="fix_ElectricalSegmentMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="us-gaap_SegmentDomain" xlink:to="fix_ElectricalSegmentMember" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SegmentReportingInformationLineItems" xlink:label="us-gaap_SegmentReportingInformationLineItems" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" order="1" xlink:from="us-gaap_SegmentReportingInformationLineItems" xlink:to="us-gaap_ScheduleOfSegmentReportingInformationBySegmentTable" use="optional" xbrldt:contextElement="segment" xbrldt:closed="true" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NumberOfReportableSegments" xlink:label="us-gaap_NumberOfReportableSegments" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="us-gaap_SegmentReportingInformationLineItems" xlink:to="us-gaap_NumberOfReportableSegments" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_Revenues" xlink:label="us-gaap_Revenues" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="3" xlink:from="us-gaap_SegmentReportingInformationLineItems" xlink:to="us-gaap_Revenues" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_GrossProfit" xlink:label="us-gaap_GrossProfit" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="4" xlink:from="us-gaap_SegmentReportingInformationLineItems" xlink:to="us-gaap_GrossProfit" priority="1" use="optional" />
  </definitionLink>
</link:linkbase>
</XBRL>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-101.LAB
<SEQUENCE>9
<FILENAME>fix-20240930_lab.xml
<DESCRIPTION>EX-101.LAB
<TEXT>
<XBRL>
<?xml version="1.0" encoding="utf-8"?>
<!--XBRL document created with Toppan Merrill Bridge  10.8.0.95 -->
<!--Based on XBRL 2.1-->
<!--Created on: 10/24/2024 8:25:24 PM-->
<!--Modified on: 10/24/2024 8:25:24 PM-->
<link:linkbase xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.xbrl.org/2003/linkbase http://www.xbrl.org/2003/xbrl-linkbase-2003-12-31.xsd" xmlns:link="http://www.xbrl.org/2003/linkbase" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xbrldt="http://xbrl.org/2005/xbrldt">
  <roleRef xlink:type="simple" xlink:href="http://www.xbrl.org/lrr/role/negated-2009-12-16.xsd#negatedLabel" roleURI="http://www.xbrl.org/2009/role/negatedLabel" xmlns="http://www.xbrl.org/2003/linkbase" />
  <link:labelLink xlink:type="extended" xlink:role="http://www.xbrl.org/2003/role/link">
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_CoverAbstract" xlink:label="dei_CoverAbstract" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_CoverAbstract" xlink:to="dei_CoverAbstract_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_CoverAbstract_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Cover [Abstract]</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xmlns="http://www.xbrl.org/2003/linkbase" />
    <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" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_StatementTable_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Statement [Table]</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xmlns="http://www.xbrl.org/2003/linkbase" />
    <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" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_StatementLineItems_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Statement [Line Items]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_StatementLineItems_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Statement</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_DocumentType" xlink:label="dei_DocumentType" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_DocumentType" xlink:to="dei_DocumentType_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_DocumentType_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Document Type</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_DocumentQuarterlyReport" xlink:label="dei_DocumentQuarterlyReport" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_DocumentQuarterlyReport" xlink:to="dei_DocumentQuarterlyReport_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_DocumentQuarterlyReport_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Document Quarterly Report</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_DocumentPeriodEndDate" xlink:label="dei_DocumentPeriodEndDate" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_DocumentPeriodEndDate" xlink:to="dei_DocumentPeriodEndDate_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_DocumentPeriodEndDate_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Document Period End Date</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_DocumentTransitionReport" xlink:label="dei_DocumentTransitionReport" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_DocumentTransitionReport" xlink:to="dei_DocumentTransitionReport_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_DocumentTransitionReport_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Document Transition Report</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityFileNumber" xlink:label="dei_EntityFileNumber" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityFileNumber" xlink:to="dei_EntityFileNumber_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_EntityFileNumber_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Securities Act File Number</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityRegistrantName" xlink:label="dei_EntityRegistrantName" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityRegistrantName" xlink:to="dei_EntityRegistrantName_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_EntityRegistrantName_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Entity Registrant Name</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityIncorporationStateCountryCode" xlink:label="dei_EntityIncorporationStateCountryCode" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityIncorporationStateCountryCode" xlink:to="dei_EntityIncorporationStateCountryCode_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_EntityIncorporationStateCountryCode_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Entity Incorporation, State or Country Code</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityTaxIdentificationNumber" xlink:label="dei_EntityTaxIdentificationNumber" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityTaxIdentificationNumber" xlink:to="dei_EntityTaxIdentificationNumber_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_EntityTaxIdentificationNumber_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Entity Tax Identification Number</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityAddressAddressLine1" xlink:label="dei_EntityAddressAddressLine1" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityAddressAddressLine1" xlink:to="dei_EntityAddressAddressLine1_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_EntityAddressAddressLine1_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Entity Address, Address Line One</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityAddressAddressLine2" xlink:label="dei_EntityAddressAddressLine2" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityAddressAddressLine2" xlink:to="dei_EntityAddressAddressLine2_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_EntityAddressAddressLine2_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Entity Address, Address Line Two</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityAddressCityOrTown" xlink:label="dei_EntityAddressCityOrTown" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityAddressCityOrTown" xlink:to="dei_EntityAddressCityOrTown_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_EntityAddressCityOrTown_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Entity Address, City or Town</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityAddressStateOrProvince" xlink:label="dei_EntityAddressStateOrProvince" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityAddressStateOrProvince" xlink:to="dei_EntityAddressStateOrProvince_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_EntityAddressStateOrProvince_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Entity Address, State or Province</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityAddressPostalZipCode" xlink:label="dei_EntityAddressPostalZipCode" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityAddressPostalZipCode" xlink:to="dei_EntityAddressPostalZipCode_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_EntityAddressPostalZipCode_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Entity Address, Postal Zip Code</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_CityAreaCode" xlink:label="dei_CityAreaCode" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_CityAreaCode" xlink:to="dei_CityAreaCode_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_CityAreaCode_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">City Area Code</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_LocalPhoneNumber" xlink:label="dei_LocalPhoneNumber" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_LocalPhoneNumber" xlink:to="dei_LocalPhoneNumber_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_LocalPhoneNumber_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Local Phone Number</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_Security12bTitle" xlink:label="dei_Security12bTitle" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_Security12bTitle" xlink:to="dei_Security12bTitle_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_Security12bTitle_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Title of 12(b) Security</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_TradingSymbol" xlink:label="dei_TradingSymbol" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_TradingSymbol" xlink:to="dei_TradingSymbol_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_TradingSymbol_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Trading Symbol</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_SecurityExchangeName" xlink:label="dei_SecurityExchangeName" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_SecurityExchangeName" xlink:to="dei_SecurityExchangeName_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_SecurityExchangeName_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Security Exchange Name</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityCurrentReportingStatus" xlink:label="dei_EntityCurrentReportingStatus" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityCurrentReportingStatus" xlink:to="dei_EntityCurrentReportingStatus_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_EntityCurrentReportingStatus_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Entity Current Reporting Status</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityInteractiveDataCurrent" xlink:label="dei_EntityInteractiveDataCurrent" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityInteractiveDataCurrent" xlink:to="dei_EntityInteractiveDataCurrent_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_EntityInteractiveDataCurrent_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Entity Interactive Data Current</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityFilerCategory" xlink:label="dei_EntityFilerCategory" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityFilerCategory" xlink:to="dei_EntityFilerCategory_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_EntityFilerCategory_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Entity Filer Category</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntitySmallBusiness" xlink:label="dei_EntitySmallBusiness" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntitySmallBusiness" xlink:to="dei_EntitySmallBusiness_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_EntitySmallBusiness_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Entity Small Business</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityEmergingGrowthCompany" xlink:label="dei_EntityEmergingGrowthCompany" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityEmergingGrowthCompany" xlink:to="dei_EntityEmergingGrowthCompany_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_EntityEmergingGrowthCompany_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Entity Emerging Growth Company</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityShellCompany" xlink:label="dei_EntityShellCompany" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityShellCompany" xlink:to="dei_EntityShellCompany_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_EntityShellCompany_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Entity Shell Company</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityCommonStockSharesOutstanding" xlink:label="dei_EntityCommonStockSharesOutstanding" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityCommonStockSharesOutstanding" xlink:to="dei_EntityCommonStockSharesOutstanding_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_EntityCommonStockSharesOutstanding_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Entity Common Stock, Shares Outstanding</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityCentralIndexKey" xlink:label="dei_EntityCentralIndexKey" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityCentralIndexKey" xlink:to="dei_EntityCentralIndexKey_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_EntityCentralIndexKey_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Entity Central Index Key</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_DocumentFiscalYearFocus" xlink:label="dei_DocumentFiscalYearFocus" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_DocumentFiscalYearFocus" xlink:to="dei_DocumentFiscalYearFocus_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_DocumentFiscalYearFocus_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Document Fiscal Year Focus</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_DocumentFiscalPeriodFocus" xlink:label="dei_DocumentFiscalPeriodFocus" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_DocumentFiscalPeriodFocus" xlink:to="dei_DocumentFiscalPeriodFocus_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_DocumentFiscalPeriodFocus_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Document Fiscal Period Focus</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_CurrentFiscalYearEndDate" xlink:label="dei_CurrentFiscalYearEndDate" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_CurrentFiscalYearEndDate" xlink:to="dei_CurrentFiscalYearEndDate_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_CurrentFiscalYearEndDate_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Current Fiscal Year End Date</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_AmendmentFlag" xlink:label="dei_AmendmentFlag" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_AmendmentFlag" xlink:to="dei_AmendmentFlag_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_AmendmentFlag_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Amendment Flag</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StatementOfFinancialPositionAbstract" xlink:label="us-gaap_StatementOfFinancialPositionAbstract" xmlns="http://www.xbrl.org/2003/linkbase" />
    <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" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_StatementOfFinancialPositionAbstract_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">CONSOLIDATED BALANCE SHEETS</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AssetsAbstract" xlink:label="us-gaap_AssetsAbstract" xmlns="http://www.xbrl.org/2003/linkbase" />
    <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" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_AssetsAbstract_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Assets [Abstract]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_AssetsAbstract_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">ASSETS</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AssetsCurrentAbstract" xlink:label="us-gaap_AssetsCurrentAbstract" xmlns="http://www.xbrl.org/2003/linkbase" />
    <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" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_AssetsCurrentAbstract_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Assets, Current [Abstract]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_AssetsCurrentAbstract_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">CURRENT ASSETS:</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CashAndCashEquivalentsAtCarryingValue" xlink:label="us-gaap_CashAndCashEquivalentsAtCarryingValue" xmlns="http://www.xbrl.org/2003/linkbase" />
    <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" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_CashAndCashEquivalentsAtCarryingValue_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Cash and Cash Equivalents, at Carrying Value</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_CashAndCashEquivalentsAtCarryingValue_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Cash and cash equivalents</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BilledContractReceivables" xlink:label="us-gaap_BilledContractReceivables" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BilledContractReceivables" xlink:to="us-gaap_BilledContractReceivables_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_BilledContractReceivables_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Billed Contracts Receivable</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_BilledContractReceivables_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Billed accounts receivable, less allowance for credit losses of $15,280 and $11,926, respectively</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_UnbilledContractsReceivable" xlink:label="us-gaap_UnbilledContractsReceivable" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_UnbilledContractsReceivable" xlink:to="us-gaap_UnbilledContractsReceivable_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_UnbilledContractsReceivable_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Unbilled Contracts Receivable</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_UnbilledContractsReceivable_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Unbilled accounts receivable, less allowance for credit losses of $953 and $850, respectively</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NontradeReceivablesCurrent" xlink:label="us-gaap_NontradeReceivablesCurrent" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_NontradeReceivablesCurrent" xlink:to="us-gaap_NontradeReceivablesCurrent_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_NontradeReceivablesCurrent_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Nontrade Receivables, Current</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_NontradeReceivablesCurrent_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Other receivables, less allowance for credit losses of $515 and $522, respectively</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_InventoryNet" xlink:label="us-gaap_InventoryNet" xmlns="http://www.xbrl.org/2003/linkbase" />
    <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" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_InventoryNet_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Inventory, Net</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_InventoryNet_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Inventories</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PrepaidExpenseAndOtherAssetsCurrent" xlink:label="us-gaap_PrepaidExpenseAndOtherAssetsCurrent" xmlns="http://www.xbrl.org/2003/linkbase" />
    <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" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_PrepaidExpenseAndOtherAssetsCurrent_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Prepaid Expense and Other Assets, Current</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_PrepaidExpenseAndOtherAssetsCurrent_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Prepaid expenses and other</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ContractWithCustomerAssetNetCurrent" xlink:label="us-gaap_ContractWithCustomerAssetNetCurrent" xmlns="http://www.xbrl.org/2003/linkbase" />
    <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" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ContractWithCustomerAssetNetCurrent_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Contract with Customer, Asset, after Allowance for Credit Loss, Current</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_ContractWithCustomerAssetNetCurrent_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Costs and estimated earnings in excess of billings, less allowance for credit losses of $200 and $79, respectively</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_ContractWithCustomerAssetNetCurrent_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Costs and estimated earnings in excess of billings, less allowance for credit losses, current</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AssetsCurrent" xlink:label="us-gaap_AssetsCurrent" xmlns="http://www.xbrl.org/2003/linkbase" />
    <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" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_AssetsCurrent_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Assets, Current</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:label="us-gaap_AssetsCurrent_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Total current assets</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PropertyPlantAndEquipmentNet" xlink:label="us-gaap_PropertyPlantAndEquipmentNet" xmlns="http://www.xbrl.org/2003/linkbase" />
    <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" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_PropertyPlantAndEquipmentNet_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Property, Plant and Equipment, Net</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_PropertyPlantAndEquipmentNet_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">PROPERTY AND EQUIPMENT, NET</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingLeaseRightOfUseAsset" xlink:label="us-gaap_OperatingLeaseRightOfUseAsset" xmlns="http://www.xbrl.org/2003/linkbase" />
    <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" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_OperatingLeaseRightOfUseAsset_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Operating Lease, Right-of-Use Asset</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_OperatingLeaseRightOfUseAsset_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">LEASE RIGHT-OF-USE ASSET</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_OperatingLeaseRightOfUseAsset_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Operating lease right-of-use assets</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_Goodwill" xlink:label="us-gaap_Goodwill" xmlns="http://www.xbrl.org/2003/linkbase" />
    <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" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_Goodwill_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Goodwill</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel" xlink:label="us-gaap_Goodwill_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Balance at end of period</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel" xlink:label="us-gaap_Goodwill_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Balance at beginning of year</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_Goodwill_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">GOODWILL</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IntangibleAssetsNetExcludingGoodwill" xlink:label="us-gaap_IntangibleAssetsNetExcludingGoodwill" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IntangibleAssetsNetExcludingGoodwill" xlink:to="us-gaap_IntangibleAssetsNetExcludingGoodwill_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_IntangibleAssetsNetExcludingGoodwill_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Intangible Assets, Net (Excluding Goodwill)</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_IntangibleAssetsNetExcludingGoodwill_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">IDENTIFIABLE INTANGIBLE ASSETS, NET</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredIncomeTaxAssetsNet" xlink:label="us-gaap_DeferredIncomeTaxAssetsNet" xmlns="http://www.xbrl.org/2003/linkbase" />
    <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" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_DeferredIncomeTaxAssetsNet_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Deferred Income Tax Assets, Net</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_DeferredIncomeTaxAssetsNet_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">DEFERRED TAX ASSETS</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OtherAssetsNoncurrent" xlink:label="us-gaap_OtherAssetsNoncurrent" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OtherAssetsNoncurrent" xlink:to="us-gaap_OtherAssetsNoncurrent_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_OtherAssetsNoncurrent_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Other Assets, Noncurrent</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_OtherAssetsNoncurrent_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">OTHER NONCURRENT ASSETS</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_Assets" xlink:label="us-gaap_Assets" xmlns="http://www.xbrl.org/2003/linkbase" />
    <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" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_Assets_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Assets</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:label="us-gaap_Assets_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Total assets</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LiabilitiesAndStockholdersEquityAbstract" xlink:label="us-gaap_LiabilitiesAndStockholdersEquityAbstract" xmlns="http://www.xbrl.org/2003/linkbase" />
    <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" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_LiabilitiesAndStockholdersEquityAbstract_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Liabilities and Equity [Abstract]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_LiabilitiesAndStockholdersEquityAbstract_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">LIABILITIES AND STOCKHOLDERS' EQUITY</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LiabilitiesCurrentAbstract" xlink:label="us-gaap_LiabilitiesCurrentAbstract" xmlns="http://www.xbrl.org/2003/linkbase" />
    <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" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_LiabilitiesCurrentAbstract_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Liabilities, Current [Abstract]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_LiabilitiesCurrentAbstract_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">CURRENT LIABILITIES:</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LongTermDebtCurrent" xlink:label="us-gaap_LongTermDebtCurrent" xmlns="http://www.xbrl.org/2003/linkbase" />
    <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" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_LongTermDebtCurrent_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Long-Term Debt, Current Maturities</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_LongTermDebtCurrent_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Current maturities of long-term debt</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AccountsPayableCurrent" xlink:label="us-gaap_AccountsPayableCurrent" xmlns="http://www.xbrl.org/2003/linkbase" />
    <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" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_AccountsPayableCurrent_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Accounts Payable, Current</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_AccountsPayableCurrent_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Accounts payable</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EmployeeRelatedLiabilitiesCurrent" xlink:label="us-gaap_EmployeeRelatedLiabilitiesCurrent" xmlns="http://www.xbrl.org/2003/linkbase" />
    <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" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_EmployeeRelatedLiabilitiesCurrent_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Employee-related Liabilities, Current</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_EmployeeRelatedLiabilitiesCurrent_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Accrued compensation and benefits</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ContractWithCustomerLiabilityCurrent" xlink:label="us-gaap_ContractWithCustomerLiabilityCurrent" xmlns="http://www.xbrl.org/2003/linkbase" />
    <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" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ContractWithCustomerLiabilityCurrent_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Contract with Customer, Liability, Current</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_ContractWithCustomerLiabilityCurrent_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Billings in excess of costs and estimated earnings and deferred revenue</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SelfInsuranceReserveCurrent" xlink:label="us-gaap_SelfInsuranceReserveCurrent" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SelfInsuranceReserveCurrent" xlink:to="us-gaap_SelfInsuranceReserveCurrent_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_SelfInsuranceReserveCurrent_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Self Insurance Reserve, Current</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_SelfInsuranceReserveCurrent_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Accrued self-insurance</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OtherLiabilitiesCurrent" xlink:label="us-gaap_OtherLiabilitiesCurrent" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OtherLiabilitiesCurrent" xlink:to="us-gaap_OtherLiabilitiesCurrent_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_OtherLiabilitiesCurrent_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Other Liabilities, Current</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_OtherLiabilitiesCurrent_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Other current liabilities</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LiabilitiesCurrent" xlink:label="us-gaap_LiabilitiesCurrent" xmlns="http://www.xbrl.org/2003/linkbase" />
    <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" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_LiabilitiesCurrent_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Liabilities, Current</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:label="us-gaap_LiabilitiesCurrent_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Total current liabilities</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LongTermDebtNoncurrent" xlink:label="us-gaap_LongTermDebtNoncurrent" xmlns="http://www.xbrl.org/2003/linkbase" />
    <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" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_LongTermDebtNoncurrent_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Long-Term Debt, Excluding Current Maturities</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_LongTermDebtNoncurrent_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">LONG-TERM DEBT</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingLeaseLiabilityNoncurrent" xlink:label="us-gaap_OperatingLeaseLiabilityNoncurrent" xmlns="http://www.xbrl.org/2003/linkbase" />
    <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" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_OperatingLeaseLiabilityNoncurrent_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Operating Lease, Liability, Noncurrent</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_OperatingLeaseLiabilityNoncurrent_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">LEASE LIABILITIES</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_OperatingLeaseLiabilityNoncurrent_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Long-term operating lease liabilities</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredIncomeTaxLiabilitiesNet" xlink:label="us-gaap_DeferredIncomeTaxLiabilitiesNet" xmlns="http://www.xbrl.org/2003/linkbase" />
    <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" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_DeferredIncomeTaxLiabilitiesNet_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Deferred Income Tax Liabilities, Net</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_DeferredIncomeTaxLiabilitiesNet_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">DEFERRED TAX LIABILITIES</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OtherLiabilitiesNoncurrent" xlink:label="us-gaap_OtherLiabilitiesNoncurrent" xmlns="http://www.xbrl.org/2003/linkbase" />
    <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" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_OtherLiabilitiesNoncurrent_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Other Liabilities, Noncurrent</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_OtherLiabilitiesNoncurrent_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">OTHER LONG-TERM LIABILITIES</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_Liabilities" xlink:label="us-gaap_Liabilities" xmlns="http://www.xbrl.org/2003/linkbase" />
    <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" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_Liabilities_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Liabilities</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:label="us-gaap_Liabilities_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Total liabilities</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CommitmentsAndContingencies" xlink:label="us-gaap_CommitmentsAndContingencies" xmlns="http://www.xbrl.org/2003/linkbase" />
    <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" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_CommitmentsAndContingencies_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Commitments and Contingencies.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_CommitmentsAndContingencies_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">COMMITMENTS AND CONTINGENCIES</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StockholdersEquityIncludingPortionAttributableToNoncontrollingInterestAbstract" xlink:label="us-gaap_StockholdersEquityIncludingPortionAttributableToNoncontrollingInterestAbstract" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_StockholdersEquityIncludingPortionAttributableToNoncontrollingInterestAbstract" xlink:to="us-gaap_StockholdersEquityIncludingPortionAttributableToNoncontrollingInterestAbstract_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_StockholdersEquityIncludingPortionAttributableToNoncontrollingInterestAbstract_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Equity, Including Portion Attributable to Noncontrolling Interest [Abstract]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_StockholdersEquityIncludingPortionAttributableToNoncontrollingInterestAbstract_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">STOCKHOLDERS' EQUITY:</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PreferredStockValue" xlink:label="us-gaap_PreferredStockValue" xmlns="http://www.xbrl.org/2003/linkbase" />
    <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" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_PreferredStockValue_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Preferred Stock, Value, Issued</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_PreferredStockValue_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Preferred stock, $.01 par, 5,000,000 shares authorized, none issued and outstanding</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CommonStockValue" xlink:label="us-gaap_CommonStockValue" xmlns="http://www.xbrl.org/2003/linkbase" />
    <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" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_CommonStockValue_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Common Stock, Value, Issued</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_CommonStockValue_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Common stock, $.01 par, 102,969,912 shares authorized, 41,123,365 and 41,123,365 shares issued, respectively</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_TreasuryStockValue" xlink:label="us-gaap_TreasuryStockValue" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_TreasuryStockValue" xlink:to="us-gaap_TreasuryStockValue_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_TreasuryStockValue_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Treasury Stock, Value</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:label="us-gaap_TreasuryStockValue_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Treasury stock, at cost, 5,530,807 and 5,438,625 shares, respectively</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AdditionalPaidInCapitalCommonStock" xlink:label="us-gaap_AdditionalPaidInCapitalCommonStock" xmlns="http://www.xbrl.org/2003/linkbase" />
    <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" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_AdditionalPaidInCapitalCommonStock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Additional Paid in Capital, Common Stock</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_AdditionalPaidInCapitalCommonStock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Additional paid-in capital</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RetainedEarningsAccumulatedDeficit" xlink:label="us-gaap_RetainedEarningsAccumulatedDeficit" xmlns="http://www.xbrl.org/2003/linkbase" />
    <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" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_RetainedEarningsAccumulatedDeficit_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Retained Earnings (Accumulated Deficit)</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_RetainedEarningsAccumulatedDeficit_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Retained earnings</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StockholdersEquity" xlink:label="us-gaap_StockholdersEquity" xmlns="http://www.xbrl.org/2003/linkbase" />
    <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" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_StockholdersEquity_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Equity, Attributable to Parent</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel" xlink:label="us-gaap_StockholdersEquity_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">BALANCE</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel" xlink:label="us-gaap_StockholdersEquity_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">BALANCE</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:label="us-gaap_StockholdersEquity_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Total stockholders' equity</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LiabilitiesAndStockholdersEquity" xlink:label="us-gaap_LiabilitiesAndStockholdersEquity" xmlns="http://www.xbrl.org/2003/linkbase" />
    <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" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_LiabilitiesAndStockholdersEquity_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Liabilities and Equity</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:label="us-gaap_LiabilitiesAndStockholdersEquity_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Total liabilities and stockholders' equity</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent" xlink:label="us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent" xmlns="http://www.xbrl.org/2003/linkbase" />
    <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" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Accounts Receivable, Allowance for Credit Loss, Current</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Billed accounts receivable, allowance for credit losses (in dollars)</label>
    <loc xlink:type="locator" xlink:href="fix-20240930.xsd#fix_UnbilledAccountsReceivableAllowanceForCreditLoss" xlink:label="fix_UnbilledAccountsReceivableAllowanceForCreditLoss" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="fix_UnbilledAccountsReceivableAllowanceForCreditLoss" xlink:to="fix_UnbilledAccountsReceivableAllowanceForCreditLoss_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="fix_UnbilledAccountsReceivableAllowanceForCreditLoss_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">The amount of allowance for credit losses on unbilled receivable.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="fix_UnbilledAccountsReceivableAllowanceForCreditLoss_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Unbilled Accounts Receivable, Allowance for Credit Loss</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="fix_UnbilledAccountsReceivableAllowanceForCreditLoss_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Unbilled accounts receivable, allowance for credit losses (in dollars)</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AllowanceForDoubtfulOtherReceivablesCurrent" xlink:label="us-gaap_AllowanceForDoubtfulOtherReceivablesCurrent" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AllowanceForDoubtfulOtherReceivablesCurrent" xlink:to="us-gaap_AllowanceForDoubtfulOtherReceivablesCurrent_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_AllowanceForDoubtfulOtherReceivablesCurrent_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Allowance for Credit Loss, Receivable, Other, Current</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_AllowanceForDoubtfulOtherReceivablesCurrent_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Other receivables, allowance for credit losses (in dollars)</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ContractWithCustomerAssetAccumulatedAllowanceForCreditLossCurrent" xlink:label="us-gaap_ContractWithCustomerAssetAccumulatedAllowanceForCreditLossCurrent" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ContractWithCustomerAssetAccumulatedAllowanceForCreditLossCurrent" xlink:to="us-gaap_ContractWithCustomerAssetAccumulatedAllowanceForCreditLossCurrent_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ContractWithCustomerAssetAccumulatedAllowanceForCreditLossCurrent_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Contract with Customer, Asset, Allowance for Credit Loss, Current</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_ContractWithCustomerAssetAccumulatedAllowanceForCreditLossCurrent_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Costs and estimated earnings in excess of billings, allowance for credit losses (in dollars)</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PreferredStockParOrStatedValuePerShare" xlink:label="us-gaap_PreferredStockParOrStatedValuePerShare" xmlns="http://www.xbrl.org/2003/linkbase" />
    <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" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_PreferredStockParOrStatedValuePerShare_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Preferred Stock, Par or Stated Value Per Share</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_PreferredStockParOrStatedValuePerShare_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Preferred stock, par value (in dollars per share)</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PreferredStockSharesAuthorized" xlink:label="us-gaap_PreferredStockSharesAuthorized" xmlns="http://www.xbrl.org/2003/linkbase" />
    <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" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_PreferredStockSharesAuthorized_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Preferred Stock, Shares Authorized</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_PreferredStockSharesAuthorized_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Preferred stock, shares authorized</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PreferredStockSharesIssued" xlink:label="us-gaap_PreferredStockSharesIssued" xmlns="http://www.xbrl.org/2003/linkbase" />
    <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" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_PreferredStockSharesIssued_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Preferred Stock, Shares Issued</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_PreferredStockSharesIssued_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Preferred stock, shares issued</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PreferredStockSharesOutstanding" xlink:label="us-gaap_PreferredStockSharesOutstanding" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PreferredStockSharesOutstanding" xlink:to="us-gaap_PreferredStockSharesOutstanding_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_PreferredStockSharesOutstanding_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Preferred Stock, Shares Outstanding</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_PreferredStockSharesOutstanding_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Preferred stock, shares outstanding</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CommonStockParOrStatedValuePerShare" xlink:label="us-gaap_CommonStockParOrStatedValuePerShare" xmlns="http://www.xbrl.org/2003/linkbase" />
    <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" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_CommonStockParOrStatedValuePerShare_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Common Stock, Par or Stated Value Per Share</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_CommonStockParOrStatedValuePerShare_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Common stock, par value (in dollars per share)</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CommonStockSharesAuthorized" xlink:label="us-gaap_CommonStockSharesAuthorized" xmlns="http://www.xbrl.org/2003/linkbase" />
    <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" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_CommonStockSharesAuthorized_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Common Stock, Shares Authorized</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_CommonStockSharesAuthorized_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Common stock, shares authorized</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CommonStockSharesIssued" xlink:label="us-gaap_CommonStockSharesIssued" xmlns="http://www.xbrl.org/2003/linkbase" />
    <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" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_CommonStockSharesIssued_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Common Stock, Shares, Issued</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel" xlink:label="us-gaap_CommonStockSharesIssued_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">BALANCE (in shares)</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel" xlink:label="us-gaap_CommonStockSharesIssued_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">BALANCE (in shares)</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_CommonStockSharesIssued_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Common stock, shares issued</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_TreasuryStockCommonShares" xlink:label="us-gaap_TreasuryStockCommonShares" xmlns="http://www.xbrl.org/2003/linkbase" />
    <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" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_TreasuryStockCommonShares_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Treasury Stock, Common, Shares</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel" xlink:label="us-gaap_TreasuryStockCommonShares_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">BALANCE (in shares)</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel" xlink:label="us-gaap_TreasuryStockCommonShares_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">BALANCE (in shares)</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_TreasuryStockCommonShares_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Treasury stock, shares</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeStatementAbstract" xlink:label="us-gaap_IncomeStatementAbstract" xmlns="http://www.xbrl.org/2003/linkbase" />
    <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" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_IncomeStatementAbstract_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Income Statement [Abstract]</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_Revenues" xlink:label="us-gaap_Revenues" xmlns="http://www.xbrl.org/2003/linkbase" />
    <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" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_Revenues_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Revenues</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_Revenues_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">REVENUE</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_Revenues_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Revenue</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CostOfRevenue" xlink:label="us-gaap_CostOfRevenue" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CostOfRevenue" xlink:to="us-gaap_CostOfRevenue_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_CostOfRevenue_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Cost of Revenue</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_CostOfRevenue_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">COST OF SERVICES</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_GrossProfit" xlink:label="us-gaap_GrossProfit" xmlns="http://www.xbrl.org/2003/linkbase" />
    <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" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_GrossProfit_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Gross Profit</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:label="us-gaap_GrossProfit_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Gross profit</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_GrossProfit_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Gross Profit</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SellingGeneralAndAdministrativeExpense" xlink:label="us-gaap_SellingGeneralAndAdministrativeExpense" xmlns="http://www.xbrl.org/2003/linkbase" />
    <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" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_SellingGeneralAndAdministrativeExpense_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Selling, General and Administrative Expense</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_SellingGeneralAndAdministrativeExpense_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">SELLING, GENERAL AND ADMINISTRATIVE EXPENSES</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_GainLossOnDispositionOfAssets" xlink:label="us-gaap_GainLossOnDispositionOfAssets" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_GainLossOnDispositionOfAssets" xlink:to="us-gaap_GainLossOnDispositionOfAssets_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_GainLossOnDispositionOfAssets_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Gain (Loss) on Disposition of Property Plant Equipment, Excluding Oil and Gas Property and Timber Property</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:label="us-gaap_GainLossOnDispositionOfAssets_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">GAIN ON SALE OF ASSETS</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingIncomeLoss" xlink:label="us-gaap_OperatingIncomeLoss" xmlns="http://www.xbrl.org/2003/linkbase" />
    <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" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_OperatingIncomeLoss_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Operating Income (Loss)</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:label="us-gaap_OperatingIncomeLoss_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Operating income</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NonoperatingIncomeExpenseAbstract" xlink:label="us-gaap_NonoperatingIncomeExpenseAbstract" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_NonoperatingIncomeExpenseAbstract" xlink:to="us-gaap_NonoperatingIncomeExpenseAbstract_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_NonoperatingIncomeExpenseAbstract_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Nonoperating Income (Expense) [Abstract]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_NonoperatingIncomeExpenseAbstract_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">OTHER INCOME (EXPENSE):</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_InvestmentIncomeInterest" xlink:label="us-gaap_InvestmentIncomeInterest" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_InvestmentIncomeInterest" xlink:to="us-gaap_InvestmentIncomeInterest_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_InvestmentIncomeInterest_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Investment Income, Interest</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_InvestmentIncomeInterest_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Interest income</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_InterestExpenseNonoperating" xlink:label="us-gaap_InterestExpenseNonoperating" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_InterestExpenseNonoperating" xlink:to="us-gaap_InterestExpenseNonoperating_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_InterestExpenseNonoperating_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Interest Expense, Nonoperating</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:label="us-gaap_InterestExpenseNonoperating_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Interest expense</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1" xlink:label="us-gaap_BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1" xmlns="http://www.xbrl.org/2003/linkbase" />
    <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" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Business Combination, Contingent Consideration Arrangements, Change in Amount of Contingent Consideration, Liability</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:label="us-gaap_BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Changes in the fair value of contingent earn-out obligations</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Changes in the fair value of contingent earn-out obligations</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OtherNonoperatingIncomeExpense" xlink:label="us-gaap_OtherNonoperatingIncomeExpense" xmlns="http://www.xbrl.org/2003/linkbase" />
    <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" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_OtherNonoperatingIncomeExpense_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Other Nonoperating Income (Expense)</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_OtherNonoperatingIncomeExpense_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Other</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NonoperatingIncomeExpense" xlink:label="us-gaap_NonoperatingIncomeExpense" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_NonoperatingIncomeExpense" xlink:to="us-gaap_NonoperatingIncomeExpense_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_NonoperatingIncomeExpense_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Nonoperating Income (Expense)</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:label="us-gaap_NonoperatingIncomeExpense_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Other income (expense)</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" xlink:label="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" xmlns="http://www.xbrl.org/2003/linkbase" />
    <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" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Income (Loss) from Continuing Operations before Income Taxes, Noncontrolling Interest</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:label="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">INCOME BEFORE INCOME TAXES</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeTaxExpenseBenefit" xlink:label="us-gaap_IncomeTaxExpenseBenefit" xmlns="http://www.xbrl.org/2003/linkbase" />
    <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" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_IncomeTaxExpenseBenefit_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Income Tax Expense (Benefit)</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_IncomeTaxExpenseBenefit_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">PROVISION FOR INCOME TAXES</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NetIncomeLoss" xlink:label="us-gaap_NetIncomeLoss" xmlns="http://www.xbrl.org/2003/linkbase" />
    <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" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:label="us-gaap_NetIncomeLoss_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">NET INCOME</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EarningsPerShareAbstract" xlink:label="us-gaap_EarningsPerShareAbstract" xmlns="http://www.xbrl.org/2003/linkbase" />
    <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" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_EarningsPerShareAbstract_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Earnings Per Share [Abstract]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_EarningsPerShareAbstract_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">INCOME PER SHARE:</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EarningsPerShareBasic" xlink:label="us-gaap_EarningsPerShareBasic" xmlns="http://www.xbrl.org/2003/linkbase" />
    <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" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_EarningsPerShareBasic_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Earnings Per Share, Basic</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_EarningsPerShareBasic_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Basic</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EarningsPerShareDiluted" xlink:label="us-gaap_EarningsPerShareDiluted" xmlns="http://www.xbrl.org/2003/linkbase" />
    <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" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_EarningsPerShareDiluted_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Earnings Per Share, Diluted</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_EarningsPerShareDiluted_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Diluted</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_WeightedAverageNumberOfSharesOutstandingAbstract" xlink:label="us-gaap_WeightedAverageNumberOfSharesOutstandingAbstract" xmlns="http://www.xbrl.org/2003/linkbase" />
    <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" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_WeightedAverageNumberOfSharesOutstandingAbstract_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Weighted Average Number of Shares Outstanding, Diluted [Abstract]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_WeightedAverageNumberOfSharesOutstandingAbstract_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">SHARES USED IN COMPUTING INCOME PER SHARE:</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_WeightedAverageNumberOfSharesOutstandingBasic" xlink:label="us-gaap_WeightedAverageNumberOfSharesOutstandingBasic" xmlns="http://www.xbrl.org/2003/linkbase" />
    <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" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_WeightedAverageNumberOfSharesOutstandingBasic_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Weighted Average Number of Shares Outstanding, Basic</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_WeightedAverageNumberOfSharesOutstandingBasic_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Basic</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_WeightedAverageNumberOfSharesOutstandingBasic_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Shares used in computing earnings per share-basic</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding" xlink:label="us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding" xmlns="http://www.xbrl.org/2003/linkbase" />
    <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" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Weighted Average Number of Shares Outstanding, Diluted</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Diluted</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:label="us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Shares used in computing earnings per share-diluted</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StatementOfStockholdersEquityAbstract" xlink:label="us-gaap_StatementOfStockholdersEquityAbstract" xmlns="http://www.xbrl.org/2003/linkbase" />
    <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" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_StatementOfStockholdersEquityAbstract_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">CONSOLIDATED STATEMENTS OF STOCKHOLDERS' EQUITY</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StatementEquityComponentsAxis" xlink:label="us-gaap_StatementEquityComponentsAxis" xmlns="http://www.xbrl.org/2003/linkbase" />
    <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" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_StatementEquityComponentsAxis_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Equity Components [Axis]</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EquityComponentDomain" xlink:label="us-gaap_EquityComponentDomain" xmlns="http://www.xbrl.org/2003/linkbase" />
    <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" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_EquityComponentDomain_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Equity Component [Domain]</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CommonStockMember" xlink:label="us-gaap_CommonStockMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <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" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_CommonStockMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Common Stock [Member]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_CommonStockMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Common Stock</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_TreasuryStockCommonMember" xlink:label="us-gaap_TreasuryStockCommonMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_TreasuryStockCommonMember" xlink:to="us-gaap_TreasuryStockCommonMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_TreasuryStockCommonMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Treasury Stock, Common [Member]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_TreasuryStockCommonMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Treasury Stock</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AdditionalPaidInCapitalMember" xlink:label="us-gaap_AdditionalPaidInCapitalMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <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" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_AdditionalPaidInCapitalMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Additional Paid-in Capital [Member]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_AdditionalPaidInCapitalMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Additional Paid-In Capital</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RetainedEarningsMember" xlink:label="us-gaap_RetainedEarningsMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <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" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_RetainedEarningsMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Retained Earnings [Member]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_RetainedEarningsMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Retained Earnings</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncreaseDecreaseInStockholdersEquityRollForward" xlink:label="us-gaap_IncreaseDecreaseInStockholdersEquityRollForward" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncreaseDecreaseInStockholdersEquityRollForward" xlink:to="us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Increase (Decrease) in Stockholders' Equity [Roll Forward]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Increase (Decrease) in Stockholders' Equity</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ProfitLoss" xlink:label="us-gaap_ProfitLoss" xmlns="http://www.xbrl.org/2003/linkbase" />
    <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" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ProfitLoss_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Net Income (Loss), Including Portion Attributable to Noncontrolling Interest</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_ProfitLoss_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Net income</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_ProfitLoss_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Net income</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StockIssuedDuringPeriodSharebasedCompensationAbstract" xlink:label="us-gaap_StockIssuedDuringPeriodSharebasedCompensationAbstract" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_StockIssuedDuringPeriodSharebasedCompensationAbstract" xlink:to="us-gaap_StockIssuedDuringPeriodSharebasedCompensationAbstract_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_StockIssuedDuringPeriodSharebasedCompensationAbstract_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Shares Granted or Issued, Share-Based Payment Arrangement [Abstract]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_StockIssuedDuringPeriodSharebasedCompensationAbstract_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Issuance of Stock:</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised" xlink:label="us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised" xmlns="http://www.xbrl.org/2003/linkbase" />
    <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" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Stock Issued During Period, Value, Stock Options Exercised</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Issuance of shares for options exercised</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised" xlink:label="us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised" xmlns="http://www.xbrl.org/2003/linkbase" />
    <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" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Exercises in Period</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Issuance of shares for options exercised (in shares)</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StockIssuedDuringPeriodValueShareBasedCompensation" xlink:label="us-gaap_StockIssuedDuringPeriodValueShareBasedCompensation" xmlns="http://www.xbrl.org/2003/linkbase" />
    <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" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_StockIssuedDuringPeriodValueShareBasedCompensation_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Shares Issued, Value, Share-Based Payment Arrangement, after Forfeiture</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_StockIssuedDuringPeriodValueShareBasedCompensation_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Issuance of restricted stock &amp; performance stock</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StockIssuedDuringPeriodSharesShareBasedCompensation" xlink:label="us-gaap_StockIssuedDuringPeriodSharesShareBasedCompensation" xmlns="http://www.xbrl.org/2003/linkbase" />
    <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" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_StockIssuedDuringPeriodSharesShareBasedCompensation_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Shares Issued, Shares, Share-Based Payment Arrangement, after Forfeiture</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_StockIssuedDuringPeriodSharesShareBasedCompensation_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Issuance of restricted stock &amp; performance stock (in shares)</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation" xlink:label="us-gaap_AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation" xlink:to="us-gaap_AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Share-Based Payment Arrangement, Decrease for Tax Withholding Obligation</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:label="us-gaap_AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Shares received in lieu of tax withholding on vested stock</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SharesPaidForTaxWithholdingForShareBasedCompensation" xlink:label="us-gaap_SharesPaidForTaxWithholdingForShareBasedCompensation" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SharesPaidForTaxWithholdingForShareBasedCompensation" xlink:to="us-gaap_SharesPaidForTaxWithholdingForShareBasedCompensation_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_SharesPaidForTaxWithholdingForShareBasedCompensation_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Share-Based Payment Arrangement, Shares Withheld for Tax Withholding Obligation</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:label="us-gaap_SharesPaidForTaxWithholdingForShareBasedCompensation_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Shares received in lieu of tax withholding on vested stock (in shares)</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" xlink:label="us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" xlink:to="us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">APIC, Share-Based Payment Arrangement, Increase for Cost Recognition</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Stock-based compensation</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DividendsCommonStockCash" xlink:label="us-gaap_DividendsCommonStockCash" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DividendsCommonStockCash" xlink:to="us-gaap_DividendsCommonStockCash_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_DividendsCommonStockCash_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Dividends, Common Stock, Cash</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:label="us-gaap_DividendsCommonStockCash_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Dividends</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_TreasuryStockValueAcquiredCostMethod" xlink:label="us-gaap_TreasuryStockValueAcquiredCostMethod" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_TreasuryStockValueAcquiredCostMethod" xlink:to="us-gaap_TreasuryStockValueAcquiredCostMethod_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_TreasuryStockValueAcquiredCostMethod_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Treasury Stock, Value, Acquired, Cost Method</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:label="us-gaap_TreasuryStockValueAcquiredCostMethod_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Share repurchase</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_TreasuryStockSharesAcquired" xlink:label="us-gaap_TreasuryStockSharesAcquired" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_TreasuryStockSharesAcquired" xlink:to="us-gaap_TreasuryStockSharesAcquired_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_TreasuryStockSharesAcquired_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Treasury Stock, Shares, Acquired</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:label="us-gaap_TreasuryStockSharesAcquired_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Share repurchase (in shares)</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_TreasuryStockSharesAcquired_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Share repurchase (in shares)</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CommonStockDividendsPerShareDeclared" xlink:label="us-gaap_CommonStockDividendsPerShareDeclared" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CommonStockDividendsPerShareDeclared" xlink:to="us-gaap_CommonStockDividendsPerShareDeclared_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_CommonStockDividendsPerShareDeclared_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Common Stock, Dividends, Per Share, Declared</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_CommonStockDividendsPerShareDeclared_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Dividends (per share)</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StatementOfCashFlowsAbstract" xlink:label="us-gaap_StatementOfCashFlowsAbstract" xmlns="http://www.xbrl.org/2003/linkbase" />
    <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" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_StatementOfCashFlowsAbstract_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">CONSOLIDATED STATEMENTS OF CASH FLOWS</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract" xlink:label="us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract" xmlns="http://www.xbrl.org/2003/linkbase" />
    <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" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Net Cash Provided by (Used in) Operating Activities [Abstract]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">CASH FLOWS FROM OPERATING ACTIVITIES:</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:label="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xmlns="http://www.xbrl.org/2003/linkbase" />
    <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" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Adjustments to Reconcile Net Income (Loss) to Cash Provided by (Used in) Operating Activities [Abstract]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Adjustments to reconcile net income to net cash provided by operating activities-</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AmortizationOfIntangibleAssets" xlink:label="us-gaap_AmortizationOfIntangibleAssets" xmlns="http://www.xbrl.org/2003/linkbase" />
    <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" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_AmortizationOfIntangibleAssets_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Amortization of Intangible Assets</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_AmortizationOfIntangibleAssets_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Amortization of identifiable intangible assets</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_Depreciation" xlink:label="us-gaap_Depreciation" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_Depreciation" xlink:to="us-gaap_Depreciation_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_Depreciation_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Depreciation</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_Depreciation_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Depreciation expense</label>
    <loc xlink:type="locator" xlink:href="fix-20240930.xsd#fix_ChangeInRightOfUseAssets" xlink:label="fix_ChangeInRightOfUseAssets" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="fix_ChangeInRightOfUseAssets" xlink:to="fix_ChangeInRightOfUseAssets_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="fix_ChangeInRightOfUseAssets_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Amount of change in right-of-use assets.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="fix_ChangeInRightOfUseAssets_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Change in Right of Use Assets</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="fix_ChangeInRightOfUseAssets_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Change in right-of-use assets</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ProvisionForDoubtfulAccounts" xlink:label="us-gaap_ProvisionForDoubtfulAccounts" xmlns="http://www.xbrl.org/2003/linkbase" />
    <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" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ProvisionForDoubtfulAccounts_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Accounts Receivable, Credit Loss Expense (Reversal)</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_ProvisionForDoubtfulAccounts_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Bad debt expense</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredIncomeTaxExpenseBenefit" xlink:label="us-gaap_DeferredIncomeTaxExpenseBenefit" xmlns="http://www.xbrl.org/2003/linkbase" />
    <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" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_DeferredIncomeTaxExpenseBenefit_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Deferred Income Tax Expense (Benefit)</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_DeferredIncomeTaxExpenseBenefit_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Deferred tax provision (benefit)</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AmortizationOfFinancingCosts" xlink:label="us-gaap_AmortizationOfFinancingCosts" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AmortizationOfFinancingCosts" xlink:to="us-gaap_AmortizationOfFinancingCosts_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_AmortizationOfFinancingCosts_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Amortization of Debt Issuance Costs</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_AmortizationOfFinancingCosts_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Amortization of debt financing costs</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_GainLossOnSaleOfPropertyPlantEquipment" xlink:label="us-gaap_GainLossOnSaleOfPropertyPlantEquipment" xmlns="http://www.xbrl.org/2003/linkbase" />
    <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" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_GainLossOnSaleOfPropertyPlantEquipment_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Gain (Loss) on Disposition of Property Plant Equipment</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:label="us-gaap_GainLossOnSaleOfPropertyPlantEquipment_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Gain on sale of assets</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensation" xlink:label="us-gaap_ShareBasedCompensation" xmlns="http://www.xbrl.org/2003/linkbase" />
    <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" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ShareBasedCompensation_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Share-Based Payment Arrangement, Noncash Expense</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_ShareBasedCompensation_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Stock-based compensation</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncreaseDecreaseInOperatingCapitalAbstract" xlink:label="us-gaap_IncreaseDecreaseInOperatingCapitalAbstract" xmlns="http://www.xbrl.org/2003/linkbase" />
    <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" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_IncreaseDecreaseInOperatingCapitalAbstract_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Increase (Decrease) in Operating Capital [Abstract]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_IncreaseDecreaseInOperatingCapitalAbstract_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Changes in operating assets and liabilities, net of effects of acquisitions and divestitures-</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncreaseDecreaseInOperatingAssetsAbstract" xlink:label="us-gaap_IncreaseDecreaseInOperatingAssetsAbstract" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncreaseDecreaseInOperatingAssetsAbstract" xlink:to="us-gaap_IncreaseDecreaseInOperatingAssetsAbstract_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_IncreaseDecreaseInOperatingAssetsAbstract_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Increase (Decrease) in Operating Assets [Abstract]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_IncreaseDecreaseInOperatingAssetsAbstract_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">(Increase) decrease in-</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncreaseDecreaseInAccountsReceivable" xlink:label="us-gaap_IncreaseDecreaseInAccountsReceivable" xmlns="http://www.xbrl.org/2003/linkbase" />
    <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" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_IncreaseDecreaseInAccountsReceivable_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Increase (Decrease) in Accounts Receivable</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:label="us-gaap_IncreaseDecreaseInAccountsReceivable_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Receivables, net</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncreaseDecreaseInInventories" xlink:label="us-gaap_IncreaseDecreaseInInventories" xmlns="http://www.xbrl.org/2003/linkbase" />
    <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" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_IncreaseDecreaseInInventories_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Increase (Decrease) in Inventories</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:label="us-gaap_IncreaseDecreaseInInventories_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Inventories</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets" xlink:label="us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets" xmlns="http://www.xbrl.org/2003/linkbase" />
    <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" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Increase (Decrease) in Prepaid Expense and Other Assets</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:label="us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Prepaid expenses and other current assets</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncreaseDecreaseInContractWithCustomerAsset" xlink:label="us-gaap_IncreaseDecreaseInContractWithCustomerAsset" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncreaseDecreaseInContractWithCustomerAsset" xlink:to="us-gaap_IncreaseDecreaseInContractWithCustomerAsset_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_IncreaseDecreaseInContractWithCustomerAsset_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Increase (Decrease) in Contract with Customer, Asset</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:label="us-gaap_IncreaseDecreaseInContractWithCustomerAsset_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Costs and estimated earnings in excess of billings and unbilled accounts receivable</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncreaseDecreaseInOtherOperatingAssets" xlink:label="us-gaap_IncreaseDecreaseInOtherOperatingAssets" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncreaseDecreaseInOtherOperatingAssets" xlink:to="us-gaap_IncreaseDecreaseInOtherOperatingAssets_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_IncreaseDecreaseInOtherOperatingAssets_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Increase (Decrease) in Other Operating Assets</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:label="us-gaap_IncreaseDecreaseInOtherOperatingAssets_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Other noncurrent assets</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncreaseDecreaseInOperatingLiabilitiesAbstract" xlink:label="us-gaap_IncreaseDecreaseInOperatingLiabilitiesAbstract" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncreaseDecreaseInOperatingLiabilitiesAbstract" xlink:to="us-gaap_IncreaseDecreaseInOperatingLiabilitiesAbstract_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_IncreaseDecreaseInOperatingLiabilitiesAbstract_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Increase (Decrease) in Operating Liabilities [Abstract]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_IncreaseDecreaseInOperatingLiabilitiesAbstract_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Increase (decrease) in-</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncreaseDecreaseInAccountsPayableAndAccruedLiabilities" xlink:label="us-gaap_IncreaseDecreaseInAccountsPayableAndAccruedLiabilities" xmlns="http://www.xbrl.org/2003/linkbase" />
    <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" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_IncreaseDecreaseInAccountsPayableAndAccruedLiabilities_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Increase (Decrease) in Accounts Payable and Accrued Liabilities</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_IncreaseDecreaseInAccountsPayableAndAccruedLiabilities_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Accounts payable and accrued liabilities</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncreaseDecreaseInContractWithCustomerLiability" xlink:label="us-gaap_IncreaseDecreaseInContractWithCustomerLiability" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncreaseDecreaseInContractWithCustomerLiability" xlink:to="us-gaap_IncreaseDecreaseInContractWithCustomerLiability_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_IncreaseDecreaseInContractWithCustomerLiability_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Increase (Decrease) in Contract with Customer, Liability</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_IncreaseDecreaseInContractWithCustomerLiability_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Billings in excess of costs and estimated earnings and deferred revenue</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncreaseDecreaseInOtherOperatingLiabilities" xlink:label="us-gaap_IncreaseDecreaseInOtherOperatingLiabilities" xmlns="http://www.xbrl.org/2003/linkbase" />
    <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" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_IncreaseDecreaseInOtherOperatingLiabilities_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Increase (Decrease) in Other Operating Liabilities</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_IncreaseDecreaseInOtherOperatingLiabilities_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Other long-term liabilities</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:label="us-gaap_NetCashProvidedByUsedInOperatingActivities" xmlns="http://www.xbrl.org/2003/linkbase" />
    <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" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_NetCashProvidedByUsedInOperatingActivities_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Net Cash Provided by (Used in) Operating Activities</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:label="us-gaap_NetCashProvidedByUsedInOperatingActivities_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Net cash provided by operating activities</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract" xlink:label="us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract" xmlns="http://www.xbrl.org/2003/linkbase" />
    <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" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Net Cash Provided by (Used in) Investing Activities [Abstract]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">CASH FLOWS FROM INVESTING ACTIVITIES:</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PaymentsToAcquirePropertyPlantAndEquipment" xlink:label="us-gaap_PaymentsToAcquirePropertyPlantAndEquipment" xmlns="http://www.xbrl.org/2003/linkbase" />
    <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" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_PaymentsToAcquirePropertyPlantAndEquipment_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Payments to Acquire Property, Plant, and Equipment</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:label="us-gaap_PaymentsToAcquirePropertyPlantAndEquipment_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Purchases of property and equipment</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ProceedsFromSaleOfPropertyPlantAndEquipment" xlink:label="us-gaap_ProceedsFromSaleOfPropertyPlantAndEquipment" xmlns="http://www.xbrl.org/2003/linkbase" />
    <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" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ProceedsFromSaleOfPropertyPlantAndEquipment_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Proceeds from Sale of Property, Plant, and Equipment</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_ProceedsFromSaleOfPropertyPlantAndEquipment_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Proceeds from sales of property and equipment</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired" xlink:label="us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired" xlink:to="us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Payments to Acquire Businesses, Net of Cash Acquired</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:label="us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Cash paid for acquisitions, net of cash acquired</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PaymentsToAcquireInvestments" xlink:label="us-gaap_PaymentsToAcquireInvestments" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PaymentsToAcquireInvestments" xlink:to="us-gaap_PaymentsToAcquireInvestments_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_PaymentsToAcquireInvestments_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Payments to Acquire Investments</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:label="us-gaap_PaymentsToAcquireInvestments_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Payments for investments</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NetCashProvidedByUsedInInvestingActivities" xlink:label="us-gaap_NetCashProvidedByUsedInInvestingActivities" xmlns="http://www.xbrl.org/2003/linkbase" />
    <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" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_NetCashProvidedByUsedInInvestingActivities_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Net Cash Provided by (Used in) Investing Activities</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:label="us-gaap_NetCashProvidedByUsedInInvestingActivities_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Net cash used in investing activities</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract" xlink:label="us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract" xmlns="http://www.xbrl.org/2003/linkbase" />
    <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" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Net Cash Provided by (Used in) Financing Activities [Abstract]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">CASH FLOWS FROM FINANCING ACTIVITIES:</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ProceedsFromLongTermLinesOfCredit" xlink:label="us-gaap_ProceedsFromLongTermLinesOfCredit" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ProceedsFromLongTermLinesOfCredit" xlink:to="us-gaap_ProceedsFromLongTermLinesOfCredit_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ProceedsFromLongTermLinesOfCredit_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Proceeds from Long-Term Lines of Credit</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_ProceedsFromLongTermLinesOfCredit_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Proceeds from revolving credit facility</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RepaymentsOfLongTermLinesOfCredit" xlink:label="us-gaap_RepaymentsOfLongTermLinesOfCredit" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_RepaymentsOfLongTermLinesOfCredit" xlink:to="us-gaap_RepaymentsOfLongTermLinesOfCredit_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_RepaymentsOfLongTermLinesOfCredit_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Repayments of Long-Term Lines of Credit</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:label="us-gaap_RepaymentsOfLongTermLinesOfCredit_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Payments on revolving credit facility</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ProceedsFromOtherDebt" xlink:label="us-gaap_ProceedsFromOtherDebt" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ProceedsFromOtherDebt" xlink:to="us-gaap_ProceedsFromOtherDebt_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ProceedsFromOtherDebt_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Proceeds from Other Debt</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_ProceedsFromOtherDebt_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Proceeds from other debt</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RepaymentsOfOtherDebt" xlink:label="us-gaap_RepaymentsOfOtherDebt" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_RepaymentsOfOtherDebt" xlink:to="us-gaap_RepaymentsOfOtherDebt_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_RepaymentsOfOtherDebt_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Repayments of Other Debt</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:label="us-gaap_RepaymentsOfOtherDebt_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Payments on other debt</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PaymentsOfDividendsCommonStock" xlink:label="us-gaap_PaymentsOfDividendsCommonStock" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PaymentsOfDividendsCommonStock" xlink:to="us-gaap_PaymentsOfDividendsCommonStock_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_PaymentsOfDividendsCommonStock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Payments of Ordinary Dividends, Common Stock</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:label="us-gaap_PaymentsOfDividendsCommonStock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Payments of dividends to stockholders</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PaymentsForRepurchaseOfCommonStock" xlink:label="us-gaap_PaymentsForRepurchaseOfCommonStock" xmlns="http://www.xbrl.org/2003/linkbase" />
    <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" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_PaymentsForRepurchaseOfCommonStock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Payments for Repurchase of Common Stock</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:label="us-gaap_PaymentsForRepurchaseOfCommonStock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Share repurchases</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_PaymentsForRepurchaseOfCommonStock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Share repurchase</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PaymentsRelatedToTaxWithholdingForShareBasedCompensation" xlink:label="us-gaap_PaymentsRelatedToTaxWithholdingForShareBasedCompensation" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PaymentsRelatedToTaxWithholdingForShareBasedCompensation" xlink:to="us-gaap_PaymentsRelatedToTaxWithholdingForShareBasedCompensation_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_PaymentsRelatedToTaxWithholdingForShareBasedCompensation_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Payment, Tax Withholding, Share-Based Payment Arrangement</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:label="us-gaap_PaymentsRelatedToTaxWithholdingForShareBasedCompensation_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Shares received in lieu of tax withholding</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ProceedsFromStockOptionsExercised" xlink:label="us-gaap_ProceedsFromStockOptionsExercised" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ProceedsFromStockOptionsExercised" xlink:to="us-gaap_ProceedsFromStockOptionsExercised_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ProceedsFromStockOptionsExercised_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Proceeds from Stock Options Exercised</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_ProceedsFromStockOptionsExercised_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Proceeds from exercise of options</label>
    <loc xlink:type="locator" xlink:href="fix-20240930.xsd#fix_DeferredAcquisitionPayments" xlink:label="fix_DeferredAcquisitionPayments" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="fix_DeferredAcquisitionPayments" xlink:to="fix_DeferredAcquisitionPayments_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="fix_DeferredAcquisitionPayments_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Deferred acquisition payments.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="fix_DeferredAcquisitionPayments_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Deferred Acquisition Payments</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:label="fix_DeferredAcquisitionPayments_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Deferred acquisition payments</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PaymentForContingentConsiderationLiabilityFinancingActivities" xlink:label="us-gaap_PaymentForContingentConsiderationLiabilityFinancingActivities" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PaymentForContingentConsiderationLiabilityFinancingActivities" xlink:to="us-gaap_PaymentForContingentConsiderationLiabilityFinancingActivities_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_PaymentForContingentConsiderationLiabilityFinancingActivities_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Payment for Contingent Consideration Liability, Financing Activities</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:label="us-gaap_PaymentForContingentConsiderationLiabilityFinancingActivities_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Payments for contingent consideration arrangements</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NetCashProvidedByUsedInFinancingActivities" xlink:label="us-gaap_NetCashProvidedByUsedInFinancingActivities" xmlns="http://www.xbrl.org/2003/linkbase" />
    <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" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_NetCashProvidedByUsedInFinancingActivities_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Net Cash Provided by (Used in) Financing Activities</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:label="us-gaap_NetCashProvidedByUsedInFinancingActivities_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Net cash used in financing activities</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect" xlink:label="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect" xmlns="http://www.xbrl.org/2003/linkbase" />
    <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" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Cash, Cash Equivalents, Restricted Cash, and Restricted Cash Equivalents, Period Increase (Decrease), Including Exchange Rate Effect</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:label="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">NET INCREASE IN CASH AND CASH EQUIVALENTS</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" xlink:label="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" xlink:to="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Cash, Cash Equivalents, Restricted Cash, and Restricted Cash Equivalents</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel" xlink:label="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">CASH AND CASH EQUIVALENTS, end of period</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel" xlink:label="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">CASH AND CASH EQUIVALENTS, beginning of period</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OrganizationConsolidationAndPresentationOfFinancialStatementsAbstract" xlink:label="us-gaap_OrganizationConsolidationAndPresentationOfFinancialStatementsAbstract" xmlns="http://www.xbrl.org/2003/linkbase" />
    <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" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_OrganizationConsolidationAndPresentationOfFinancialStatementsAbstract_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Business and Organization</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NatureOfOperations" xlink:label="us-gaap_NatureOfOperations" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_NatureOfOperations" xlink:to="us-gaap_NatureOfOperations_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_NatureOfOperations_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Nature of Operations [Text Block]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_NatureOfOperations_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Business and Organization</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AccountingPoliciesAbstract" xlink:label="us-gaap_AccountingPoliciesAbstract" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AccountingPoliciesAbstract" xlink:to="us-gaap_AccountingPoliciesAbstract_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_AccountingPoliciesAbstract_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Summary of Significant Accounting Policies and Estimates</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BasisOfPresentationAndSignificantAccountingPoliciesTextBlock" xlink:label="us-gaap_BasisOfPresentationAndSignificantAccountingPoliciesTextBlock" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BasisOfPresentationAndSignificantAccountingPoliciesTextBlock" xlink:to="us-gaap_BasisOfPresentationAndSignificantAccountingPoliciesTextBlock_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_BasisOfPresentationAndSignificantAccountingPoliciesTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Basis of Presentation and Significant Accounting Policies [Text Block]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_BasisOfPresentationAndSignificantAccountingPoliciesTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Summary of Significant Accounting Policies and Estimates</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RevenueFromContractWithCustomerAbstract" xlink:label="us-gaap_RevenueFromContractWithCustomerAbstract" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_RevenueFromContractWithCustomerAbstract" xlink:to="us-gaap_RevenueFromContractWithCustomerAbstract_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_RevenueFromContractWithCustomerAbstract_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Revenue from Contracts with Customers</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RevenueFromContractWithCustomerTextBlock" xlink:label="us-gaap_RevenueFromContractWithCustomerTextBlock" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_RevenueFromContractWithCustomerTextBlock" xlink:to="us-gaap_RevenueFromContractWithCustomerTextBlock_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_RevenueFromContractWithCustomerTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Revenue from Contract with Customer [Text Block]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_RevenueFromContractWithCustomerTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Revenue from Contracts with Customers</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FairValueDisclosuresAbstract" xlink:label="us-gaap_FairValueDisclosuresAbstract" xmlns="http://www.xbrl.org/2003/linkbase" />
    <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" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_FairValueDisclosuresAbstract_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Fair Value Measurements</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FairValueDisclosuresTextBlock" xlink:label="us-gaap_FairValueDisclosuresTextBlock" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FairValueDisclosuresTextBlock" xlink:to="us-gaap_FairValueDisclosuresTextBlock_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_FairValueDisclosuresTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Fair Value Disclosures [Text Block]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_FairValueDisclosuresTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Fair Value Measurements</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessCombinationsAbstract" xlink:label="us-gaap_BusinessCombinationsAbstract" xmlns="http://www.xbrl.org/2003/linkbase" />
    <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" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_BusinessCombinationsAbstract_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Acquisitions</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessCombinationDisclosureTextBlock" xlink:label="us-gaap_BusinessCombinationDisclosureTextBlock" xmlns="http://www.xbrl.org/2003/linkbase" />
    <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" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_BusinessCombinationDisclosureTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Business Combination Disclosure [Text Block]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_BusinessCombinationDisclosureTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Acquisitions</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract" xlink:label="us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract" xmlns="http://www.xbrl.org/2003/linkbase" />
    <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" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Goodwill and Identifiable Intangible Assets, Net</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_GoodwillAndIntangibleAssetsDisclosureTextBlock" xlink:label="us-gaap_GoodwillAndIntangibleAssetsDisclosureTextBlock" xmlns="http://www.xbrl.org/2003/linkbase" />
    <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" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_GoodwillAndIntangibleAssetsDisclosureTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Goodwill and Intangible Assets Disclosure [Text Block]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_GoodwillAndIntangibleAssetsDisclosureTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Goodwill and Identifiable Intangible Assets, Net</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DebtDisclosureAbstract" xlink:label="us-gaap_DebtDisclosureAbstract" xmlns="http://www.xbrl.org/2003/linkbase" />
    <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" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_DebtDisclosureAbstract_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Debt Obligations</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DebtDisclosureTextBlock" xlink:label="us-gaap_DebtDisclosureTextBlock" xmlns="http://www.xbrl.org/2003/linkbase" />
    <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" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_DebtDisclosureTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Debt Disclosure [Text Block]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_DebtDisclosureTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Debt Obligations</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LeasesAbstract" xlink:label="us-gaap_LeasesAbstract" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LeasesAbstract" xlink:to="us-gaap_LeasesAbstract_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_LeasesAbstract_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Leases</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LesseeOperatingLeasesTextBlock" xlink:label="us-gaap_LesseeOperatingLeasesTextBlock" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LesseeOperatingLeasesTextBlock" xlink:to="us-gaap_LesseeOperatingLeasesTextBlock_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_LesseeOperatingLeasesTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Lessee, Operating Leases [Text Block]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_LesseeOperatingLeasesTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Leases</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CommitmentsAndContingenciesDisclosureAbstract" xlink:label="us-gaap_CommitmentsAndContingenciesDisclosureAbstract" xmlns="http://www.xbrl.org/2003/linkbase" />
    <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" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_CommitmentsAndContingenciesDisclosureAbstract_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Commitments and Contingencies</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CommitmentsAndContingenciesDisclosureTextBlock" xlink:label="us-gaap_CommitmentsAndContingenciesDisclosureTextBlock" xmlns="http://www.xbrl.org/2003/linkbase" />
    <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" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_CommitmentsAndContingenciesDisclosureTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Commitments and Contingencies Disclosure [Text Block]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_CommitmentsAndContingenciesDisclosureTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Commitments and Contingencies</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StockholdersEquityNoteAbstract" xlink:label="us-gaap_StockholdersEquityNoteAbstract" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_StockholdersEquityNoteAbstract" xlink:to="us-gaap_StockholdersEquityNoteAbstract_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_StockholdersEquityNoteAbstract_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Stockholders' Equity</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StockholdersEquityNoteDisclosureTextBlock" xlink:label="us-gaap_StockholdersEquityNoteDisclosureTextBlock" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_StockholdersEquityNoteDisclosureTextBlock" xlink:to="us-gaap_StockholdersEquityNoteDisclosureTextBlock_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_StockholdersEquityNoteDisclosureTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Equity [Text Block]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_StockholdersEquityNoteDisclosureTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Stockholders' Equity</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SegmentReportingAbstract" xlink:label="us-gaap_SegmentReportingAbstract" xmlns="http://www.xbrl.org/2003/linkbase" />
    <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" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_SegmentReportingAbstract_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Segment Information</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SegmentReportingDisclosureTextBlock" xlink:label="us-gaap_SegmentReportingDisclosureTextBlock" xmlns="http://www.xbrl.org/2003/linkbase" />
    <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" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_SegmentReportingDisclosureTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Segment Reporting Disclosure [Text Block]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_SegmentReportingDisclosureTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Segment Information</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BasisOfAccountingPolicyPolicyTextBlock" xlink:label="us-gaap_BasisOfAccountingPolicyPolicyTextBlock" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BasisOfAccountingPolicyPolicyTextBlock" xlink:to="us-gaap_BasisOfAccountingPolicyPolicyTextBlock_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_BasisOfAccountingPolicyPolicyTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Basis of Accounting, Policy [Policy Text Block]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_BasisOfAccountingPolicyPolicyTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Basis of Presentation</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_UseOfEstimates" xlink:label="us-gaap_UseOfEstimates" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_UseOfEstimates" xlink:to="us-gaap_UseOfEstimates_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_UseOfEstimates_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Use of Estimates, Policy [Policy Text Block]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_UseOfEstimates_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Use of Estimates</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock" xlink:label="us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock" xmlns="http://www.xbrl.org/2003/linkbase" />
    <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" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">New Accounting Pronouncements, Policy [Policy Text Block]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Recent Accounting Pronouncements</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RevenueFromContractWithCustomerPolicyTextBlock" xlink:label="us-gaap_RevenueFromContractWithCustomerPolicyTextBlock" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_RevenueFromContractWithCustomerPolicyTextBlock" xlink:to="us-gaap_RevenueFromContractWithCustomerPolicyTextBlock_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_RevenueFromContractWithCustomerPolicyTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Revenue from Contract with Customer [Policy Text Block]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_RevenueFromContractWithCustomerPolicyTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Revenue Recognition</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CreditLossFinancialInstrumentPolicyTextBlock" xlink:label="us-gaap_CreditLossFinancialInstrumentPolicyTextBlock" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CreditLossFinancialInstrumentPolicyTextBlock" xlink:to="us-gaap_CreditLossFinancialInstrumentPolicyTextBlock_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_CreditLossFinancialInstrumentPolicyTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Credit Loss, Financial Instrument [Policy Text Block]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_CreditLossFinancialInstrumentPolicyTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Accounts Receivable and Allowance for Credit Losses</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_TradeAndOtherAccountsReceivableUnbilledReceivablesPolicy" xlink:label="us-gaap_TradeAndOtherAccountsReceivableUnbilledReceivablesPolicy" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_TradeAndOtherAccountsReceivableUnbilledReceivablesPolicy" xlink:to="us-gaap_TradeAndOtherAccountsReceivableUnbilledReceivablesPolicy_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_TradeAndOtherAccountsReceivableUnbilledReceivablesPolicy_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Trade and Other Accounts Receivable, Unbilled Receivables, Policy [Policy Text Block]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_TradeAndOtherAccountsReceivableUnbilledReceivablesPolicy_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Unbilled Accounts Receivable</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeTaxPolicyTextBlock" xlink:label="us-gaap_IncomeTaxPolicyTextBlock" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncomeTaxPolicyTextBlock" xlink:to="us-gaap_IncomeTaxPolicyTextBlock_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_IncomeTaxPolicyTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Income Tax, Policy [Policy Text Block]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_IncomeTaxPolicyTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Income Taxes</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FairValueOfFinancialInstrumentsPolicy" xlink:label="us-gaap_FairValueOfFinancialInstrumentsPolicy" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FairValueOfFinancialInstrumentsPolicy" xlink:to="us-gaap_FairValueOfFinancialInstrumentsPolicy_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_FairValueOfFinancialInstrumentsPolicy_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Fair Value of Financial Instruments, Policy [Policy Text Block]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_FairValueOfFinancialInstrumentsPolicy_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Financial Instruments</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValuePolicyTextBlock" xlink:label="us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValuePolicyTextBlock" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValuePolicyTextBlock" xlink:to="us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValuePolicyTextBlock_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValuePolicyTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Equity Securities without Readily Determinable Fair Value [Policy Text Block]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValuePolicyTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Investments</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LesseeLeasesPolicyTextBlock" xlink:label="us-gaap_LesseeLeasesPolicyTextBlock" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LesseeLeasesPolicyTextBlock" xlink:to="us-gaap_LesseeLeasesPolicyTextBlock_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_LesseeLeasesPolicyTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Lessee, Leases [Policy Text Block]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_LesseeLeasesPolicyTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Leases</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DisaggregationOfRevenueTableTextBlock" xlink:label="us-gaap_DisaggregationOfRevenueTableTextBlock" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DisaggregationOfRevenueTableTextBlock" xlink:to="us-gaap_DisaggregationOfRevenueTableTextBlock_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_DisaggregationOfRevenueTableTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Disaggregation of Revenue [Table Text Block]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_DisaggregationOfRevenueTableTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Schedule of disaggregation of revenue</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ContractWithCustomerAssetAndLiabilityTableTextBlock" xlink:label="us-gaap_ContractWithCustomerAssetAndLiabilityTableTextBlock" xmlns="http://www.xbrl.org/2003/linkbase" />
    <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" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ContractWithCustomerAssetAndLiabilityTableTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Contract with Customer, Contract Asset, Contract Liability, and Receivable [Table Text Block]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_ContractWithCustomerAssetAndLiabilityTableTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Schedule of contract assets and liabilities</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfFairValueAssetsAndLiabilitiesMeasuredOnRecurringBasisTableTextBlock" xlink:label="us-gaap_ScheduleOfFairValueAssetsAndLiabilitiesMeasuredOnRecurringBasisTableTextBlock" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfFairValueAssetsAndLiabilitiesMeasuredOnRecurringBasisTableTextBlock" xlink:to="us-gaap_ScheduleOfFairValueAssetsAndLiabilitiesMeasuredOnRecurringBasisTableTextBlock_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ScheduleOfFairValueAssetsAndLiabilitiesMeasuredOnRecurringBasisTableTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Schedule of Fair Value, Assets and Liabilities Measured on Recurring Basis [Table Text Block]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_ScheduleOfFairValueAssetsAndLiabilitiesMeasuredOnRecurringBasisTableTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Summary of fair values and levels within the fair value hierarchy in which the fair value measurements fall for assets and liabilities measured on a recurring basis</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationTextBlock" xlink:label="us-gaap_FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationTextBlock" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationTextBlock" xlink:to="us-gaap_FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationTextBlock_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Fair Value, Assets Measured on Recurring Basis, Unobservable Input Reconciliation [Table Text Block]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Schedule of reconciliation of the fair value of contingent earn-out obligations that use significant unobservable inputs (Level 3)</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable" xlink:label="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable" xmlns="http://www.xbrl.org/2003/linkbase" />
    <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" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Schedule of Business Acquisitions, by Acquisition [Table]</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessAcquisitionAxis" xlink:label="us-gaap_BusinessAcquisitionAxis" xmlns="http://www.xbrl.org/2003/linkbase" />
    <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" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_BusinessAcquisitionAxis_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Business Acquisition [Axis]</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessAcquisitionAcquireeDomain" xlink:label="us-gaap_BusinessAcquisitionAcquireeDomain" xmlns="http://www.xbrl.org/2003/linkbase" />
    <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" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_BusinessAcquisitionAcquireeDomain_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Business Acquisition, Acquiree [Domain]</label>
    <loc xlink:type="locator" xlink:href="fix-20240930.xsd#fix_SummitIndustrialConstructionLlcMember" xlink:label="fix_SummitIndustrialConstructionLlcMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="fix_SummitIndustrialConstructionLlcMember" xlink:to="fix_SummitIndustrialConstructionLlcMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="fix_SummitIndustrialConstructionLlcMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Represents information relating to Summit Industrial Construction, LLC Summit Houston Texas.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="fix_SummitIndustrialConstructionLlcMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Summit Industrial Construction, LLC [Member]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="fix_SummitIndustrialConstructionLlcMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Summit Texas</label>
    <loc xlink:type="locator" xlink:href="fix-20240930.xsd#fix_JSMechanicalContractorsIncMember" xlink:label="fix_JSMechanicalContractorsIncMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="fix_JSMechanicalContractorsIncMember" xlink:to="fix_JSMechanicalContractorsIncMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="fix_JSMechanicalContractorsIncMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Represents information relating to J&amp;S Mechanical Contractors, Inc in West Jordan, Utah.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="fix_JSMechanicalContractorsIncMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">J&amp;S Mechanical Contractors, Inc [Member]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="fix_JSMechanicalContractorsIncMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">J&amp;S Utah</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessAcquisitionLineItems" xlink:label="us-gaap_BusinessAcquisitionLineItems" xmlns="http://www.xbrl.org/2003/linkbase" />
    <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" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_BusinessAcquisitionLineItems_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Business Acquisition [Line Items]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_BusinessAcquisitionLineItems_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Acquisitions</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTextBlock" xlink:label="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTextBlock" xmlns="http://www.xbrl.org/2003/linkbase" />
    <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" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Schedule of Business Acquisitions, by Acquisition [Table Text Block]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Schedule of acquisition date fair value of consideration transferred and the acquisition date fair value of the identifiable assets acquired and liabilities assumed, including an amount for goodwill</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfFiniteLivedIntangibleAssetsAcquiredAsPartOfBusinessCombinationTextBlock" xlink:label="us-gaap_ScheduleOfFiniteLivedIntangibleAssetsAcquiredAsPartOfBusinessCombinationTextBlock" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfFiniteLivedIntangibleAssetsAcquiredAsPartOfBusinessCombinationTextBlock" xlink:to="us-gaap_ScheduleOfFiniteLivedIntangibleAssetsAcquiredAsPartOfBusinessCombinationTextBlock_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ScheduleOfFiniteLivedIntangibleAssetsAcquiredAsPartOfBusinessCombinationTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Schedule of Finite-Lived Intangible Assets Acquired as Part of Business Combination [Table Text Block]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_ScheduleOfFiniteLivedIntangibleAssetsAcquiredAsPartOfBusinessCombinationTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Schedule of acquired intangible assets</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfGoodwillTextBlock" xlink:label="us-gaap_ScheduleOfGoodwillTextBlock" xmlns="http://www.xbrl.org/2003/linkbase" />
    <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" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ScheduleOfGoodwillTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Schedule of Goodwill [Table Text Block]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_ScheduleOfGoodwillTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Schedule of changes in the carrying amount of goodwill</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock" xlink:label="us-gaap_ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock" xlink:to="us-gaap_ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Schedule of Finite-Lived Intangible Assets, Future Amortization Expense [Table Text Block]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Schedule of future amortization expense of identifiable intangible assets</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DebtInstrumentAxis" xlink:label="us-gaap_DebtInstrumentAxis" xmlns="http://www.xbrl.org/2003/linkbase" />
    <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" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_DebtInstrumentAxis_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Debt Instrument [Axis]</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DebtInstrumentNameDomain" xlink:label="us-gaap_DebtInstrumentNameDomain" xmlns="http://www.xbrl.org/2003/linkbase" />
    <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" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_DebtInstrumentNameDomain_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Debt Instrument, Name [Domain]</label>
    <loc xlink:type="locator" xlink:href="fix-20240930.xsd#fix_SubordinateDebtAndPromissoryNoteMember" xlink:label="fix_SubordinateDebtAndPromissoryNoteMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="fix_SubordinateDebtAndPromissoryNoteMember" xlink:to="fix_SubordinateDebtAndPromissoryNoteMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="fix_SubordinateDebtAndPromissoryNoteMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">This element represents domestic or foreign subordinated debt and promissory note. Subordinated debt has a lower priority of repayment in liquidation of the entity's assets and promissory notes has a borrowing supported by a written promise to pay an obligation.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="fix_SubordinateDebtAndPromissoryNoteMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Notes to Former Owners</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfDebtTableTextBlock" xlink:label="us-gaap_ScheduleOfDebtTableTextBlock" xmlns="http://www.xbrl.org/2003/linkbase" />
    <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" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ScheduleOfDebtTableTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Schedule of Debt [Table Text Block]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_ScheduleOfDebtTableTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Schedule of components of debt obligations</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfMaturitiesOfLongTermDebtTableTextBlock" xlink:label="us-gaap_ScheduleOfMaturitiesOfLongTermDebtTableTextBlock" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfMaturitiesOfLongTermDebtTableTextBlock" xlink:to="us-gaap_ScheduleOfMaturitiesOfLongTermDebtTableTextBlock_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ScheduleOfMaturitiesOfLongTermDebtTableTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Schedule of Maturities of Long-Term Debt [Table Text Block]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_ScheduleOfMaturitiesOfLongTermDebtTableTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Schedule of future principal payments of notes to former owners</label>
    <loc xlink:type="locator" xlink:href="fix-20240930.xsd#fix_ScheduleOfAdditionalMarginsTableTextBlock" xlink:label="fix_ScheduleOfAdditionalMarginsTableTextBlock" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="fix_ScheduleOfAdditionalMarginsTableTextBlock" xlink:to="fix_ScheduleOfAdditionalMarginsTableTextBlock_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="fix_ScheduleOfAdditionalMarginsTableTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Tabular disclosure of the additional margins added to the reference rate to compute the variable rate on the debt instrument.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="fix_ScheduleOfAdditionalMarginsTableTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Schedule of Additional Margins [Table Text Block]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="fix_ScheduleOfAdditionalMarginsTableTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Summary of additional margins</label>
    <loc xlink:type="locator" xlink:href="fix-20240930.xsd#fix_ScheduleOfLeaseAssetsAndLiabilitiesTableTextBlock" xlink:label="fix_ScheduleOfLeaseAssetsAndLiabilitiesTableTextBlock" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="fix_ScheduleOfLeaseAssetsAndLiabilitiesTableTextBlock" xlink:to="fix_ScheduleOfLeaseAssetsAndLiabilitiesTableTextBlock_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="fix_ScheduleOfLeaseAssetsAndLiabilitiesTableTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Tabular disclosure of lease assets and liabilities.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="fix_ScheduleOfLeaseAssetsAndLiabilitiesTableTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Schedule of Lease Assets and Liabilities [Table Text Block]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="fix_ScheduleOfLeaseAssetsAndLiabilitiesTableTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Schedule of operating lease assets and liabilities</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LesseeOperatingLeaseLiabilityMaturityTableTextBlock" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityMaturityTableTextBlock" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LesseeOperatingLeaseLiabilityMaturityTableTextBlock" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityMaturityTableTextBlock_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityMaturityTableTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Lessee, Operating Lease, Liability, to be Paid, Maturity [Table Text Block]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityMaturityTableTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Schedule of maturities of lease liabilities</label>
    <loc xlink:type="locator" xlink:href="fix-20240930.xsd#fix_ScheduleOfSupplementalInformationRelatedToLeasesTableTextBlock" xlink:label="fix_ScheduleOfSupplementalInformationRelatedToLeasesTableTextBlock" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="fix_ScheduleOfSupplementalInformationRelatedToLeasesTableTextBlock" xlink:to="fix_ScheduleOfSupplementalInformationRelatedToLeasesTableTextBlock_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="fix_ScheduleOfSupplementalInformationRelatedToLeasesTableTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Tabular disclosure of supplemental information related to leases.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="fix_ScheduleOfSupplementalInformationRelatedToLeasesTableTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Schedule of Supplemental Information Related to Leases [Table Text Block]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="fix_ScheduleOfSupplementalInformationRelatedToLeasesTableTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Schedule of supplemental information related to leases</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfWeightedAverageNumberOfSharesTableTextBlock" xlink:label="us-gaap_ScheduleOfWeightedAverageNumberOfSharesTableTextBlock" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfWeightedAverageNumberOfSharesTableTextBlock" xlink:to="us-gaap_ScheduleOfWeightedAverageNumberOfSharesTableTextBlock_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ScheduleOfWeightedAverageNumberOfSharesTableTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Schedule of Weighted Average Number of Shares [Table Text Block]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_ScheduleOfWeightedAverageNumberOfSharesTableTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Reconciliation of number of shares outstanding with the number of shares used in computing basic and diluted earnings per share</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfSegmentReportingInformationBySegmentTextBlock" xlink:label="us-gaap_ScheduleOfSegmentReportingInformationBySegmentTextBlock" xmlns="http://www.xbrl.org/2003/linkbase" />
    <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" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ScheduleOfSegmentReportingInformationBySegmentTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Schedule of Segment Reporting Information, by Segment [Table Text Block]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_ScheduleOfSegmentReportingInformationBySegmentTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Summary of information about reportable segments</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeTaxExaminationTable" xlink:label="us-gaap_IncomeTaxExaminationTable" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncomeTaxExaminationTable" xlink:to="us-gaap_IncomeTaxExaminationTable_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_IncomeTaxExaminationTable_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Income Tax, Examination [Table]</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeTaxExaminationLineItems" xlink:label="us-gaap_IncomeTaxExaminationLineItems" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncomeTaxExaminationLineItems" xlink:to="us-gaap_IncomeTaxExaminationLineItems_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_IncomeTaxExaminationLineItems_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Income Tax Examination [Line Items]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_IncomeTaxExaminationLineItems_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Summary of Significant Accounting Policies and Estimates</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncreaseDecreaseInIncomeTaxesReceivable" xlink:label="us-gaap_IncreaseDecreaseInIncomeTaxesReceivable" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncreaseDecreaseInIncomeTaxesReceivable" xlink:to="us-gaap_IncreaseDecreaseInIncomeTaxesReceivable_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_IncreaseDecreaseInIncomeTaxesReceivable_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Increase (Decrease) in Income Taxes Receivable</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_IncreaseDecreaseInIncomeTaxesReceivable_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Refund claim for overpayment</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueAmount" xlink:label="us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueAmount" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueAmount" xlink:to="us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueAmount_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueAmount_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Equity Securities without Readily Determinable Fair Value, Amount</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueAmount_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Investment fair value</label>
    <loc xlink:type="locator" xlink:href="fix-20240930.xsd#fix_ContractWithCustomerPerformanceObligationSatisfiedInPreviousPeriodPercentage" xlink:label="fix_ContractWithCustomerPerformanceObligationSatisfiedInPreviousPeriodPercentage" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="fix_ContractWithCustomerPerformanceObligationSatisfiedInPreviousPeriodPercentage" xlink:to="fix_ContractWithCustomerPerformanceObligationSatisfiedInPreviousPeriodPercentage_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="fix_ContractWithCustomerPerformanceObligationSatisfiedInPreviousPeriodPercentage_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Percentage of revenue attributable to performance obligation satisfied or partially satisfied in previous reporting periods. Includes, but is not limited to, change in transaction price.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="fix_ContractWithCustomerPerformanceObligationSatisfiedInPreviousPeriodPercentage_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Contract with Customer, Performance Obligation Satisfied in Previous Period, Percentage</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="fix_ContractWithCustomerPerformanceObligationSatisfiedInPreviousPeriodPercentage_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Percentage impact on revenue from performance obligations satisfied in previous period</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DisaggregationOfRevenueTable" xlink:label="us-gaap_DisaggregationOfRevenueTable" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DisaggregationOfRevenueTable" xlink:to="us-gaap_DisaggregationOfRevenueTable_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_DisaggregationOfRevenueTable_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Disaggregation of Revenue [Table]</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_ProductOrServiceAxis" xlink:label="srt_ProductOrServiceAxis" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="srt_ProductOrServiceAxis" xlink:to="srt_ProductOrServiceAxis_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="srt_ProductOrServiceAxis_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Product and Service [Axis]</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_ProductsAndServicesDomain" xlink:label="srt_ProductsAndServicesDomain" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="srt_ProductsAndServicesDomain" xlink:to="srt_ProductsAndServicesDomain_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="srt_ProductsAndServicesDomain_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Product and Service [Domain]</label>
    <loc xlink:type="locator" xlink:href="fix-20240930.xsd#fix_MechanicalSegmentMember" xlink:label="fix_MechanicalSegmentMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="fix_MechanicalSegmentMember" xlink:to="fix_MechanicalSegmentMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="fix_MechanicalSegmentMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Mechanical Segment [Member]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="fix_MechanicalSegmentMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Mechanical Segment</label>
    <loc xlink:type="locator" xlink:href="fix-20240930.xsd#fix_ElectricalSegmentMember" xlink:label="fix_ElectricalSegmentMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="fix_ElectricalSegmentMember" xlink:to="fix_ElectricalSegmentMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="fix_ElectricalSegmentMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Electrical Segment [Member]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="fix_ElectricalSegmentMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Electrical Segment</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_MajorCustomersAxis" xlink:label="srt_MajorCustomersAxis" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="srt_MajorCustomersAxis" xlink:to="srt_MajorCustomersAxis_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="srt_MajorCustomersAxis_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Customer [Axis]</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_NameOfMajorCustomerDomain" xlink:label="srt_NameOfMajorCustomerDomain" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="srt_NameOfMajorCustomerDomain" xlink:to="srt_NameOfMajorCustomerDomain_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="srt_NameOfMajorCustomerDomain_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Customer [Domain]</label>
    <loc xlink:type="locator" xlink:href="fix-20240930.xsd#fix_TechnologyMember" xlink:label="fix_TechnologyMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="fix_TechnologyMember" xlink:to="fix_TechnologyMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="fix_TechnologyMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">This members stands for technology.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="fix_TechnologyMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Technology [Member]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="fix_TechnologyMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Technology</label>
    <loc xlink:type="locator" xlink:href="fix-20240930.xsd#fix_ManufacturingCustomerMember" xlink:label="fix_ManufacturingCustomerMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="fix_ManufacturingCustomerMember" xlink:to="fix_ManufacturingCustomerMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="fix_ManufacturingCustomerMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">This members stands for manufacturing.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="fix_ManufacturingCustomerMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Manufacturing</label>
    <loc xlink:type="locator" xlink:href="fix-20240930.xsd#fix_EducationMember" xlink:label="fix_EducationMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="fix_EducationMember" xlink:to="fix_EducationMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="fix_EducationMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">This members stands for education.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="fix_EducationMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Education</label>
    <loc xlink:type="locator" xlink:href="fix-20240930.xsd#fix_HealthcareSectorCustomerMember" xlink:label="fix_HealthcareSectorCustomerMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="fix_HealthcareSectorCustomerMember" xlink:to="fix_HealthcareSectorCustomerMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="fix_HealthcareSectorCustomerMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Sector of the economy consisting of companies engaged in healthcare-related business activities.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="fix_HealthcareSectorCustomerMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Healthcare</label>
    <loc xlink:type="locator" xlink:href="fix-20240930.xsd#fix_OfficeBuildingCustomerMember" xlink:label="fix_OfficeBuildingCustomerMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="fix_OfficeBuildingCustomerMember" xlink:to="fix_OfficeBuildingCustomerMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="fix_OfficeBuildingCustomerMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Building designed primarily for the conduct of business, for example, but not limited to, administration, clerical services, and consultation.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="fix_OfficeBuildingCustomerMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Office Buildings</label>
    <loc xlink:type="locator" xlink:href="fix-20240930.xsd#fix_RetailRestaurantsAndEntertainmentMember" xlink:label="fix_RetailRestaurantsAndEntertainmentMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="fix_RetailRestaurantsAndEntertainmentMember" xlink:to="fix_RetailRestaurantsAndEntertainmentMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="fix_RetailRestaurantsAndEntertainmentMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">This member stands for retail, restaurants and entertainment</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="fix_RetailRestaurantsAndEntertainmentMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Retail, Restaurants and Entertainment</label>
    <loc xlink:type="locator" xlink:href="fix-20240930.xsd#fix_GovernmentCustomerMember" xlink:label="fix_GovernmentCustomerMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="fix_GovernmentCustomerMember" xlink:to="fix_GovernmentCustomerMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="fix_GovernmentCustomerMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Organization that is the governing authority of a community.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="fix_GovernmentCustomerMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Government</label>
    <loc xlink:type="locator" xlink:href="fix-20240930.xsd#fix_MultiFamilyAndResidentialMember" xlink:label="fix_MultiFamilyAndResidentialMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="fix_MultiFamilyAndResidentialMember" xlink:to="fix_MultiFamilyAndResidentialMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="fix_MultiFamilyAndResidentialMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">This member stands for multi family and residential.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="fix_MultiFamilyAndResidentialMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Multi-Family and Residential</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OtherCustomerMember" xlink:label="us-gaap_OtherCustomerMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OtherCustomerMember" xlink:to="us-gaap_OtherCustomerMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_OtherCustomerMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Other Customer [Member]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_OtherCustomerMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Other Customer</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StatementBusinessSegmentsAxis" xlink:label="us-gaap_StatementBusinessSegmentsAxis" xmlns="http://www.xbrl.org/2003/linkbase" />
    <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" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_StatementBusinessSegmentsAxis_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Segments [Axis]</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SegmentDomain" xlink:label="us-gaap_SegmentDomain" xmlns="http://www.xbrl.org/2003/linkbase" />
    <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" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_SegmentDomain_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Segments [Domain]</label>
    <loc xlink:type="locator" xlink:href="fix-20240930.xsd#fix_NewConstructionMember" xlink:label="fix_NewConstructionMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="fix_NewConstructionMember" xlink:to="fix_NewConstructionMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="fix_NewConstructionMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">This member stands for new construction.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="fix_NewConstructionMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">New Construction</label>
    <loc xlink:type="locator" xlink:href="fix-20240930.xsd#fix_ExistingBuildingConstructionMember" xlink:label="fix_ExistingBuildingConstructionMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="fix_ExistingBuildingConstructionMember" xlink:to="fix_ExistingBuildingConstructionMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="fix_ExistingBuildingConstructionMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">This member stands for existing building construction.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="fix_ExistingBuildingConstructionMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Existing Building Construction</label>
    <loc xlink:type="locator" xlink:href="fix-20240930.xsd#fix_ServiceProjectsMember" xlink:label="fix_ServiceProjectsMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="fix_ServiceProjectsMember" xlink:to="fix_ServiceProjectsMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="fix_ServiceProjectsMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">This member stands for service projects.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="fix_ServiceProjectsMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Service Projects</label>
    <loc xlink:type="locator" xlink:href="fix-20240930.xsd#fix_ServiceCallsMaintenanceAndMonitoringMember" xlink:label="fix_ServiceCallsMaintenanceAndMonitoringMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="fix_ServiceCallsMaintenanceAndMonitoringMember" xlink:to="fix_ServiceCallsMaintenanceAndMonitoringMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="fix_ServiceCallsMaintenanceAndMonitoringMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">This member stands for service calls, maintenance and monitoring.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="fix_ServiceCallsMaintenanceAndMonitoringMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Service Calls, Maintenance and Monitoring</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DisaggregationOfRevenueLineItems" xlink:label="us-gaap_DisaggregationOfRevenueLineItems" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DisaggregationOfRevenueLineItems" xlink:to="us-gaap_DisaggregationOfRevenueLineItems_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_DisaggregationOfRevenueLineItems_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Disaggregation of Revenue [Line Items]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_DisaggregationOfRevenueLineItems_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Disaggregation of Revenue</label>
    <loc xlink:type="locator" xlink:href="fix-20240930.xsd#fix_PercentageOfRevenueFromContractWithCustomer" xlink:label="fix_PercentageOfRevenueFromContractWithCustomer" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="fix_PercentageOfRevenueFromContractWithCustomer" xlink:to="fix_PercentageOfRevenueFromContractWithCustomer_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="fix_PercentageOfRevenueFromContractWithCustomer_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">The percentage of revenue from contract with customers.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="fix_PercentageOfRevenueFromContractWithCustomer_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Percentage of Revenue from Contract With Customer</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="fix_PercentageOfRevenueFromContractWithCustomer_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Percentage of revenue from contract with customer (as a percent)</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ChangeInContractWithCustomerAssetAbstract" xlink:label="us-gaap_ChangeInContractWithCustomerAssetAbstract" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ChangeInContractWithCustomerAssetAbstract" xlink:to="us-gaap_ChangeInContractWithCustomerAssetAbstract_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ChangeInContractWithCustomerAssetAbstract_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Change in Contract with Customer, Asset [Abstract]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_ChangeInContractWithCustomerAssetAbstract_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Contract Assets</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ContractWithCustomerAssetNet" xlink:label="us-gaap_ContractWithCustomerAssetNet" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ContractWithCustomerAssetNet" xlink:to="us-gaap_ContractWithCustomerAssetNet_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ContractWithCustomerAssetNet_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Contract with Customer, Asset, after Allowance for Credit Loss</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_ContractWithCustomerAssetNet_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Costs and estimated earnings in excess of billings, less allowance for credit losses</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ChangeInContractWithCustomerLiabilityAbstract" xlink:label="us-gaap_ChangeInContractWithCustomerLiabilityAbstract" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ChangeInContractWithCustomerLiabilityAbstract" xlink:to="us-gaap_ChangeInContractWithCustomerLiabilityAbstract_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ChangeInContractWithCustomerLiabilityAbstract_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Change in Contract with Customer, Liability [Abstract]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_ChangeInContractWithCustomerLiabilityAbstract_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Contract Liabilities</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ContractWithCustomerAssetCreditLossExpense" xlink:label="us-gaap_ContractWithCustomerAssetCreditLossExpense" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ContractWithCustomerAssetCreditLossExpense" xlink:to="us-gaap_ContractWithCustomerAssetCreditLossExpense_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ContractWithCustomerAssetCreditLossExpense_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Contract with Customer, Asset, Credit Loss Expense (Reversal)</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_ContractWithCustomerAssetCreditLossExpense_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Impairment losses</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ContractWithCustomerLiabilityRevenueRecognized" xlink:label="us-gaap_ContractWithCustomerLiabilityRevenueRecognized" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ContractWithCustomerLiabilityRevenueRecognized" xlink:to="us-gaap_ContractWithCustomerLiabilityRevenueRecognized_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ContractWithCustomerLiabilityRevenueRecognized_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Contract with Customer, Liability, Revenue Recognized</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_ContractWithCustomerLiabilityRevenueRecognized_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Revenue related to our contract liabilities</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionTable" xlink:label="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionTable" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionTable" xlink:to="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionTable_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionTable_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction [Table]</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis" xlink:label="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis" xlink:to="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction, Start Date [Axis]</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_RangeAxis" xlink:label="srt_RangeAxis" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="srt_RangeAxis" xlink:to="srt_RangeAxis_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="srt_RangeAxis_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Statistical Measurement [Axis]</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_RangeMember" xlink:label="srt_RangeMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="srt_RangeMember" xlink:to="srt_RangeMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="srt_RangeMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Statistical Measurement [Domain]</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_MinimumMember" xlink:label="srt_MinimumMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="srt_MinimumMember" xlink:to="srt_MinimumMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="srt_MinimumMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Minimum [Member]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="srt_MinimumMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Minimum</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_MaximumMember" xlink:label="srt_MaximumMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="srt_MaximumMember" xlink:to="srt_MaximumMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="srt_MaximumMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Maximum [Member]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="srt_MaximumMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Maximum</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionLineItems" xlink:label="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionLineItems" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionLineItems" xlink:to="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionLineItems_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionLineItems_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction [Line Items]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionLineItems_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Remaining Performance Obligations</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RevenueRemainingPerformanceObligation" xlink:label="us-gaap_RevenueRemainingPerformanceObligation" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_RevenueRemainingPerformanceObligation" xlink:to="us-gaap_RevenueRemainingPerformanceObligation_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_RevenueRemainingPerformanceObligation_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Revenue, Remaining Performance Obligation, Amount</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_RevenueRemainingPerformanceObligation_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Remaining performance obligations</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RevenueRemainingPerformanceObligationPercentage" xlink:label="us-gaap_RevenueRemainingPerformanceObligationPercentage" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_RevenueRemainingPerformanceObligationPercentage" xlink:to="us-gaap_RevenueRemainingPerformanceObligationPercentage_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_RevenueRemainingPerformanceObligationPercentage_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Revenue, Remaining Performance Obligation, Percentage</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_RevenueRemainingPerformanceObligationPercentage_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Expected percentage of remaining performance obligations</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1" xlink:label="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1" xlink:to="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction, Period</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Expected timing of performance obligations</label>
    <loc xlink:type="locator" xlink:href="fix-20240930.xsd#fix_RenewableServiceMaintenanceAgreementsTerm" xlink:label="fix_RenewableServiceMaintenanceAgreementsTerm" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="fix_RenewableServiceMaintenanceAgreementsTerm" xlink:to="fix_RenewableServiceMaintenanceAgreementsTerm_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="fix_RenewableServiceMaintenanceAgreementsTerm_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">The term of renewable service maintenance agreements in years.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="fix_RenewableServiceMaintenanceAgreementsTerm_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Renewable Service Maintenance Agreements Term</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="fix_RenewableServiceMaintenanceAgreementsTerm_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">The term of the renewable service maintenance agreements (in years)</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RevenuePracticalExpedientRemainingPerformanceObligation" xlink:label="us-gaap_RevenuePracticalExpedientRemainingPerformanceObligation" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_RevenuePracticalExpedientRemainingPerformanceObligation" xlink:to="us-gaap_RevenuePracticalExpedientRemainingPerformanceObligation_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_RevenuePracticalExpedientRemainingPerformanceObligation_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Revenue, Remaining Performance Obligation, Optional Exemption, Performance Obligation [true false]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_RevenuePracticalExpedientRemainingPerformanceObligation_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Practical Expedient</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable" xlink:label="us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable" xlink:to="us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Fair Value, Recurring and Nonrecurring [Table]</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FairValueByMeasurementFrequencyAxis" xlink:label="us-gaap_FairValueByMeasurementFrequencyAxis" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FairValueByMeasurementFrequencyAxis" xlink:to="us-gaap_FairValueByMeasurementFrequencyAxis_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_FairValueByMeasurementFrequencyAxis_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Measurement Frequency [Axis]</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FairValueMeasurementFrequencyDomain" xlink:label="us-gaap_FairValueMeasurementFrequencyDomain" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FairValueMeasurementFrequencyDomain" xlink:to="us-gaap_FairValueMeasurementFrequencyDomain_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_FairValueMeasurementFrequencyDomain_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Measurement Frequency [Domain]</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FairValueMeasurementsRecurringMember" xlink:label="us-gaap_FairValueMeasurementsRecurringMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FairValueMeasurementsRecurringMember" xlink:to="us-gaap_FairValueMeasurementsRecurringMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_FairValueMeasurementsRecurringMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Fair Value, Recurring [Member]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_FairValueMeasurementsRecurringMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Recurring basis</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FairValueByFairValueHierarchyLevelAxis" xlink:label="us-gaap_FairValueByFairValueHierarchyLevelAxis" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FairValueByFairValueHierarchyLevelAxis" xlink:to="us-gaap_FairValueByFairValueHierarchyLevelAxis_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_FairValueByFairValueHierarchyLevelAxis_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Fair Value Hierarchy and NAV [Axis]</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FairValueMeasurementsFairValueHierarchyDomain" xlink:label="us-gaap_FairValueMeasurementsFairValueHierarchyDomain" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FairValueMeasurementsFairValueHierarchyDomain" xlink:to="us-gaap_FairValueMeasurementsFairValueHierarchyDomain_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_FairValueMeasurementsFairValueHierarchyDomain_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Fair Value Hierarchy and NAV [Domain]</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FairValueInputsLevel1Member" xlink:label="us-gaap_FairValueInputsLevel1Member" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FairValueInputsLevel1Member" xlink:to="us-gaap_FairValueInputsLevel1Member_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_FairValueInputsLevel1Member_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Fair Value, Inputs, Level 1 [Member]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_FairValueInputsLevel1Member_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Quoted Market Prices In Active Markets for Identical Assets (Level 1)</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FairValueInputsLevel2Member" xlink:label="us-gaap_FairValueInputsLevel2Member" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FairValueInputsLevel2Member" xlink:to="us-gaap_FairValueInputsLevel2Member_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_FairValueInputsLevel2Member_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Fair Value, Inputs, Level 2 [Member]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_FairValueInputsLevel2Member_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Significant Other Observable Inputs (Level 2)</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FairValueInputsLevel3Member" xlink:label="us-gaap_FairValueInputsLevel3Member" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FairValueInputsLevel3Member" xlink:to="us-gaap_FairValueInputsLevel3Member_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_FairValueInputsLevel3Member_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Fair Value, Inputs, Level 3 [Member]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_FairValueInputsLevel3Member_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Significant Unobservable Inputs (Level 3)</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FairValueByLiabilityClassAxis" xlink:label="us-gaap_FairValueByLiabilityClassAxis" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FairValueByLiabilityClassAxis" xlink:to="us-gaap_FairValueByLiabilityClassAxis_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_FairValueByLiabilityClassAxis_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Liability Class [Axis]</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationByLiabilityClassDomain" xlink:label="us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationByLiabilityClassDomain" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationByLiabilityClassDomain" xlink:to="us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationByLiabilityClassDomain_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationByLiabilityClassDomain_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Fair Value by Liability Class [Domain]</label>
    <loc xlink:type="locator" xlink:href="fix-20240930.xsd#fix_ContingentConsiderationObligationsMember" xlink:label="fix_ContingentConsiderationObligationsMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="fix_ContingentConsiderationObligationsMember" xlink:to="fix_ContingentConsiderationObligationsMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="fix_ContingentConsiderationObligationsMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Represents the information pertaining to the contingent consideration obligations that have been provided in a business combination.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="fix_ContingentConsiderationObligationsMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Contingent earn-out obligations</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FairValueByMeasurementBasisAxis" xlink:label="us-gaap_FairValueByMeasurementBasisAxis" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FairValueByMeasurementBasisAxis" xlink:to="us-gaap_FairValueByMeasurementBasisAxis_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_FairValueByMeasurementBasisAxis_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Measurement Basis [Axis]</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PortionAtFairValueFairValueDisclosureMember" xlink:label="us-gaap_PortionAtFairValueFairValueDisclosureMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PortionAtFairValueFairValueDisclosureMember" xlink:to="us-gaap_PortionAtFairValueFairValueDisclosureMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_PortionAtFairValueFairValueDisclosureMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Portion at Fair Value Measurement [Member]</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EstimateOfFairValueFairValueDisclosureMember" xlink:label="us-gaap_EstimateOfFairValueFairValueDisclosureMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_EstimateOfFairValueFairValueDisclosureMember" xlink:to="us-gaap_EstimateOfFairValueFairValueDisclosureMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_EstimateOfFairValueFairValueDisclosureMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Estimate of Fair Value Measurement [Member]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_EstimateOfFairValueFairValueDisclosureMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Total</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems" xlink:label="us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems" xlink:to="us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Fair Value Measurements</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CashAndCashEquivalentsFairValueDisclosure" xlink:label="us-gaap_CashAndCashEquivalentsFairValueDisclosure" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CashAndCashEquivalentsFairValueDisclosure" xlink:to="us-gaap_CashAndCashEquivalentsFairValueDisclosure_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_CashAndCashEquivalentsFairValueDisclosure_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Cash and Cash Equivalents, Fair Value Disclosure</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_CashAndCashEquivalentsFairValueDisclosure_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Cash and cash equivalents</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CashSurrenderValueFairValueDisclosure" xlink:label="us-gaap_CashSurrenderValueFairValueDisclosure" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CashSurrenderValueFairValueDisclosure" xlink:to="us-gaap_CashSurrenderValueFairValueDisclosure_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_CashSurrenderValueFairValueDisclosure_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Cash Surrender Value, Fair Value Disclosure</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_CashSurrenderValueFairValueDisclosure_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Life insurance-cash surrender value</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue" xlink:label="us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue" xlink:to="us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Fair Value, Measurement with Unobservable Inputs Reconciliation, Recurring Basis, Liability Value</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel" xlink:label="us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Balance at end of period</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel" xlink:label="us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Balance at beginning of period</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Contingent earn-out obligations</label>
    <loc xlink:type="locator" xlink:href="fix-20240930.xsd#fix_LifeInsuranceContractsNumberOfEmployeesCovered" xlink:label="fix_LifeInsuranceContractsNumberOfEmployeesCovered" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="fix_LifeInsuranceContractsNumberOfEmployeesCovered" xlink:to="fix_LifeInsuranceContractsNumberOfEmployeesCovered_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="fix_LifeInsuranceContractsNumberOfEmployeesCovered_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Represents the number of employees covered under life insurance policy contracts.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="fix_LifeInsuranceContractsNumberOfEmployeesCovered_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Life Insurance Contracts Number of Employees Covered</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="fix_LifeInsuranceContractsNumberOfEmployeesCovered_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Number of employees covered under life insurance policies</label>
    <loc xlink:type="locator" xlink:href="fix-20240930.xsd#fix_LifeInsuranceContractsFaceAmount" xlink:label="fix_LifeInsuranceContractsFaceAmount" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="fix_LifeInsuranceContractsFaceAmount" xlink:to="fix_LifeInsuranceContractsFaceAmount_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="fix_LifeInsuranceContractsFaceAmount_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Represents the face amount of life insurance policies taken by the entity for their employees.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="fix_LifeInsuranceContractsFaceAmount_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Life Insurance Contracts Face Amount</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="fix_LifeInsuranceContractsFaceAmount_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Combined face value of life insurance policies</label>
    <loc xlink:type="locator" xlink:href="fix-20240930.xsd#fix_WeightedAverageCostOfCapital" xlink:label="fix_WeightedAverageCostOfCapital" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="fix_WeightedAverageCostOfCapital" xlink:to="fix_WeightedAverageCostOfCapital_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="fix_WeightedAverageCostOfCapital_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Percentage of weighted average cost of capital.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="fix_WeightedAverageCostOfCapital_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Weighted Average Cost Of Capital</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="fix_WeightedAverageCostOfCapital_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Weighted average cost of capital</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationCalculationRollForward" xlink:label="us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationCalculationRollForward" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationCalculationRollForward" xlink:to="us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationCalculationRollForward_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationCalculationRollForward_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Fair Value, Liabilities Measured on Recurring Basis, Unobservable Input Reconciliation, Calculation [Roll Forward]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationCalculationRollForward_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Reconciliation of the fair value of contingent earn-out obligations that use significant unobservable inputs (Level 3)</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityIssues" xlink:label="us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityIssues" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityIssues" xlink:to="us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityIssues_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityIssues_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Fair Value, Measurement with Unobservable Inputs Reconciliation, Recurring Basis, Liability, Issuances</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityIssues_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Issuances</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilitySettlements" xlink:label="us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilitySettlements" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilitySettlements" xlink:to="us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilitySettlements_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilitySettlements_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Fair Value, Measurement with Unobservable Inputs Reconciliation, Recurring Basis, Liability, Settlements</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:label="us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilitySettlements_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Settlements</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityGainLossIncludedInEarnings" xlink:label="us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityGainLossIncludedInEarnings" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityGainLossIncludedInEarnings" xlink:to="us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityGainLossIncludedInEarnings_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityGainLossIncludedInEarnings_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Fair Value, Measurement with Unobservable Inputs Reconciliation, Recurring Basis, Liability, Gain (Loss) Included in Earnings</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityGainLossIncludedInEarnings_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Adjustments to fair value</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessCombinationConsiderationTransferredAbstract" xlink:label="us-gaap_BusinessCombinationConsiderationTransferredAbstract" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessCombinationConsiderationTransferredAbstract" xlink:to="us-gaap_BusinessCombinationConsiderationTransferredAbstract_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_BusinessCombinationConsiderationTransferredAbstract_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Business Combination, Consideration Transferred [Abstract]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_BusinessCombinationConsiderationTransferredAbstract_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Consideration transferred:</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PaymentsToAcquireBusinessesGross" xlink:label="us-gaap_PaymentsToAcquireBusinessesGross" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PaymentsToAcquireBusinessesGross" xlink:to="us-gaap_PaymentsToAcquireBusinessesGross_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_PaymentsToAcquireBusinessesGross_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Payments to Acquire Businesses, Gross</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_PaymentsToAcquireBusinessesGross_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Cash paid at closing</label>
    <loc xlink:type="locator" xlink:href="fix-20240930.xsd#fix_BusinessCombinationConsiderationTransferredWorkingCapitalAdjustment" xlink:label="fix_BusinessCombinationConsiderationTransferredWorkingCapitalAdjustment" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="fix_BusinessCombinationConsiderationTransferredWorkingCapitalAdjustment" xlink:to="fix_BusinessCombinationConsiderationTransferredWorkingCapitalAdjustment_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="fix_BusinessCombinationConsiderationTransferredWorkingCapitalAdjustment_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Amount of working capital settlement under business combination.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="fix_BusinessCombinationConsiderationTransferredWorkingCapitalAdjustment_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Business Combination Consideration Transferred Working Capital Adjustment</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="fix_BusinessCombinationConsiderationTransferredWorkingCapitalAdjustment_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Working capital adjustment</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessCombinationConsiderationTransferredLiabilitiesIncurred" xlink:label="us-gaap_BusinessCombinationConsiderationTransferredLiabilitiesIncurred" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessCombinationConsiderationTransferredLiabilitiesIncurred" xlink:to="us-gaap_BusinessCombinationConsiderationTransferredLiabilitiesIncurred_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_BusinessCombinationConsiderationTransferredLiabilitiesIncurred_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Business Combination, Consideration Transferred, Liabilities Incurred</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_BusinessCombinationConsiderationTransferredLiabilitiesIncurred_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Notes issued to former owners</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessCombinationContingentConsiderationLiability" xlink:label="us-gaap_BusinessCombinationContingentConsiderationLiability" xmlns="http://www.xbrl.org/2003/linkbase" />
    <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" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_BusinessCombinationContingentConsiderationLiability_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Business Combination, Contingent Consideration, Liability</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_BusinessCombinationContingentConsiderationLiability_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Estimated fair value of contingent earn-out payments</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet" xmlns="http://www.xbrl.org/2003/linkbase" />
    <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" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Business Combination, Recognized Identifiable Assets Acquired, Goodwill, and Liabilities Assumed, Net</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Total assets acquired and liabilities assumed</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Consideration transferred</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNetAbstract" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNetAbstract" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNetAbstract" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNetAbstract_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNetAbstract_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Business Combination, Recognized Identifiable Assets Acquired, Goodwill, and Liabilities Assumed, Net [Abstract]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNetAbstract_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Recognized amounts of identifiable assets acquired and liabilities assumed:</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents" xmlns="http://www.xbrl.org/2003/linkbase" />
    <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" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Cash and Equivalents</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Cash and cash equivalents</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Current Assets, Receivables</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Billed and unbilled accounts receivable</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedInventory" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedInventory" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedInventory" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedInventory_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedInventory_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Inventory</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedInventory_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Inventory</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsPrepaidExpenseAndOtherAssets" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsPrepaidExpenseAndOtherAssets" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsPrepaidExpenseAndOtherAssets" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsPrepaidExpenseAndOtherAssets_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsPrepaidExpenseAndOtherAssets_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Current Assets, Prepaid Expense and Other Assets</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsPrepaidExpenseAndOtherAssets_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Prepaid expenses and other</label>
    <loc xlink:type="locator" xlink:href="fix-20240930.xsd#fix_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsCostsInExcessOfBillings" xlink:label="fix_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsCostsInExcessOfBillings" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="fix_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsCostsInExcessOfBillings" xlink:to="fix_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsCostsInExcessOfBillings_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="fix_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsCostsInExcessOfBillings_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Amount of costs in excess of billings.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="fix_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsCostsInExcessOfBillings_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Business Combination Recognized Identifiable Assets Acquired And Liabilities Assumed Current Assets Costs in Excess of Billings</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="fix_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsCostsInExcessOfBillings_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Cost and estimated earnings in excess of billings</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment" xmlns="http://www.xbrl.org/2003/linkbase" />
    <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" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Property, Plant, and Equipment</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Property and equipment</label>
    <loc xlink:type="locator" xlink:href="fix-20240930.xsd#fix_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseRightOfUseAssets" xlink:label="fix_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseRightOfUseAssets" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="fix_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseRightOfUseAssets" xlink:to="fix_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseRightOfUseAssets_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="fix_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseRightOfUseAssets_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">The amount of right of use assets from operating leases recognized as of the acquisition date.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="fix_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseRightOfUseAssets_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Business Combination, Recognized Identifiable Assets Acquired And Liabilities Assumed, Operating Lease Right Of Use Assets</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="fix_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseRightOfUseAssets_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Lease right-of-use asset</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Finite-Lived Intangibles</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Identifiable intangible assets</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Estimated Fair Value</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOtherNoncurrentAssets" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOtherNoncurrentAssets" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOtherNoncurrentAssets" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOtherNoncurrentAssets_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOtherNoncurrentAssets_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Other Noncurrent Assets</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOtherNoncurrentAssets_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Other noncurrent assets</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Current Liabilities, Accounts Payable</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Accounts payable</label>
    <loc xlink:type="locator" xlink:href="fix-20240930.xsd#fix_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesBillingsInExcessOfCostsAndEstimatedEarnings" xlink:label="fix_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesBillingsInExcessOfCostsAndEstimatedEarnings" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="fix_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesBillingsInExcessOfCostsAndEstimatedEarnings" xlink:to="fix_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesBillingsInExcessOfCostsAndEstimatedEarnings_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="fix_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesBillingsInExcessOfCostsAndEstimatedEarnings_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Business Combination Recognized Identifiable Assets Acquired And Liabilities Assumed Current Liabilities Billings In Excess of Costs And Estimated Earnings</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="fix_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesBillingsInExcessOfCostsAndEstimatedEarnings_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Business Combination Recognized Identifiable Assets Acquired And Liabilities Assumed Current Liabilities Billings In Excess Of Costs And Estimated Earnings</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:label="fix_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesBillingsInExcessOfCostsAndEstimatedEarnings_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Billings in excess of costs and estimated earnings</label>
    <loc xlink:type="locator" xlink:href="fix-20240930.xsd#fix_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesOperatingLeaseLiabilities" xlink:label="fix_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesOperatingLeaseLiabilities" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="fix_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesOperatingLeaseLiabilities" xlink:to="fix_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesOperatingLeaseLiabilities_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="fix_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesOperatingLeaseLiabilities_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Amount of current operating lease liabilities due within one year or within the normal operating cycle, if longer, assumed at the acquisition date.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="fix_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesOperatingLeaseLiabilities_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Current Liabilities, Operating Lease Liabilities</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:label="fix_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesOperatingLeaseLiabilities_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Current operating lease liabilities</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesOther" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesOther" xmlns="http://www.xbrl.org/2003/linkbase" />
    <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" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesOther_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Current Liabilities, Other</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesOther_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Accrued expenses and other current liabilities</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNoncurrentLiabilitiesLongTermDebt" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNoncurrentLiabilitiesLongTermDebt" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNoncurrentLiabilitiesLongTermDebt" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNoncurrentLiabilitiesLongTermDebt_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNoncurrentLiabilitiesLongTermDebt_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Noncurrent Liabilities, Long-Term Debt</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNoncurrentLiabilitiesLongTermDebt_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Long-term debt</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNoncurrentLiabilitiesLongTermDebt_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Acquired debt</label>
    <loc xlink:type="locator" xlink:href="fix-20240930.xsd#fix_BusinessCombinationRecognizedIdentifiableAssetAcquiredAndLiabilityAssumedOperatingLeaseObligation" xlink:label="fix_BusinessCombinationRecognizedIdentifiableAssetAcquiredAndLiabilityAssumedOperatingLeaseObligation" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="fix_BusinessCombinationRecognizedIdentifiableAssetAcquiredAndLiabilityAssumedOperatingLeaseObligation" xlink:to="fix_BusinessCombinationRecognizedIdentifiableAssetAcquiredAndLiabilityAssumedOperatingLeaseObligation_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="fix_BusinessCombinationRecognizedIdentifiableAssetAcquiredAndLiabilityAssumedOperatingLeaseObligation_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Amount of operating lease obligation assumed in business combination.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="fix_BusinessCombinationRecognizedIdentifiableAssetAcquiredAndLiabilityAssumedOperatingLeaseObligation_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Business Combination, Recognized Identifiable Asset Acquired and Liability Assumed, Operating Lease Obligation</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:label="fix_BusinessCombinationRecognizedIdentifiableAssetAcquiredAndLiabilityAssumedOperatingLeaseObligation_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Long-term operating lease liabilities</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FiniteLivedIntangibleAssetsAcquiredAsPartOfBusinessCombinationTable" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAcquiredAsPartOfBusinessCombinationTable" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FiniteLivedIntangibleAssetsAcquiredAsPartOfBusinessCombinationTable" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAcquiredAsPartOfBusinessCombinationTable_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAcquiredAsPartOfBusinessCombinationTable_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Finite-Lived Intangible Assets Acquired as Part of Business Combination [Table]</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:label="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xmlns="http://www.xbrl.org/2003/linkbase" />
    <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" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Finite-Lived Intangible Assets by Major Class [Axis]</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:label="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xmlns="http://www.xbrl.org/2003/linkbase" />
    <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" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Finite-Lived Intangible Assets, Major Class Name [Domain]</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OrderOrProductionBacklogMember" xlink:label="us-gaap_OrderOrProductionBacklogMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OrderOrProductionBacklogMember" xlink:to="us-gaap_OrderOrProductionBacklogMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_OrderOrProductionBacklogMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Order or Production Backlog [Member]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_OrderOrProductionBacklogMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Backlog</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_TradeNamesMember" xlink:label="us-gaap_TradeNamesMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <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" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_TradeNamesMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Trade Names [Member]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_TradeNamesMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Trade Name</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CustomerRelationshipsMember" xlink:label="us-gaap_CustomerRelationshipsMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CustomerRelationshipsMember" xlink:to="us-gaap_CustomerRelationshipsMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_CustomerRelationshipsMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Customer Relationships [Member]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_CustomerRelationshipsMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Customer Relationships</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_MeasurementInputTypeAxis" xlink:label="us-gaap_MeasurementInputTypeAxis" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_MeasurementInputTypeAxis" xlink:to="us-gaap_MeasurementInputTypeAxis_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_MeasurementInputTypeAxis_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Measurement Input Type [Axis]</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_MeasurementInputTypeDomain" xlink:label="us-gaap_MeasurementInputTypeDomain" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_MeasurementInputTypeDomain" xlink:to="us-gaap_MeasurementInputTypeDomain_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_MeasurementInputTypeDomain_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Measurement Input Type [Domain]</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_MeasurementInputInceptionDiscountRateMember" xlink:label="us-gaap_MeasurementInputInceptionDiscountRateMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_MeasurementInputInceptionDiscountRateMember" xlink:to="us-gaap_MeasurementInputInceptionDiscountRateMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_MeasurementInputInceptionDiscountRateMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Measurement Input, Inception Discount Rate [Member]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_MeasurementInputInceptionDiscountRateMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Measurement Input, Inception Discount Rate</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AcquiredFiniteLivedIntangibleAssetsLineItems" xlink:label="us-gaap_AcquiredFiniteLivedIntangibleAssetsLineItems" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AcquiredFiniteLivedIntangibleAssetsLineItems" xlink:to="us-gaap_AcquiredFiniteLivedIntangibleAssetsLineItems_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_AcquiredFiniteLivedIntangibleAssetsLineItems_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Acquired Finite-Lived Intangible Assets [Line Items]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_AcquiredFiniteLivedIntangibleAssetsLineItems_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Acquisitions</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife" xlink:label="us-gaap_AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife" xlink:to="us-gaap_AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Acquired Finite-Lived Intangible Assets, Weighted Average Useful Life</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Estimated Useful Life</label>
    <loc xlink:type="locator" xlink:href="fix-20240930.xsd#fix_BusinessCombinationNumberOfEarningsMilestones" xlink:label="fix_BusinessCombinationNumberOfEarningsMilestones" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="fix_BusinessCombinationNumberOfEarningsMilestones" xlink:to="fix_BusinessCombinationNumberOfEarningsMilestones_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="fix_BusinessCombinationNumberOfEarningsMilestones_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">The number of earnings milestone.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="fix_BusinessCombinationNumberOfEarningsMilestones_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Business Combination Number of Earnings Milestones</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="fix_BusinessCombinationNumberOfEarningsMilestones_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Number of earnings milestones</label>
    <loc xlink:type="locator" xlink:href="fix-20240930.xsd#fix_BusinessCombinationTermOfEarningsMilestones" xlink:label="fix_BusinessCombinationTermOfEarningsMilestones" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="fix_BusinessCombinationTermOfEarningsMilestones" xlink:to="fix_BusinessCombinationTermOfEarningsMilestones_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="fix_BusinessCombinationTermOfEarningsMilestones_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">The term of earnings milestones.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="fix_BusinessCombinationTermOfEarningsMilestones_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Business Combination Term of Earnings Milestones</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="fix_BusinessCombinationTermOfEarningsMilestones_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Term of earnings milestones</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueHigh" xlink:label="us-gaap_BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueHigh" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueHigh" xlink:to="us-gaap_BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueHigh_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueHigh_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Business Combination, Contingent Consideration Arrangements, Range of Outcomes, Value, High</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueHigh_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Estimated milestone payment, upper range</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueLow" xlink:label="us-gaap_BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueLow" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueLow" xlink:to="us-gaap_BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueLow_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueLow_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Business Combination, Contingent Consideration Arrangements, Range of Outcomes, Value, Low</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueLow_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Estimated milestone payment, lower range</label>
    <loc xlink:type="locator" xlink:href="fix-20240930.xsd#fix_CashFlowDiscountRate" xlink:label="fix_CashFlowDiscountRate" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="fix_CashFlowDiscountRate" xlink:to="fix_CashFlowDiscountRate_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="fix_CashFlowDiscountRate_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Amount of probable cash flows discount rate.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="fix_CashFlowDiscountRate_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Cash Flow Discount Rate</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="fix_CashFlowDiscountRate_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Cash flow discount rate</label>
    <loc xlink:type="locator" xlink:href="fix-20240930.xsd#fix_DeccoIncMember" xlink:label="fix_DeccoIncMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="fix_DeccoIncMember" xlink:to="fix_DeccoIncMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="fix_DeccoIncMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Represents the information pertaining to DECCO, Inc and each of its related subsidiary[ies].</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="fix_DeccoIncMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">DECCO, Inc [Member]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="fix_DeccoIncMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">DECCO</label>
    <loc xlink:type="locator" xlink:href="fix-20240930.xsd#fix_EldecoincMember" xlink:label="fix_EldecoincMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="fix_EldecoincMember" xlink:to="fix_EldecoincMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="fix_EldecoincMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Represents information pertaining to Eldeco Inc</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="fix_EldecoincMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Eldeco, Inc [Member]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="fix_EldecoincMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Eldeco Inc</label>
    <loc xlink:type="locator" xlink:href="fix-20240930.xsd#fix_MechanicalContractorNorthCarolinaMember" xlink:label="fix_MechanicalContractorNorthCarolinaMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="fix_MechanicalContractorNorthCarolinaMember" xlink:to="fix_MechanicalContractorNorthCarolinaMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="fix_MechanicalContractorNorthCarolinaMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Represents information pertaining to North Carolina plumbing service provider.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="fix_MechanicalContractorNorthCarolinaMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Mechanical Contractor North Carolina [Member]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="fix_MechanicalContractorNorthCarolinaMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Mechanical Contractor North Carolina</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessCombinationConsiderationTransferred1" xlink:label="us-gaap_BusinessCombinationConsiderationTransferred1" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessCombinationConsiderationTransferred1" xlink:to="us-gaap_BusinessCombinationConsiderationTransferred1_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_BusinessCombinationConsiderationTransferred1_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Business Combination, Consideration Transferred</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_BusinessCombinationConsiderationTransferred1_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Fair value of consideration transferred</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfGoodwillTable" xlink:label="us-gaap_ScheduleOfGoodwillTable" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfGoodwillTable" xlink:to="us-gaap_ScheduleOfGoodwillTable_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ScheduleOfGoodwillTable_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Goodwill [Table]</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_GoodwillLineItems" xlink:label="us-gaap_GoodwillLineItems" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_GoodwillLineItems" xlink:to="us-gaap_GoodwillLineItems_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_GoodwillLineItems_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Goodwill [Line Items]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_GoodwillLineItems_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Goodwill</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_GoodwillRollForward" xlink:label="us-gaap_GoodwillRollForward" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_GoodwillRollForward" xlink:to="us-gaap_GoodwillRollForward_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_GoodwillRollForward_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Goodwill [Roll Forward]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_GoodwillRollForward_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Changes in the carrying amount of goodwill</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_GoodwillAcquiredDuringPeriod" xlink:label="us-gaap_GoodwillAcquiredDuringPeriod" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_GoodwillAcquiredDuringPeriod" xlink:to="us-gaap_GoodwillAcquiredDuringPeriod_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_GoodwillAcquiredDuringPeriod_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Goodwill, Acquired During Period</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_GoodwillAcquiredDuringPeriod_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Acquisitions and purchase price adjustments (See Note 5)</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable" xlink:label="us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable" xmlns="http://www.xbrl.org/2003/linkbase" />
    <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" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Intangible Asset, Finite-Lived [Table]</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FiniteLivedIntangibleAssetsLineItems" xlink:label="us-gaap_FiniteLivedIntangibleAssetsLineItems" xmlns="http://www.xbrl.org/2003/linkbase" />
    <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" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_FiniteLivedIntangibleAssetsLineItems_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Finite-Lived Intangible Assets [Line Items]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_FiniteLivedIntangibleAssetsLineItems_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Identifiable Intangible Assets, Net</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FiniteLivedIntangibleAssetsFutureAmortizationExpenseAbstract" xlink:label="us-gaap_FiniteLivedIntangibleAssetsFutureAmortizationExpenseAbstract" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FiniteLivedIntangibleAssetsFutureAmortizationExpenseAbstract" xlink:to="us-gaap_FiniteLivedIntangibleAssetsFutureAmortizationExpenseAbstract_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_FiniteLivedIntangibleAssetsFutureAmortizationExpenseAbstract_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Finite-Lived Intangible Assets, Net, Amortization Expense, Fiscal Year Maturity [Abstract]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_FiniteLivedIntangibleAssetsFutureAmortizationExpenseAbstract_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Future amortization expense of identifiable intangible assets</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseRemainderOfFiscalYear" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseRemainderOfFiscalYear" xmlns="http://www.xbrl.org/2003/linkbase" />
    <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" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseRemainderOfFiscalYear_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Finite-Lived Intangible Asset, Expected Amortization, Remainder of Fiscal Year</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseRemainderOfFiscalYear_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">2024 (remainder of the year)</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths" xmlns="http://www.xbrl.org/2003/linkbase" />
    <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" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Finite-Lived Intangible Asset, Expected Amortization, Year One</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">2025</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo" xmlns="http://www.xbrl.org/2003/linkbase" />
    <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" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Finite-Lived Intangible Asset, Expected Amortization, Year Two</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">2026</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree" xmlns="http://www.xbrl.org/2003/linkbase" />
    <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" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Finite-Lived Intangible Asset, Expected Amortization, Year Three</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">2027</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour" xmlns="http://www.xbrl.org/2003/linkbase" />
    <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" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Finite-Lived Intangible Asset, Expected Amortization, Year Four</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">2028</label>
    <loc xlink:type="locator" xlink:href="fix-20240930.xsd#fix_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFour" xlink:label="fix_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFour" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="fix_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFour" xlink:to="fix_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFour_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="fix_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFour_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Amount of amortization for asset, excluding financial asset and goodwill, lacking physical substance with finite life expected to be recognized after fourth fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="fix_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFour_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Finite Lived Intangible Assets Amortization Expense After Year Four</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="fix_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFour_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Thereafter</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FiniteLivedIntangibleAssetsNet" xlink:label="us-gaap_FiniteLivedIntangibleAssetsNet" xmlns="http://www.xbrl.org/2003/linkbase" />
    <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" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_FiniteLivedIntangibleAssetsNet_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Finite-Lived Intangible Assets, Net</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:label="us-gaap_FiniteLivedIntangibleAssetsNet_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Total</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DebtInstrumentTable" xlink:label="us-gaap_DebtInstrumentTable" xmlns="http://www.xbrl.org/2003/linkbase" />
    <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" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_DebtInstrumentTable_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Schedule of Long-Term Debt Instruments [Table]</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DebtInstrumentLineItems" xlink:label="us-gaap_DebtInstrumentLineItems" xmlns="http://www.xbrl.org/2003/linkbase" />
    <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" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_DebtInstrumentLineItems_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Debt Instrument [Line Items]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_DebtInstrumentLineItems_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Debt Obligations</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NotesAndLoansPayable" xlink:label="us-gaap_NotesAndLoansPayable" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_NotesAndLoansPayable" xlink:to="us-gaap_NotesAndLoansPayable_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_NotesAndLoansPayable_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Notes and Loans Payable</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_NotesAndLoansPayable_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Notes to former owners</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_NotesAndLoansPayable_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Notes issued to former owners</label>
    <loc xlink:type="locator" xlink:href="fix-20240930.xsd#fix_OtherDebtLongTermAndShortTermCombinedAmount" xlink:label="fix_OtherDebtLongTermAndShortTermCombinedAmount" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="fix_OtherDebtLongTermAndShortTermCombinedAmount" xlink:to="fix_OtherDebtLongTermAndShortTermCombinedAmount_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="fix_OtherDebtLongTermAndShortTermCombinedAmount_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Represents the aggregate of other long-term debt, including current maturities and short-term debt.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="fix_OtherDebtLongTermAndShortTermCombinedAmount_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Other Debt, Long-term and Short-term, Combined Amount</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="fix_OtherDebtLongTermAndShortTermCombinedAmount_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Other debt</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LongTermDebtAndCapitalLeaseObligationsIncludingCurrentMaturities" xlink:label="us-gaap_LongTermDebtAndCapitalLeaseObligationsIncludingCurrentMaturities" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LongTermDebtAndCapitalLeaseObligationsIncludingCurrentMaturities" xlink:to="us-gaap_LongTermDebtAndCapitalLeaseObligationsIncludingCurrentMaturities_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_LongTermDebtAndCapitalLeaseObligationsIncludingCurrentMaturities_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Long-Term Debt and Lease Obligation, Including Current Maturities</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:label="us-gaap_LongTermDebtAndCapitalLeaseObligationsIncludingCurrentMaturities_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Total debt</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LongTermDebtAndCapitalLeaseObligationsCurrent" xlink:label="us-gaap_LongTermDebtAndCapitalLeaseObligationsCurrent" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LongTermDebtAndCapitalLeaseObligationsCurrent" xlink:to="us-gaap_LongTermDebtAndCapitalLeaseObligationsCurrent_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_LongTermDebtAndCapitalLeaseObligationsCurrent_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Long-Term Debt and Lease Obligation, Current</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:label="us-gaap_LongTermDebtAndCapitalLeaseObligationsCurrent_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Less-current portion</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LongTermDebtAndCapitalLeaseObligations" xlink:label="us-gaap_LongTermDebtAndCapitalLeaseObligations" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LongTermDebtAndCapitalLeaseObligations" xlink:to="us-gaap_LongTermDebtAndCapitalLeaseObligations_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_LongTermDebtAndCapitalLeaseObligations_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Long-Term Debt and Lease Obligation</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_LongTermDebtAndCapitalLeaseObligations_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Total long-term portion of debt</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CreditFacilityAxis" xlink:label="us-gaap_CreditFacilityAxis" xmlns="http://www.xbrl.org/2003/linkbase" />
    <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" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_CreditFacilityAxis_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Credit Facility [Axis]</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CreditFacilityDomain" xlink:label="us-gaap_CreditFacilityDomain" xmlns="http://www.xbrl.org/2003/linkbase" />
    <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" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_CreditFacilityDomain_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Credit Facility [Domain]</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RevolvingCreditFacilityMember" xlink:label="us-gaap_RevolvingCreditFacilityMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <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" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_RevolvingCreditFacilityMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Revolving Credit Facility [Member]</label>
    <loc xlink:type="locator" xlink:href="fix-20240930.xsd#fix_SeniorRevolvingCreditFacilityMember" xlink:label="fix_SeniorRevolvingCreditFacilityMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="fix_SeniorRevolvingCreditFacilityMember" xlink:to="fix_SeniorRevolvingCreditFacilityMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="fix_SeniorRevolvingCreditFacilityMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Information pertaining to the senior revolving credit facility.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="fix_SeniorRevolvingCreditFacilityMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Senior Revolving Credit Facility [Member]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="fix_SeniorRevolvingCreditFacilityMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Senior Revolving Credit Facility</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LetterOfCreditMember" xlink:label="us-gaap_LetterOfCreditMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LetterOfCreditMember" xlink:to="us-gaap_LetterOfCreditMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_LetterOfCreditMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Letter of Credit [Member]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_LetterOfCreditMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Letter of Credit</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_VariableRateAxis" xlink:label="us-gaap_VariableRateAxis" xmlns="http://www.xbrl.org/2003/linkbase" />
    <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" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_VariableRateAxis_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Variable Rate [Axis]</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_VariableRateDomain" xlink:label="us-gaap_VariableRateDomain" xmlns="http://www.xbrl.org/2003/linkbase" />
    <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" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_VariableRateDomain_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Variable Rate [Domain]</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SecuredOvernightFinancingRateSofrMember" xlink:label="us-gaap_SecuredOvernightFinancingRateSofrMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SecuredOvernightFinancingRateSofrMember" xlink:to="us-gaap_SecuredOvernightFinancingRateSofrMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_SecuredOvernightFinancingRateSofrMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Secured Overnight Financing Rate (SOFR) [Member]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_SecuredOvernightFinancingRateSofrMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">SOFR</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BaseRateMember" xlink:label="us-gaap_BaseRateMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <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" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_BaseRateMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Base Rate [Member]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_BaseRateMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Base Rate</label>
    <loc xlink:type="locator" xlink:href="fix-20240930.xsd#fix_DebtCovenantRatioAxis" xlink:label="fix_DebtCovenantRatioAxis" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="fix_DebtCovenantRatioAxis" xlink:to="fix_DebtCovenantRatioAxis_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="fix_DebtCovenantRatioAxis_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Information by different ratios applicable to debt covenants.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="fix_DebtCovenantRatioAxis_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Debt Covenant Ratio [Axis]</label>
    <loc xlink:type="locator" xlink:href="fix-20240930.xsd#fix_DebtCovenantRatioDomain" xlink:label="fix_DebtCovenantRatioDomain" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="fix_DebtCovenantRatioDomain" xlink:to="fix_DebtCovenantRatioDomain_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="fix_DebtCovenantRatioDomain_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Groups of debt covenant ratio ranges.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="fix_DebtCovenantRatioDomain_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Debt Covenant Ratio [Domain]</label>
    <loc xlink:type="locator" xlink:href="fix-20240930.xsd#fix_DebtCovenantRatioRangeOneMember" xlink:label="fix_DebtCovenantRatioRangeOneMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="fix_DebtCovenantRatioRangeOneMember" xlink:to="fix_DebtCovenantRatioRangeOneMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="fix_DebtCovenantRatioRangeOneMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Represents activity related to range one of specified debt covenant.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="fix_DebtCovenantRatioRangeOneMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Consolidated Total Indebtedness to Credit Facility Adjusted EBITDA: Less than 1.00</label>
    <loc xlink:type="locator" xlink:href="fix-20240930.xsd#fix_DebtCovenantRatioRangeTwoMember" xlink:label="fix_DebtCovenantRatioRangeTwoMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="fix_DebtCovenantRatioRangeTwoMember" xlink:to="fix_DebtCovenantRatioRangeTwoMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="fix_DebtCovenantRatioRangeTwoMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Represents activity related to range two of specified debt covenant.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="fix_DebtCovenantRatioRangeTwoMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Consolidated Total Indebtedness to Credit Facility Adjusted EBITDA: 1.00 to less than 1.75</label>
    <loc xlink:type="locator" xlink:href="fix-20240930.xsd#fix_DebtCovenantRatioRangeThreeMember" xlink:label="fix_DebtCovenantRatioRangeThreeMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="fix_DebtCovenantRatioRangeThreeMember" xlink:to="fix_DebtCovenantRatioRangeThreeMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="fix_DebtCovenantRatioRangeThreeMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Represents activity related to range three of specified debt covenant.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="fix_DebtCovenantRatioRangeThreeMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Consolidated Total Indebtedness to Credit Facility Adjusted EBITDA: 1.75 to less than 2.50</label>
    <loc xlink:type="locator" xlink:href="fix-20240930.xsd#fix_DebtCovenantRatioRangeFourMember" xlink:label="fix_DebtCovenantRatioRangeFourMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="fix_DebtCovenantRatioRangeFourMember" xlink:to="fix_DebtCovenantRatioRangeFourMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="fix_DebtCovenantRatioRangeFourMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Represents activity related to range four of specified debt covenant.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="fix_DebtCovenantRatioRangeFourMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Consolidated Total Indebtedness to Credit Facility Adjusted EBITDA: 2.50 to less than 3.00</label>
    <loc xlink:type="locator" xlink:href="fix-20240930.xsd#fix_DebtCovenantRatioRangeFiveMember" xlink:label="fix_DebtCovenantRatioRangeFiveMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="fix_DebtCovenantRatioRangeFiveMember" xlink:to="fix_DebtCovenantRatioRangeFiveMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="fix_DebtCovenantRatioRangeFiveMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Represents activity related to range five of specified debt covenant.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="fix_DebtCovenantRatioRangeFiveMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Debt Covenant Ratio Range Five [Member]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="fix_DebtCovenantRatioRangeFiveMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Consolidated Total Indebtedness to Credit Facility Adjusted EBITDA: 3.00 or Greater</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LineOfCreditFacilityMaximumBorrowingCapacity" xlink:label="us-gaap_LineOfCreditFacilityMaximumBorrowingCapacity" xmlns="http://www.xbrl.org/2003/linkbase" />
    <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" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_LineOfCreditFacilityMaximumBorrowingCapacity_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Line of Credit Facility, Maximum Borrowing Capacity</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_LineOfCreditFacilityMaximumBorrowingCapacity_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Borrowing capacity</label>
    <loc xlink:type="locator" xlink:href="fix-20240930.xsd#fix_LineOfCreditBorrowingCapacityAccordionOption" xlink:label="fix_LineOfCreditBorrowingCapacityAccordionOption" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="fix_LineOfCreditBorrowingCapacityAccordionOption" xlink:to="fix_LineOfCreditBorrowingCapacityAccordionOption_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="fix_LineOfCreditBorrowingCapacityAccordionOption_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Accordion option on credit facility per terms of the agreement.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="fix_LineOfCreditBorrowingCapacityAccordionOption_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Line of Credit, Borrowing Capacity Accordion Option</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="fix_LineOfCreditBorrowingCapacityAccordionOption_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Line of credit borrowing capacity accordion option</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LineOfCredit" xlink:label="us-gaap_LineOfCredit" xmlns="http://www.xbrl.org/2003/linkbase" />
    <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" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_LineOfCredit_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Long-Term Line of Credit</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_LineOfCredit_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Outstanding borrowings</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LettersOfCreditOutstandingAmount" xlink:label="us-gaap_LettersOfCreditOutstandingAmount" xmlns="http://www.xbrl.org/2003/linkbase" />
    <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" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_LettersOfCreditOutstandingAmount_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Letters of Credit Outstanding, Amount</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_LettersOfCreditOutstandingAmount_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Letters of credit amount outstanding</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LineOfCreditFacilityRemainingBorrowingCapacity" xlink:label="us-gaap_LineOfCreditFacilityRemainingBorrowingCapacity" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LineOfCreditFacilityRemainingBorrowingCapacity" xlink:to="us-gaap_LineOfCreditFacilityRemainingBorrowingCapacity_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_LineOfCreditFacilityRemainingBorrowingCapacity_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Line of Credit Facility, Remaining Borrowing Capacity</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_LineOfCreditFacilityRemainingBorrowingCapacity_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Credit available</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DebtInstrumentInterestRateEffectivePercentageAbstract" xlink:label="us-gaap_DebtInstrumentInterestRateEffectivePercentageAbstract" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DebtInstrumentInterestRateEffectivePercentageAbstract" xlink:to="us-gaap_DebtInstrumentInterestRateEffectivePercentageAbstract_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_DebtInstrumentInterestRateEffectivePercentageAbstract_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Debt Instrument, Interest Rate, Effective Percentage [Abstract]</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DebtInstrumentBasisSpreadOnVariableRate1" xlink:label="us-gaap_DebtInstrumentBasisSpreadOnVariableRate1" xmlns="http://www.xbrl.org/2003/linkbase" />
    <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" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_DebtInstrumentBasisSpreadOnVariableRate1_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Debt Instrument, Basis Spread on Variable Rate</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_DebtInstrumentBasisSpreadOnVariableRate1_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Additional per annum interest margin (as a percent)</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LineOfCreditFacilityUnusedCapacityCommitmentFeePercentage" xlink:label="us-gaap_LineOfCreditFacilityUnusedCapacityCommitmentFeePercentage" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LineOfCreditFacilityUnusedCapacityCommitmentFeePercentage" xlink:to="us-gaap_LineOfCreditFacilityUnusedCapacityCommitmentFeePercentage_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_LineOfCreditFacilityUnusedCapacityCommitmentFeePercentage_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Line of Credit Facility, Unused Capacity, Commitment Fee Percentage</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_LineOfCreditFacilityUnusedCapacityCommitmentFeePercentage_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Commitment fees payable on unused portion of the facility (as a percent)</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LongTermDebtOtherDisclosuresAbstract" xlink:label="us-gaap_LongTermDebtOtherDisclosuresAbstract" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LongTermDebtOtherDisclosuresAbstract" xlink:to="us-gaap_LongTermDebtOtherDisclosuresAbstract_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_LongTermDebtOtherDisclosuresAbstract_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Long-Term Debt, Other Disclosure [Abstract]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_LongTermDebtOtherDisclosuresAbstract_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Other disclosures</label>
    <loc xlink:type="locator" xlink:href="fix-20240930.xsd#fix_CumulativeNumberOfCompaniesAcquiredOutstandingNotesToFormerOwners" xlink:label="fix_CumulativeNumberOfCompaniesAcquiredOutstandingNotesToFormerOwners" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="fix_CumulativeNumberOfCompaniesAcquiredOutstandingNotesToFormerOwners" xlink:to="fix_CumulativeNumberOfCompaniesAcquiredOutstandingNotesToFormerOwners_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="fix_CumulativeNumberOfCompaniesAcquiredOutstandingNotesToFormerOwners_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">The cumulative number of companies acquired by the entity whereby there are outstanding notes to former owners.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="fix_CumulativeNumberOfCompaniesAcquiredOutstandingNotesToFormerOwners_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Cumulative Number Of Companies Acquired Outstanding, Notes To Former Owners</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="fix_CumulativeNumberOfCompaniesAcquiredOutstandingNotesToFormerOwners_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Cumulative number of companies acquired</label>
    <loc xlink:type="locator" xlink:href="fix-20240930.xsd#fix_DebtMaturityDateAxis" xlink:label="fix_DebtMaturityDateAxis" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="fix_DebtMaturityDateAxis" xlink:to="fix_DebtMaturityDateAxis_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="fix_DebtMaturityDateAxis_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">It represents the information pertaining to debt maturity date.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="fix_DebtMaturityDateAxis_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Debt Maturity Date [Axis]</label>
    <loc xlink:type="locator" xlink:href="fix-20240930.xsd#fix_DebtMaturityDateDomain" xlink:label="fix_DebtMaturityDateDomain" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="fix_DebtMaturityDateDomain" xlink:to="fix_DebtMaturityDateDomain_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="fix_DebtMaturityDateDomain_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">It  represents debt maturity date.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="fix_DebtMaturityDateDomain_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Debt Maturity Date [Domain]</label>
    <loc xlink:type="locator" xlink:href="fix-20240930.xsd#fix_MaturityYearTwoMember" xlink:label="fix_MaturityYearTwoMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="fix_MaturityYearTwoMember" xlink:to="fix_MaturityYearTwoMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="fix_MaturityYearTwoMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Represents maturity year two.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="fix_MaturityYearTwoMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Maturity Year Two [Member]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="fix_MaturityYearTwoMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">2025</label>
    <loc xlink:type="locator" xlink:href="fix-20240930.xsd#fix_MaturityYearThreeMember" xlink:label="fix_MaturityYearThreeMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="fix_MaturityYearThreeMember" xlink:to="fix_MaturityYearThreeMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="fix_MaturityYearThreeMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Represents maturity year three.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="fix_MaturityYearThreeMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Maturity Year Three [Member]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="fix_MaturityYearThreeMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">2026</label>
    <loc xlink:type="locator" xlink:href="fix-20240930.xsd#fix_MaturityYearFourMember" xlink:label="fix_MaturityYearFourMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="fix_MaturityYearFourMember" xlink:to="fix_MaturityYearFourMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="fix_MaturityYearFourMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Represents maturity year four.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="fix_MaturityYearFourMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Maturity Year Four [Member]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="fix_MaturityYearFourMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">2027</label>
    <loc xlink:type="locator" xlink:href="fix-20240930.xsd#fix_MaturityYearFiveMember" xlink:label="fix_MaturityYearFiveMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="fix_MaturityYearFiveMember" xlink:to="fix_MaturityYearFiveMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="fix_MaturityYearFiveMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Represents maturity year five.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="fix_MaturityYearFiveMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Maturity Year Five [Member]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="fix_MaturityYearFiveMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">2028</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LongTermDebtByMaturityAbstract" xlink:label="us-gaap_LongTermDebtByMaturityAbstract" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LongTermDebtByMaturityAbstract" xlink:to="us-gaap_LongTermDebtByMaturityAbstract_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_LongTermDebtByMaturityAbstract_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Long-Term Debt, Fiscal Year Maturity [Abstract]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_LongTermDebtByMaturityAbstract_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Future principal payments of long-term debt</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DebtInstrumentInterestRateStatedPercentage" xlink:label="us-gaap_DebtInstrumentInterestRateStatedPercentage" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DebtInstrumentInterestRateStatedPercentage" xlink:to="us-gaap_DebtInstrumentInterestRateStatedPercentage_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_DebtInstrumentInterestRateStatedPercentage_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Debt Instrument, Interest Rate, Stated Percentage</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_DebtInstrumentInterestRateStatedPercentage_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Stated interest rate (as a percent)</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LesseeLeaseDescriptionTable" xlink:label="us-gaap_LesseeLeaseDescriptionTable" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LesseeLeaseDescriptionTable" xlink:to="us-gaap_LesseeLeaseDescriptionTable_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_LesseeLeaseDescriptionTable_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Lessee, Lease, Description [Table]</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LesseeLeaseDescriptionLineItems" xlink:label="us-gaap_LesseeLeaseDescriptionLineItems" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LesseeLeaseDescriptionLineItems" xlink:to="us-gaap_LesseeLeaseDescriptionLineItems_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_LesseeLeaseDescriptionLineItems_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Lessee, Lease, Description [Line Items]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_LesseeLeaseDescriptionLineItems_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Leases</label>
    <loc xlink:type="locator" xlink:href="fix-20240930.xsd#fix_VariableLeaseAndShortTermLeaseCost" xlink:label="fix_VariableLeaseAndShortTermLeaseCost" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="fix_VariableLeaseAndShortTermLeaseCost" xlink:to="fix_VariableLeaseAndShortTermLeaseCost_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="fix_VariableLeaseAndShortTermLeaseCost_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Amount of variable lease cost and short-term lease cost, excluded from lease liability, recognized when obligation for payment is incurred for finance and operating leases.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="fix_VariableLeaseAndShortTermLeaseCost_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Variable Lease and Short-term Lease, Cost</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="fix_VariableLeaseAndShortTermLeaseCost_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Variable lease expense and short-term lease expenses</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent" xlink:label="us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent" xlink:to="us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Operating Lease, Weighted Average Discount Rate, Percent</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Weighted average discount rate for operating leases</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingLeaseExpense" xlink:label="us-gaap_OperatingLeaseExpense" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OperatingLeaseExpense" xlink:to="us-gaap_OperatingLeaseExpense_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_OperatingLeaseExpense_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Operating Lease, Expense</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_OperatingLeaseExpense_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Operating lease expense</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LesseeOperatingLeaseTermOfContract" xlink:label="us-gaap_LesseeOperatingLeaseTermOfContract" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LesseeOperatingLeaseTermOfContract" xlink:to="us-gaap_LesseeOperatingLeaseTermOfContract_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_LesseeOperatingLeaseTermOfContract_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Lessee, Operating Lease, Term of Contract</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_LesseeOperatingLeaseTermOfContract_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Lease term for operating lease</label>
    <loc xlink:type="locator" xlink:href="fix-20240930.xsd#fix_NumberOfOptionsToRenew" xlink:label="fix_NumberOfOptionsToRenew" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="fix_NumberOfOptionsToRenew" xlink:to="fix_NumberOfOptionsToRenew_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="fix_NumberOfOptionsToRenew_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Represents the number of options to renew.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="fix_NumberOfOptionsToRenew_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Number of Options to Renew</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="fix_NumberOfOptionsToRenew_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Number of options to renew</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1" xlink:label="us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1" xlink:to="us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Operating Lease, Weighted Average Remaining Lease Term</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Weighted average remaining lease term</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PaymentsForRent" xlink:label="us-gaap_PaymentsForRent" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PaymentsForRent" xlink:to="us-gaap_PaymentsForRent_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_PaymentsForRent_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Payments for Rent</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_PaymentsForRent_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Rent paid to related parties</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LesseeOperatingLeaseExistenceOfOptionToExtend" xlink:label="us-gaap_LesseeOperatingLeaseExistenceOfOptionToExtend" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LesseeOperatingLeaseExistenceOfOptionToExtend" xlink:to="us-gaap_LesseeOperatingLeaseExistenceOfOptionToExtend_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_LesseeOperatingLeaseExistenceOfOptionToExtend_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Lessee, Operating Lease, Existence of Option to Extend [true false]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_LesseeOperatingLeaseExistenceOfOptionToExtend_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Existence of option to extend</label>
    <loc xlink:type="locator" xlink:href="fix-20240930.xsd#fix_NumberOfOffSiteConstructionRealEstateLeasesCommenced" xlink:label="fix_NumberOfOffSiteConstructionRealEstateLeasesCommenced" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="fix_NumberOfOffSiteConstructionRealEstateLeasesCommenced" xlink:to="fix_NumberOfOffSiteConstructionRealEstateLeasesCommenced_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="fix_NumberOfOffSiteConstructionRealEstateLeasesCommenced_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Number of off-site construction real estate leases commenced.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="fix_NumberOfOffSiteConstructionRealEstateLeasesCommenced_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Number Of Off-site Construction Real Estate Leases Commenced</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="fix_NumberOfOffSiteConstructionRealEstateLeasesCommenced_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Number of off-site construction real estate leases commenced</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AssetsAndLiabilitiesLesseeAbstract" xlink:label="us-gaap_AssetsAndLiabilitiesLesseeAbstract" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AssetsAndLiabilitiesLesseeAbstract" xlink:to="us-gaap_AssetsAndLiabilitiesLesseeAbstract_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_AssetsAndLiabilitiesLesseeAbstract_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Assets and Liabilities, Lessee [Abstract]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_AssetsAndLiabilitiesLesseeAbstract_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Summary of lease asset and liabilities</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingLeaseLiabilityAbstract" xlink:label="us-gaap_OperatingLeaseLiabilityAbstract" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OperatingLeaseLiabilityAbstract" xlink:to="us-gaap_OperatingLeaseLiabilityAbstract_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_OperatingLeaseLiabilityAbstract_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Operating Lease, Liability [Abstract]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_OperatingLeaseLiabilityAbstract_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Operating lease liabilities:</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingLeaseLiabilityCurrent" xlink:label="us-gaap_OperatingLeaseLiabilityCurrent" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OperatingLeaseLiabilityCurrent" xlink:to="us-gaap_OperatingLeaseLiabilityCurrent_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_OperatingLeaseLiabilityCurrent_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Operating Lease, Liability, Current</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_OperatingLeaseLiabilityCurrent_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Other current liabilities</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingLeaseLiabilityCurrentStatementOfFinancialPositionExtensibleList" xlink:label="us-gaap_OperatingLeaseLiabilityCurrentStatementOfFinancialPositionExtensibleList" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OperatingLeaseLiabilityCurrentStatementOfFinancialPositionExtensibleList" xlink:to="us-gaap_OperatingLeaseLiabilityCurrentStatementOfFinancialPositionExtensibleList_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_OperatingLeaseLiabilityCurrentStatementOfFinancialPositionExtensibleList_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Operating Lease, Liability, Current, Statement of Financial Position [Extensible Enumeration]</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingLeaseLiability" xlink:label="us-gaap_OperatingLeaseLiability" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OperatingLeaseLiability" xlink:to="us-gaap_OperatingLeaseLiability_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_OperatingLeaseLiability_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Operating Lease, Liability</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:label="us-gaap_OperatingLeaseLiability_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Total operating lease liabilities</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_OperatingLeaseLiability_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Present Value of Operating Lease Liabilities</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingLeaseLiabilitiesPaymentsDueAbstract" xlink:label="us-gaap_OperatingLeaseLiabilitiesPaymentsDueAbstract" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OperatingLeaseLiabilitiesPaymentsDueAbstract" xlink:to="us-gaap_OperatingLeaseLiabilitiesPaymentsDueAbstract_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_OperatingLeaseLiabilitiesPaymentsDueAbstract_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Lessee, Operating Lease, Liability, to be Paid, Fiscal Year Maturity [Abstract]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_OperatingLeaseLiabilitiesPaymentsDueAbstract_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Maturities of lease liabilities:</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsRemainderOfFiscalYear" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsRemainderOfFiscalYear" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LesseeOperatingLeaseLiabilityPaymentsRemainderOfFiscalYear" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsRemainderOfFiscalYear_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsRemainderOfFiscalYear_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Lessee, Operating Lease, Liability, to be Paid, Remainder of Fiscal Year</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsRemainderOfFiscalYear_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">2024 (excluding the nine months ended September 30, 2024)</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Lessee, Operating Lease, Liability, to be Paid, Year One</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">2025</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Lessee, Operating Lease, Liability, to be Paid, Year Two</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">2026</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Lessee, Operating Lease, Liability, to be Paid, Year Three</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">2027</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Lessee, Operating Lease, Liability, to be Paid, Year Four</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">2028</label>
    <loc xlink:type="locator" xlink:href="fix-20240930.xsd#fix_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFour" xlink:label="fix_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFour" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="fix_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFour" xlink:to="fix_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFour_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="fix_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFour_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Amount of lessee's undiscounted obligation for lease payments for operating lease, due after fourth fiscal year following latest fiscal year.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="fix_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFour_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Lessee Operating Lease Liability Payments Due After Year Four</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="fix_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFour_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Thereafter</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Lessee, Operating Lease, Liability, to be Paid</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Total Lease Payments</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Lessee, Operating Lease, Liability, Undiscounted Excess Amount</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Less-Present Value Discount</label>
    <loc xlink:type="locator" xlink:href="fix-20240930.xsd#fix_SupplementalInformationRelatedToLeasesAbstract" xlink:label="fix_SupplementalInformationRelatedToLeasesAbstract" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="fix_SupplementalInformationRelatedToLeasesAbstract" xlink:to="fix_SupplementalInformationRelatedToLeasesAbstract_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="fix_SupplementalInformationRelatedToLeasesAbstract_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">No definition available.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="fix_SupplementalInformationRelatedToLeasesAbstract_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Supplemental Information Related to Leases [Abstract]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="fix_SupplementalInformationRelatedToLeasesAbstract_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Supplemental information related to leases:</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingLeasePayments" xlink:label="us-gaap_OperatingLeasePayments" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OperatingLeasePayments" xlink:to="us-gaap_OperatingLeasePayments_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_OperatingLeasePayments_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Operating Lease, Payments</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_OperatingLeasePayments_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Cash paid for amounts included in the measurement of operating lease liabilities</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability" xlink:label="us-gaap_RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability" xlink:to="us-gaap_RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Right-of-Use Asset Obtained in Exchange for Operating Lease Liability</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Operating lease right-of-use assets obtained in exchange for lease liabilities</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LossContingenciesTable" xlink:label="us-gaap_LossContingenciesTable" xmlns="http://www.xbrl.org/2003/linkbase" />
    <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" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_LossContingenciesTable_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Loss Contingencies [Table]</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeStatementLocationAxis" xlink:label="us-gaap_IncomeStatementLocationAxis" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncomeStatementLocationAxis" xlink:to="us-gaap_IncomeStatementLocationAxis_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_IncomeStatementLocationAxis_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Statement of Income Location, Balance [Axis]</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeStatementLocationDomain" xlink:label="us-gaap_IncomeStatementLocationDomain" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncomeStatementLocationDomain" xlink:to="us-gaap_IncomeStatementLocationDomain_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_IncomeStatementLocationDomain_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Statement of Income Location, Balance [Domain]</label>
    <loc xlink:type="locator" xlink:href="fix-20240930.xsd#fix_GrossProfitMember" xlink:label="fix_GrossProfitMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="fix_GrossProfitMember" xlink:to="fix_GrossProfitMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="fix_GrossProfitMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Primary financial statement caption encompassing gross profit.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="fix_GrossProfitMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Gross Profit.</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SellingGeneralAndAdministrativeExpensesMember" xlink:label="us-gaap_SellingGeneralAndAdministrativeExpensesMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SellingGeneralAndAdministrativeExpensesMember" xlink:to="us-gaap_SellingGeneralAndAdministrativeExpensesMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_SellingGeneralAndAdministrativeExpensesMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Selling, General and Administrative Expenses [Member]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_SellingGeneralAndAdministrativeExpensesMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Selling, General and Administrative Expenses</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_InterestIncomeMember" xlink:label="us-gaap_InterestIncomeMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_InterestIncomeMember" xlink:to="us-gaap_InterestIncomeMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_InterestIncomeMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Interest Income [Member]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_InterestIncomeMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Interest Income</label>
    <loc xlink:type="locator" xlink:href="fix-20240930.xsd#fix_BusinessCombinationContingentConsiderationChangeInContingentConsiderationLiabilityMember" xlink:label="fix_BusinessCombinationContingentConsiderationChangeInContingentConsiderationLiabilityMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="fix_BusinessCombinationContingentConsiderationChangeInContingentConsiderationLiabilityMember" xlink:to="fix_BusinessCombinationContingentConsiderationChangeInContingentConsiderationLiabilityMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="fix_BusinessCombinationContingentConsiderationChangeInContingentConsiderationLiabilityMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Primary financial statement caption encompassing change in the value of a contingent consideration liability.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="fix_BusinessCombinationContingentConsiderationChangeInContingentConsiderationLiabilityMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Business Combination, Contingent Consideration, Change in Contingent Consideration, Liability</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="fix_BusinessCombinationContingentConsiderationChangeInContingentConsiderationLiabilityMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Change in Fair Value of Contingent Earn-Out Obligations</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LossContingenciesByNatureOfContingencyAxis" xlink:label="us-gaap_LossContingenciesByNatureOfContingencyAxis" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LossContingenciesByNatureOfContingencyAxis" xlink:to="us-gaap_LossContingenciesByNatureOfContingencyAxis_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_LossContingenciesByNatureOfContingencyAxis_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Loss Contingency Nature [Axis]</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LossContingencyNatureDomain" xlink:label="us-gaap_LossContingencyNatureDomain" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LossContingencyNatureDomain" xlink:to="us-gaap_LossContingencyNatureDomain_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_LossContingencyNatureDomain_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Loss Contingency, Nature [Domain]</label>
    <loc xlink:type="locator" xlink:href="fix-20240930.xsd#fix_DisputeWithCustomerMember" xlink:label="fix_DisputeWithCustomerMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="fix_DisputeWithCustomerMember" xlink:to="fix_DisputeWithCustomerMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="fix_DisputeWithCustomerMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">The risk of loss pertaining to dispute with customer.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="fix_DisputeWithCustomerMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Dispute With Customer</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SuretyBondMember" xlink:label="us-gaap_SuretyBondMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SuretyBondMember" xlink:to="us-gaap_SuretyBondMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_SuretyBondMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Surety Bond [Member]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_SuretyBondMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Surety</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LossContingenciesLineItems" xlink:label="us-gaap_LossContingenciesLineItems" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LossContingenciesLineItems" xlink:to="us-gaap_LossContingenciesLineItems_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_LossContingenciesLineItems_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Loss Contingencies [Line Items]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_LossContingenciesLineItems_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Commitments and Contingencies</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_GainLossRelatedToLitigationSettlement" xlink:label="us-gaap_GainLossRelatedToLitigationSettlement" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_GainLossRelatedToLitigationSettlement" xlink:to="us-gaap_GainLossRelatedToLitigationSettlement_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_GainLossRelatedToLitigationSettlement_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Gain (Loss) from Litigation Settlement</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_GainLossRelatedToLitigationSettlement_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Gain (loss) related to settlement agreements</label>
    <loc xlink:type="locator" xlink:href="fix-20240930.xsd#fix_LossContingencySuretyAbstract" xlink:label="fix_LossContingencySuretyAbstract" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="fix_LossContingencySuretyAbstract" xlink:to="fix_LossContingencySuretyAbstract_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="fix_LossContingencySuretyAbstract_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Loss Contingency Surety [Abstract]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="fix_LossContingencySuretyAbstract_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Surety</label>
    <loc xlink:type="locator" xlink:href="fix-20240930.xsd#fix_PercentageOfBusinessWhichHasRequiredBonds" xlink:label="fix_PercentageOfBusinessWhichHasRequiredBonds" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="fix_PercentageOfBusinessWhichHasRequiredBonds" xlink:to="fix_PercentageOfBusinessWhichHasRequiredBonds_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="fix_PercentageOfBusinessWhichHasRequiredBonds_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Represents the percentage of business which has required bonds.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="fix_PercentageOfBusinessWhichHasRequiredBonds_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Percentage of Business which has Required Bonds</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="fix_PercentageOfBusinessWhichHasRequiredBonds_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Percentage of business which has required bonds</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_WeightedAverageNumberOfSharesOutstandingDilutedDisclosureItemsAbstract" xlink:label="us-gaap_WeightedAverageNumberOfSharesOutstandingDilutedDisclosureItemsAbstract" xmlns="http://www.xbrl.org/2003/linkbase" />
    <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" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_WeightedAverageNumberOfSharesOutstandingDilutedDisclosureItemsAbstract_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Weighted Average Number of Shares Outstanding Reconciliation [Abstract]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_WeightedAverageNumberOfSharesOutstandingDilutedDisclosureItemsAbstract_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Reconciliation of the number of shares outstanding with the number of shares used in computing basic and diluted earnings per share</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CommonStockSharesOutstanding" xlink:label="us-gaap_CommonStockSharesOutstanding" xmlns="http://www.xbrl.org/2003/linkbase" />
    <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" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_CommonStockSharesOutstanding_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Common Stock, Shares, Outstanding</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_CommonStockSharesOutstanding_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Common shares outstanding, end of period</label>
    <loc xlink:type="locator" xlink:href="fix-20240930.xsd#fix_EffectOfUsingWeightedAverageCommonSharesOutstanding" xlink:label="fix_EffectOfUsingWeightedAverageCommonSharesOutstanding" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="fix_EffectOfUsingWeightedAverageCommonSharesOutstanding" xlink:to="fix_EffectOfUsingWeightedAverageCommonSharesOutstanding_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="fix_EffectOfUsingWeightedAverageCommonSharesOutstanding_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Represents the effect of using weighted average common shares outstanding.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="fix_EffectOfUsingWeightedAverageCommonSharesOutstanding_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Effect of Using Weighted Average Common Shares, Outstanding</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="fix_EffectOfUsingWeightedAverageCommonSharesOutstanding_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Effect of using weighted average common shares outstanding</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncrementalCommonSharesAttributableToShareBasedPaymentArrangements" xlink:label="us-gaap_IncrementalCommonSharesAttributableToShareBasedPaymentArrangements" xmlns="http://www.xbrl.org/2003/linkbase" />
    <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" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_IncrementalCommonSharesAttributableToShareBasedPaymentArrangements_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Incremental Common Shares Attributable to Dilutive Effect of Share-Based Payment Arrangements</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_IncrementalCommonSharesAttributableToShareBasedPaymentArrangements_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Effect of shares issuable under stock option plans based on the treasury stock method</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncrementalCommonSharesAttributableToContingentlyIssuableShares" xlink:label="us-gaap_IncrementalCommonSharesAttributableToContingentlyIssuableShares" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncrementalCommonSharesAttributableToContingentlyIssuableShares" xlink:to="us-gaap_IncrementalCommonSharesAttributableToContingentlyIssuableShares_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_IncrementalCommonSharesAttributableToContingentlyIssuableShares_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Incremental Common Shares Attributable to Dilutive Effect of Contingently Issuable Shares</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_IncrementalCommonSharesAttributableToContingentlyIssuableShares_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Effect of restricted and contingently issuable shares</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:label="us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xmlns="http://www.xbrl.org/2003/linkbase" />
    <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" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Schedule of Share-Based Compensation Arrangements by Share-Based Payment Award [Table]</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PlanNameAxis" xlink:label="us-gaap_PlanNameAxis" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PlanNameAxis" xlink:to="us-gaap_PlanNameAxis_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_PlanNameAxis_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Plan Name [Axis]</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PlanNameDomain" xlink:label="us-gaap_PlanNameDomain" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PlanNameDomain" xlink:to="us-gaap_PlanNameDomain_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_PlanNameDomain_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Plan Name [Domain]</label>
    <loc xlink:type="locator" xlink:href="fix-20240930.xsd#fix_StockRepurchaseProgram2007Member" xlink:label="fix_StockRepurchaseProgram2007Member" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="fix_StockRepurchaseProgram2007Member" xlink:to="fix_StockRepurchaseProgram2007Member_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="fix_StockRepurchaseProgram2007Member_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Information pertaining to the March 2007 stock repurchase program.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="fix_StockRepurchaseProgram2007Member_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Stock Repurchase Program 2007</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xmlns="http://www.xbrl.org/2003/linkbase" />
    <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" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Share-Based Compensation Arrangement by Share-Based Payment Award [Line Items]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Stockholders' Equity</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DisclosureOfRepurchaseAgreementsAbstract" xlink:label="us-gaap_DisclosureOfRepurchaseAgreementsAbstract" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DisclosureOfRepurchaseAgreementsAbstract" xlink:to="us-gaap_DisclosureOfRepurchaseAgreementsAbstract_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_DisclosureOfRepurchaseAgreementsAbstract_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Disclosure of Repurchase Agreements [Abstract]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_DisclosureOfRepurchaseAgreementsAbstract_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Share Repurchase Program</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_StockRepurchaseProgramNumberOfSharesAuthorizedToBeRepurchased" xlink:label="srt_StockRepurchaseProgramNumberOfSharesAuthorizedToBeRepurchased" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="srt_StockRepurchaseProgramNumberOfSharesAuthorizedToBeRepurchased" xlink:to="srt_StockRepurchaseProgramNumberOfSharesAuthorizedToBeRepurchased_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="srt_StockRepurchaseProgramNumberOfSharesAuthorizedToBeRepurchased_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Share Repurchase Program, Authorized, Number of Shares</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="srt_StockRepurchaseProgramNumberOfSharesAuthorizedToBeRepurchased_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Number of shares of outstanding common stock authorized to be acquired under a stock repurchase program</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_TreasuryStockAcquiredAverageCostPerShare" xlink:label="us-gaap_TreasuryStockAcquiredAverageCostPerShare" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_TreasuryStockAcquiredAverageCostPerShare" xlink:to="us-gaap_TreasuryStockAcquiredAverageCostPerShare_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_TreasuryStockAcquiredAverageCostPerShare_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Shares Acquired, Average Cost Per Share</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_TreasuryStockAcquiredAverageCostPerShare_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Average price (in dollars per share)</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" xlink:label="us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" xmlns="http://www.xbrl.org/2003/linkbase" />
    <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" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Antidilutive Securities Excluded from Computation of Earnings Per Share, Amount</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Anti-dilutive securities excluded from computation of earnings per share amount (in shares)</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfSegmentReportingInformationBySegmentTable" xlink:label="us-gaap_ScheduleOfSegmentReportingInformationBySegmentTable" xmlns="http://www.xbrl.org/2003/linkbase" />
    <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" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ScheduleOfSegmentReportingInformationBySegmentTable_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Schedule of Segment Reporting Information, by Segment [Table]</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_ConsolidationItemsAxis" xlink:label="srt_ConsolidationItemsAxis" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="srt_ConsolidationItemsAxis" xlink:to="srt_ConsolidationItemsAxis_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="srt_ConsolidationItemsAxis_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Consolidation Items [Axis]</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_ConsolidationItemsDomain" xlink:label="srt_ConsolidationItemsDomain" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="srt_ConsolidationItemsDomain" xlink:to="srt_ConsolidationItemsDomain_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="srt_ConsolidationItemsDomain_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Consolidation Items [Domain]</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingSegmentsMember" xlink:label="us-gaap_OperatingSegmentsMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <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" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_OperatingSegmentsMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Operating Segments [Member]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_OperatingSegmentsMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Operating Segments</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SegmentReportingInformationLineItems" xlink:label="us-gaap_SegmentReportingInformationLineItems" xmlns="http://www.xbrl.org/2003/linkbase" />
    <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" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_SegmentReportingInformationLineItems_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Segment Reporting Information [Line Items]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_SegmentReportingInformationLineItems_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Segment Information</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NumberOfReportableSegments" xlink:label="us-gaap_NumberOfReportableSegments" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_NumberOfReportableSegments" xlink:to="us-gaap_NumberOfReportableSegments_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_NumberOfReportableSegments_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Number of Reportable Segments</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_NumberOfReportableSegments_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Number of reportable segments</label>
  </link:labelLink>
</link:linkbase>
</XBRL>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-101.PRE
<SEQUENCE>10
<FILENAME>fix-20240930_pre.xml
<DESCRIPTION>EX-101.PRE
<TEXT>
<XBRL>
<?xml version="1.0" encoding="utf-8"?>
<!--XBRL document created with Toppan Merrill Bridge  10.8.0.95 -->
<!--Based on XBRL 2.1-->
<!--Created on: 10/24/2024 8:25:24 PM-->
<!--Modified on: 10/24/2024 8:25:24 PM-->
<link:linkbase xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.xbrl.org/2003/linkbase http://www.xbrl.org/2003/xbrl-linkbase-2003-12-31.xsd" xmlns:link="http://www.xbrl.org/2003/linkbase" xmlns:xbrli="http://www.xbrl.org/2003/instance" xmlns:xlink="http://www.w3.org/1999/xlink">
  <roleRef xlink:type="simple" xlink:href="fix-20240930.xsd#DocumentDocumentAndEntityInformation" roleURI="http://www.comfortsystemsusa.com/role/DocumentDocumentAndEntityInformation" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="fix-20240930.xsd#StatementConsolidatedBalanceSheets" roleURI="http://www.comfortsystemsusa.com/role/StatementConsolidatedBalanceSheets" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="fix-20240930.xsd#StatementConsolidatedBalanceSheetsParenthetical" roleURI="http://www.comfortsystemsusa.com/role/StatementConsolidatedBalanceSheetsParenthetical" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="fix-20240930.xsd#StatementConsolidatedStatementsOfOperations" roleURI="http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfOperations" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="fix-20240930.xsd#StatementConsolidatedStatementsOfStockholdersEquity" roleURI="http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfStockholdersEquity" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="fix-20240930.xsd#StatementConsolidatedStatementsOfStockholdersEquityParenthetical" roleURI="http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfStockholdersEquityParenthetical" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="fix-20240930.xsd#StatementConsolidatedStatementsOfCashFlows" roleURI="http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfCashFlows" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="fix-20240930.xsd#DisclosureBusinessAndOrganization" roleURI="http://www.comfortsystemsusa.com/role/DisclosureBusinessAndOrganization" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="fix-20240930.xsd#DisclosureSummaryOfSignificantAccountingPoliciesAndEstimates" roleURI="http://www.comfortsystemsusa.com/role/DisclosureSummaryOfSignificantAccountingPoliciesAndEstimates" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="fix-20240930.xsd#DisclosureRevenueFromContractsWithCustomers" roleURI="http://www.comfortsystemsusa.com/role/DisclosureRevenueFromContractsWithCustomers" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="fix-20240930.xsd#DisclosureFairValueMeasurements" roleURI="http://www.comfortsystemsusa.com/role/DisclosureFairValueMeasurements" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="fix-20240930.xsd#DisclosureAcquisitions" roleURI="http://www.comfortsystemsusa.com/role/DisclosureAcquisitions" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="fix-20240930.xsd#DisclosureGoodwillAndIdentifiableIntangibleAssetsNet" roleURI="http://www.comfortsystemsusa.com/role/DisclosureGoodwillAndIdentifiableIntangibleAssetsNet" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="fix-20240930.xsd#DisclosureDebtObligations" roleURI="http://www.comfortsystemsusa.com/role/DisclosureDebtObligations" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="fix-20240930.xsd#DisclosureLeases" roleURI="http://www.comfortsystemsusa.com/role/DisclosureLeases" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="fix-20240930.xsd#DisclosureCommitmentsAndContingencies" roleURI="http://www.comfortsystemsusa.com/role/DisclosureCommitmentsAndContingencies" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="fix-20240930.xsd#DisclosureStockholdersEquity" roleURI="http://www.comfortsystemsusa.com/role/DisclosureStockholdersEquity" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="fix-20240930.xsd#DisclosureSegmentInformation" roleURI="http://www.comfortsystemsusa.com/role/DisclosureSegmentInformation" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="fix-20240930.xsd#DisclosureSummaryOfSignificantAccountingPoliciesAndEstimatesPolicies" roleURI="http://www.comfortsystemsusa.com/role/DisclosureSummaryOfSignificantAccountingPoliciesAndEstimatesPolicies" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="fix-20240930.xsd#DisclosureRevenueFromContractsWithCustomersTables" roleURI="http://www.comfortsystemsusa.com/role/DisclosureRevenueFromContractsWithCustomersTables" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="fix-20240930.xsd#DisclosureFairValueMeasurementsTables" roleURI="http://www.comfortsystemsusa.com/role/DisclosureFairValueMeasurementsTables" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="fix-20240930.xsd#DisclosureAcquisitionsTables" roleURI="http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsTables" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="fix-20240930.xsd#DisclosureGoodwillAndIdentifiableIntangibleAssetsNetTables" roleURI="http://www.comfortsystemsusa.com/role/DisclosureGoodwillAndIdentifiableIntangibleAssetsNetTables" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="fix-20240930.xsd#DisclosureDebtObligationsTables" roleURI="http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsTables" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="fix-20240930.xsd#DisclosureLeasesTables" roleURI="http://www.comfortsystemsusa.com/role/DisclosureLeasesTables" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="fix-20240930.xsd#DisclosureStockholdersEquityTables" roleURI="http://www.comfortsystemsusa.com/role/DisclosureStockholdersEquityTables" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="fix-20240930.xsd#DisclosureSegmentInformationTables" roleURI="http://www.comfortsystemsusa.com/role/DisclosureSegmentInformationTables" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="fix-20240930.xsd#DisclosureSummaryOfSignificantAccountingPoliciesAndEstimatesIncomeTaxesDetails" roleURI="http://www.comfortsystemsusa.com/role/DisclosureSummaryOfSignificantAccountingPoliciesAndEstimatesIncomeTaxesDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="fix-20240930.xsd#DisclosureSummaryOfSignificantAccountingPoliciesAndEstimatesInvestmentsDetails" roleURI="http://www.comfortsystemsusa.com/role/DisclosureSummaryOfSignificantAccountingPoliciesAndEstimatesInvestmentsDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="fix-20240930.xsd#DisclosureRevenueFromContractsWithCustomersNarrativesDetails" roleURI="http://www.comfortsystemsusa.com/role/DisclosureRevenueFromContractsWithCustomersNarrativesDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="fix-20240930.xsd#DisclosureRevenueFromContractsWithCustomersDisaggregationOfRevenueDetails" roleURI="http://www.comfortsystemsusa.com/role/DisclosureRevenueFromContractsWithCustomersDisaggregationOfRevenueDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="fix-20240930.xsd#DisclosureRevenueFromContractsWithCustomersContractAssetsAndLiabilitiesDetails" roleURI="http://www.comfortsystemsusa.com/role/DisclosureRevenueFromContractsWithCustomersContractAssetsAndLiabilitiesDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="fix-20240930.xsd#DisclosureRevenueFromContractsWithCustomersRemainingPerformanceObligationsDetails" roleURI="http://www.comfortsystemsusa.com/role/DisclosureRevenueFromContractsWithCustomersRemainingPerformanceObligationsDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="fix-20240930.xsd#DisclosureFairValueMeasurementsDetails" roleURI="http://www.comfortsystemsusa.com/role/DisclosureFairValueMeasurementsDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="fix-20240930.xsd#DisclosureAcquisitionsDetails" roleURI="http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="fix-20240930.xsd#DisclosureAcquisitionsAcquiredIntangibleAssetsDetails" roleURI="http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsAcquiredIntangibleAssetsDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="fix-20240930.xsd#DisclosureAcquisitionsOtherAcquisitionsDetails" roleURI="http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsOtherAcquisitionsDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="fix-20240930.xsd#DisclosureGoodwillAndIdentifiableIntangibleAssetsNetChangesInCarryingAmountOfGoodwillDetails" roleURI="http://www.comfortsystemsusa.com/role/DisclosureGoodwillAndIdentifiableIntangibleAssetsNetChangesInCarryingAmountOfGoodwillDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="fix-20240930.xsd#DisclosureGoodwillAndIdentifiableIntangibleAssetsNetIdentifiableIntangibleAssetsNetDetails" roleURI="http://www.comfortsystemsusa.com/role/DisclosureGoodwillAndIdentifiableIntangibleAssetsNetIdentifiableIntangibleAssetsNetDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="fix-20240930.xsd#DisclosureDebtObligationsDetails" roleURI="http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="fix-20240930.xsd#DisclosureDebtObligationsOtherDetails" roleURI="http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsOtherDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="fix-20240930.xsd#DisclosureDebtObligationsNotesToFormerOwnersDetails" roleURI="http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsNotesToFormerOwnersDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="fix-20240930.xsd#DisclosureLeasesDetails" roleURI="http://www.comfortsystemsusa.com/role/DisclosureLeasesDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="fix-20240930.xsd#DisclosureLeasesSummaryOfOperatingLeaseAssetsAndLiabilitiesDetails" roleURI="http://www.comfortsystemsusa.com/role/DisclosureLeasesSummaryOfOperatingLeaseAssetsAndLiabilitiesDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="fix-20240930.xsd#DisclosureLeasesMaturitiesOfLeaseLiabilitiesDetails" roleURI="http://www.comfortsystemsusa.com/role/DisclosureLeasesMaturitiesOfLeaseLiabilitiesDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="fix-20240930.xsd#DisclosureCommitmentsAndContingenciesDetails" roleURI="http://www.comfortsystemsusa.com/role/DisclosureCommitmentsAndContingenciesDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="fix-20240930.xsd#DisclosureStockholdersEquityNumberOfSharesDetails" roleURI="http://www.comfortsystemsusa.com/role/DisclosureStockholdersEquityNumberOfSharesDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="fix-20240930.xsd#DisclosureStockholdersEquityIncentiveAndOtherDetails" roleURI="http://www.comfortsystemsusa.com/role/DisclosureStockholdersEquityIncentiveAndOtherDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="fix-20240930.xsd#DisclosureSegmentInformationDetails" roleURI="http://www.comfortsystemsusa.com/role/DisclosureSegmentInformationDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#InsiderTradingArrangements" roleURI="http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements" xmlns="http://www.xbrl.org/2003/linkbase" />
  <presentationLink xlink:role="http://www.comfortsystemsusa.com/role/DocumentDocumentAndEntityInformation" xlink:type="extended" xlink:title="995200090 - Document - Document and Entity Information" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_CoverAbstract" xlink:label="dei_CoverAbstract" />
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_DocumentType" xlink:label="dei_DocumentType_638653983207781833" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_CoverAbstract" xlink:to="dei_DocumentType_638653983207781833" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_DocumentQuarterlyReport" xlink:label="dei_DocumentQuarterlyReport_638653983207781833" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_CoverAbstract" xlink:to="dei_DocumentQuarterlyReport_638653983207781833" order="2" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_DocumentPeriodEndDate" xlink:label="dei_DocumentPeriodEndDate_638653983207781833" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_CoverAbstract" xlink:to="dei_DocumentPeriodEndDate_638653983207781833" order="3" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_DocumentTransitionReport" xlink:label="dei_DocumentTransitionReport_638653983207791835" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_CoverAbstract" xlink:to="dei_DocumentTransitionReport_638653983207791835" order="4" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityFileNumber" xlink:label="dei_EntityFileNumber_638653983207791835" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_CoverAbstract" xlink:to="dei_EntityFileNumber_638653983207791835" order="5" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityRegistrantName" xlink:label="dei_EntityRegistrantName_638653983207791835" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_CoverAbstract" xlink:to="dei_EntityRegistrantName_638653983207791835" order="6" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityIncorporationStateCountryCode" xlink:label="dei_EntityIncorporationStateCountryCode_638653983207791835" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_CoverAbstract" xlink:to="dei_EntityIncorporationStateCountryCode_638653983207791835" order="7" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityTaxIdentificationNumber" xlink:label="dei_EntityTaxIdentificationNumber_638653983207791835" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_CoverAbstract" xlink:to="dei_EntityTaxIdentificationNumber_638653983207791835" order="8" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityAddressAddressLine1" xlink:label="dei_EntityAddressAddressLine1_638653983207791835" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_CoverAbstract" xlink:to="dei_EntityAddressAddressLine1_638653983207791835" order="9" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityAddressAddressLine2" xlink:label="dei_EntityAddressAddressLine2_638653983207791835" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_CoverAbstract" xlink:to="dei_EntityAddressAddressLine2_638653983207791835" order="10" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityAddressCityOrTown" xlink:label="dei_EntityAddressCityOrTown_638653983207791835" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_CoverAbstract" xlink:to="dei_EntityAddressCityOrTown_638653983207791835" order="11" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityAddressStateOrProvince" xlink:label="dei_EntityAddressStateOrProvince_638653983207791835" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_CoverAbstract" xlink:to="dei_EntityAddressStateOrProvince_638653983207791835" order="12" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityAddressPostalZipCode" xlink:label="dei_EntityAddressPostalZipCode_638653983207791835" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_CoverAbstract" xlink:to="dei_EntityAddressPostalZipCode_638653983207791835" order="13" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_CityAreaCode" xlink:label="dei_CityAreaCode_638653983207791835" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_CoverAbstract" xlink:to="dei_CityAreaCode_638653983207791835" order="14" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_LocalPhoneNumber" xlink:label="dei_LocalPhoneNumber_638653983207801815" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_CoverAbstract" xlink:to="dei_LocalPhoneNumber_638653983207801815" order="15" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_Security12bTitle" xlink:label="dei_Security12bTitle_638653983207801815" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_CoverAbstract" xlink:to="dei_Security12bTitle_638653983207801815" order="16" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_TradingSymbol" xlink:label="dei_TradingSymbol_638653983207801815" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_CoverAbstract" xlink:to="dei_TradingSymbol_638653983207801815" order="17" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_SecurityExchangeName" xlink:label="dei_SecurityExchangeName_638653983207801815" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_CoverAbstract" xlink:to="dei_SecurityExchangeName_638653983207801815" order="18" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityCurrentReportingStatus" xlink:label="dei_EntityCurrentReportingStatus_638653983207801815" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_CoverAbstract" xlink:to="dei_EntityCurrentReportingStatus_638653983207801815" order="19" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityInteractiveDataCurrent" xlink:label="dei_EntityInteractiveDataCurrent_638653983207801815" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_CoverAbstract" xlink:to="dei_EntityInteractiveDataCurrent_638653983207801815" order="20" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityFilerCategory" xlink:label="dei_EntityFilerCategory_638653983207801815" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_CoverAbstract" xlink:to="dei_EntityFilerCategory_638653983207801815" order="21" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntitySmallBusiness" xlink:label="dei_EntitySmallBusiness_638653983207801815" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_CoverAbstract" xlink:to="dei_EntitySmallBusiness_638653983207801815" order="22" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityEmergingGrowthCompany" xlink:label="dei_EntityEmergingGrowthCompany_638653983207811815" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_CoverAbstract" xlink:to="dei_EntityEmergingGrowthCompany_638653983207811815" order="23" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityShellCompany" xlink:label="dei_EntityShellCompany_638653983207811815" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_CoverAbstract" xlink:to="dei_EntityShellCompany_638653983207811815" order="24" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityCommonStockSharesOutstanding" xlink:label="dei_EntityCommonStockSharesOutstanding_638653983207811815" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_CoverAbstract" xlink:to="dei_EntityCommonStockSharesOutstanding_638653983207811815" order="25" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityCentralIndexKey" xlink:label="dei_EntityCentralIndexKey_638653983207811815" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_CoverAbstract" xlink:to="dei_EntityCentralIndexKey_638653983207811815" order="26" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_DocumentFiscalYearFocus" xlink:label="dei_DocumentFiscalYearFocus_638653983207811815" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_CoverAbstract" xlink:to="dei_DocumentFiscalYearFocus_638653983207811815" order="27" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_DocumentFiscalPeriodFocus" xlink:label="dei_DocumentFiscalPeriodFocus_638653983207811815" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_CoverAbstract" xlink:to="dei_DocumentFiscalPeriodFocus_638653983207811815" order="28" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_CurrentFiscalYearEndDate" xlink:label="dei_CurrentFiscalYearEndDate_638653983207811815" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_CoverAbstract" xlink:to="dei_CurrentFiscalYearEndDate_638653983207811815" order="29" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_AmendmentFlag" xlink:label="dei_AmendmentFlag_638653983207821838" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_CoverAbstract" xlink:to="dei_AmendmentFlag_638653983207821838" order="30" use="optional" />
  </presentationLink>
  <presentationLink xlink:role="http://www.comfortsystemsusa.com/role/StatementConsolidatedBalanceSheets" xlink:type="extended" xlink:title="995200100 - Statement - CONSOLIDATED BALANCE SHEETS" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StatementOfFinancialPositionAbstract" xlink:label="us-gaap_StatementOfFinancialPositionAbstract" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AssetsAbstract" xlink:label="us-gaap_AssetsAbstract_638653983207821838" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementOfFinancialPositionAbstract" xlink:to="us-gaap_AssetsAbstract_638653983207821838" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AssetsCurrentAbstract" xlink:label="us-gaap_AssetsCurrentAbstract_638653983207821838" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AssetsAbstract_638653983207821838" xlink:to="us-gaap_AssetsCurrentAbstract_638653983207821838" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CashAndCashEquivalentsAtCarryingValue" xlink:label="us-gaap_CashAndCashEquivalentsAtCarryingValue_638653983207821838" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AssetsCurrentAbstract_638653983207821838" xlink:to="us-gaap_CashAndCashEquivalentsAtCarryingValue_638653983207821838" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BilledContractReceivables" xlink:label="us-gaap_BilledContractReceivables_638653983207821838" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AssetsCurrentAbstract_638653983207821838" xlink:to="us-gaap_BilledContractReceivables_638653983207821838" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" priority="4" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_UnbilledContractsReceivable" xlink:label="us-gaap_UnbilledContractsReceivable_638653983207831835" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AssetsCurrentAbstract_638653983207821838" xlink:to="us-gaap_UnbilledContractsReceivable_638653983207831835" order="3" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="4" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NontradeReceivablesCurrent" xlink:label="us-gaap_NontradeReceivablesCurrent_638653983207831835" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AssetsCurrentAbstract_638653983207821838" xlink:to="us-gaap_NontradeReceivablesCurrent_638653983207831835" order="4" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_InventoryNet" xlink:label="us-gaap_InventoryNet_638653983207831835" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AssetsCurrentAbstract_638653983207821838" xlink:to="us-gaap_InventoryNet_638653983207831835" order="5" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PrepaidExpenseAndOtherAssetsCurrent" xlink:label="us-gaap_PrepaidExpenseAndOtherAssetsCurrent_638653983207831835" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AssetsCurrentAbstract_638653983207821838" xlink:to="us-gaap_PrepaidExpenseAndOtherAssetsCurrent_638653983207831835" order="6" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ContractWithCustomerAssetNetCurrent" xlink:label="us-gaap_ContractWithCustomerAssetNetCurrent_638653983207831835" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AssetsCurrentAbstract_638653983207821838" xlink:to="us-gaap_ContractWithCustomerAssetNetCurrent_638653983207831835" order="7" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="4" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AssetsCurrent" xlink:label="us-gaap_AssetsCurrent_638653983207831835" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AssetsCurrentAbstract_638653983207821838" xlink:to="us-gaap_AssetsCurrent_638653983207831835" order="8" use="optional" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PropertyPlantAndEquipmentNet" xlink:label="us-gaap_PropertyPlantAndEquipmentNet_638653983207831835" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AssetsAbstract_638653983207821838" xlink:to="us-gaap_PropertyPlantAndEquipmentNet_638653983207831835" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingLeaseRightOfUseAsset" xlink:label="us-gaap_OperatingLeaseRightOfUseAsset_638653983207831835" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AssetsAbstract_638653983207821838" xlink:to="us-gaap_OperatingLeaseRightOfUseAsset_638653983207831835" order="3" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="6" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_Goodwill" xlink:label="us-gaap_Goodwill_638653983207831835" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AssetsAbstract_638653983207821838" xlink:to="us-gaap_Goodwill_638653983207831835" order="4" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IntangibleAssetsNetExcludingGoodwill" xlink:label="us-gaap_IntangibleAssetsNetExcludingGoodwill_638653983207831835" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AssetsAbstract_638653983207821838" xlink:to="us-gaap_IntangibleAssetsNetExcludingGoodwill_638653983207831835" order="5" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredIncomeTaxAssetsNet" xlink:label="us-gaap_DeferredIncomeTaxAssetsNet_638653983207841819" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AssetsAbstract_638653983207821838" xlink:to="us-gaap_DeferredIncomeTaxAssetsNet_638653983207841819" order="6" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" priority="6" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OtherAssetsNoncurrent" xlink:label="us-gaap_OtherAssetsNoncurrent_638653983207841819" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AssetsAbstract_638653983207821838" xlink:to="us-gaap_OtherAssetsNoncurrent_638653983207841819" order="7" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_Assets" xlink:label="us-gaap_Assets_638653983207841819" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AssetsAbstract_638653983207821838" xlink:to="us-gaap_Assets_638653983207841819" order="8" use="optional" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LiabilitiesAndStockholdersEquityAbstract" xlink:label="us-gaap_LiabilitiesAndStockholdersEquityAbstract_638653983207841819" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementOfFinancialPositionAbstract" xlink:to="us-gaap_LiabilitiesAndStockholdersEquityAbstract_638653983207841819" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LiabilitiesCurrentAbstract" xlink:label="us-gaap_LiabilitiesCurrentAbstract_638653983207841819" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LiabilitiesAndStockholdersEquityAbstract_638653983207841819" xlink:to="us-gaap_LiabilitiesCurrentAbstract_638653983207841819" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LongTermDebtCurrent" xlink:label="us-gaap_LongTermDebtCurrent_638653983207841819" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LiabilitiesCurrentAbstract_638653983207841819" xlink:to="us-gaap_LongTermDebtCurrent_638653983207841819" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="4" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AccountsPayableCurrent" xlink:label="us-gaap_AccountsPayableCurrent_638653983207841819" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LiabilitiesCurrentAbstract_638653983207841819" xlink:to="us-gaap_AccountsPayableCurrent_638653983207841819" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EmployeeRelatedLiabilitiesCurrent" xlink:label="us-gaap_EmployeeRelatedLiabilitiesCurrent_638653983207841819" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LiabilitiesCurrentAbstract_638653983207841819" xlink:to="us-gaap_EmployeeRelatedLiabilitiesCurrent_638653983207841819" order="3" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ContractWithCustomerLiabilityCurrent" xlink:label="us-gaap_ContractWithCustomerLiabilityCurrent_638653983207841819" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LiabilitiesCurrentAbstract_638653983207841819" xlink:to="us-gaap_ContractWithCustomerLiabilityCurrent_638653983207841819" order="4" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SelfInsuranceReserveCurrent" xlink:label="us-gaap_SelfInsuranceReserveCurrent_638653983207851818" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LiabilitiesCurrentAbstract_638653983207841819" xlink:to="us-gaap_SelfInsuranceReserveCurrent_638653983207851818" order="5" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OtherLiabilitiesCurrent" xlink:label="us-gaap_OtherLiabilitiesCurrent_638653983207851818" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LiabilitiesCurrentAbstract_638653983207841819" xlink:to="us-gaap_OtherLiabilitiesCurrent_638653983207851818" order="6" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LiabilitiesCurrent" xlink:label="us-gaap_LiabilitiesCurrent_638653983207851818" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LiabilitiesCurrentAbstract_638653983207841819" xlink:to="us-gaap_LiabilitiesCurrent_638653983207851818" order="7" use="optional" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LongTermDebtNoncurrent" xlink:label="us-gaap_LongTermDebtNoncurrent_638653983207851818" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LiabilitiesAndStockholdersEquityAbstract_638653983207841819" xlink:to="us-gaap_LongTermDebtNoncurrent_638653983207851818" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingLeaseLiabilityNoncurrent" xlink:label="us-gaap_OperatingLeaseLiabilityNoncurrent_638653983207851818" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LiabilitiesAndStockholdersEquityAbstract_638653983207841819" xlink:to="us-gaap_OperatingLeaseLiabilityNoncurrent_638653983207851818" order="3" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="4" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredIncomeTaxLiabilitiesNet" xlink:label="us-gaap_DeferredIncomeTaxLiabilitiesNet_638653983207861833" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LiabilitiesAndStockholdersEquityAbstract_638653983207841819" xlink:to="us-gaap_DeferredIncomeTaxLiabilitiesNet_638653983207861833" order="4" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" priority="7" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OtherLiabilitiesNoncurrent" xlink:label="us-gaap_OtherLiabilitiesNoncurrent_638653983207861833" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LiabilitiesAndStockholdersEquityAbstract_638653983207841819" xlink:to="us-gaap_OtherLiabilitiesNoncurrent_638653983207861833" order="5" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_Liabilities" xlink:label="us-gaap_Liabilities_638653983207861833" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LiabilitiesAndStockholdersEquityAbstract_638653983207841819" xlink:to="us-gaap_Liabilities_638653983207861833" order="6" use="optional" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CommitmentsAndContingencies" xlink:label="us-gaap_CommitmentsAndContingencies_638653983207861833" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LiabilitiesAndStockholdersEquityAbstract_638653983207841819" xlink:to="us-gaap_CommitmentsAndContingencies_638653983207861833" order="7" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StockholdersEquityIncludingPortionAttributableToNoncontrollingInterestAbstract" xlink:label="us-gaap_StockholdersEquityIncludingPortionAttributableToNoncontrollingInterestAbstract_638653983207861833" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LiabilitiesAndStockholdersEquityAbstract_638653983207841819" xlink:to="us-gaap_StockholdersEquityIncludingPortionAttributableToNoncontrollingInterestAbstract_638653983207861833" order="8" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" priority="2" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PreferredStockValue" xlink:label="us-gaap_PreferredStockValue_638653983207871819" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StockholdersEquityIncludingPortionAttributableToNoncontrollingInterestAbstract_638653983207861833" xlink:to="us-gaap_PreferredStockValue_638653983207871819" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CommonStockValue" xlink:label="us-gaap_CommonStockValue_638653983207871819" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StockholdersEquityIncludingPortionAttributableToNoncontrollingInterestAbstract_638653983207861833" xlink:to="us-gaap_CommonStockValue_638653983207871819" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_TreasuryStockValue" xlink:label="us-gaap_TreasuryStockValue_638653983207871819" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StockholdersEquityIncludingPortionAttributableToNoncontrollingInterestAbstract_638653983207861833" xlink:to="us-gaap_TreasuryStockValue_638653983207871819" order="3" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AdditionalPaidInCapitalCommonStock" xlink:label="us-gaap_AdditionalPaidInCapitalCommonStock_638653983207871819" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StockholdersEquityIncludingPortionAttributableToNoncontrollingInterestAbstract_638653983207861833" xlink:to="us-gaap_AdditionalPaidInCapitalCommonStock_638653983207871819" order="4" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RetainedEarningsAccumulatedDeficit" xlink:label="us-gaap_RetainedEarningsAccumulatedDeficit_638653983207871819" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StockholdersEquityIncludingPortionAttributableToNoncontrollingInterestAbstract_638653983207861833" xlink:to="us-gaap_RetainedEarningsAccumulatedDeficit_638653983207871819" order="5" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StockholdersEquity" xlink:label="us-gaap_StockholdersEquity_638653983207871819" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StockholdersEquityIncludingPortionAttributableToNoncontrollingInterestAbstract_638653983207861833" xlink:to="us-gaap_StockholdersEquity_638653983207871819" order="6" use="optional" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LiabilitiesAndStockholdersEquity" xlink:label="us-gaap_LiabilitiesAndStockholdersEquity_638653983207881817" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LiabilitiesAndStockholdersEquityAbstract_638653983207841819" xlink:to="us-gaap_LiabilitiesAndStockholdersEquity_638653983207881817" order="9" use="optional" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" />
  </presentationLink>
  <presentationLink xlink:role="http://www.comfortsystemsusa.com/role/StatementConsolidatedBalanceSheetsParenthetical" xlink:type="extended" xlink:title="995200105 - Statement - CONSOLIDATED BALANCE SHEETS (Parenthetical)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StatementOfFinancialPositionAbstract" xlink:label="us-gaap_StatementOfFinancialPositionAbstract" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent" xlink:label="us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent_638653983207881817" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementOfFinancialPositionAbstract" xlink:to="us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent_638653983207881817" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <loc xlink:type="locator" xlink:href="fix-20240930.xsd#fix_UnbilledAccountsReceivableAllowanceForCreditLoss" xlink:label="fix_UnbilledAccountsReceivableAllowanceForCreditLoss_638653983207881817" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementOfFinancialPositionAbstract" xlink:to="fix_UnbilledAccountsReceivableAllowanceForCreditLoss_638653983207881817" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AllowanceForDoubtfulOtherReceivablesCurrent" xlink:label="us-gaap_AllowanceForDoubtfulOtherReceivablesCurrent_638653983207881817" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementOfFinancialPositionAbstract" xlink:to="us-gaap_AllowanceForDoubtfulOtherReceivablesCurrent_638653983207881817" order="3" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ContractWithCustomerAssetAccumulatedAllowanceForCreditLossCurrent" xlink:label="us-gaap_ContractWithCustomerAssetAccumulatedAllowanceForCreditLossCurrent_638653983207881817" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementOfFinancialPositionAbstract" xlink:to="us-gaap_ContractWithCustomerAssetAccumulatedAllowanceForCreditLossCurrent_638653983207881817" order="4" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PreferredStockParOrStatedValuePerShare" xlink:label="us-gaap_PreferredStockParOrStatedValuePerShare_638653983207881817" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementOfFinancialPositionAbstract" xlink:to="us-gaap_PreferredStockParOrStatedValuePerShare_638653983207881817" order="5" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PreferredStockSharesAuthorized" xlink:label="us-gaap_PreferredStockSharesAuthorized_638653983207881817" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementOfFinancialPositionAbstract" xlink:to="us-gaap_PreferredStockSharesAuthorized_638653983207881817" order="6" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PreferredStockSharesIssued" xlink:label="us-gaap_PreferredStockSharesIssued_638653983207881817" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementOfFinancialPositionAbstract" xlink:to="us-gaap_PreferredStockSharesIssued_638653983207881817" order="7" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PreferredStockSharesOutstanding" xlink:label="us-gaap_PreferredStockSharesOutstanding_638653983207881817" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementOfFinancialPositionAbstract" xlink:to="us-gaap_PreferredStockSharesOutstanding_638653983207881817" order="8" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CommonStockParOrStatedValuePerShare" xlink:label="us-gaap_CommonStockParOrStatedValuePerShare_638653983207891828" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementOfFinancialPositionAbstract" xlink:to="us-gaap_CommonStockParOrStatedValuePerShare_638653983207891828" order="9" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CommonStockSharesAuthorized" xlink:label="us-gaap_CommonStockSharesAuthorized_638653983207891828" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementOfFinancialPositionAbstract" xlink:to="us-gaap_CommonStockSharesAuthorized_638653983207891828" order="10" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CommonStockSharesIssued" xlink:label="us-gaap_CommonStockSharesIssued_638653983207891828" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementOfFinancialPositionAbstract" xlink:to="us-gaap_CommonStockSharesIssued_638653983207891828" order="11" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_TreasuryStockCommonShares" xlink:label="us-gaap_TreasuryStockCommonShares_638653983207891828" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementOfFinancialPositionAbstract" xlink:to="us-gaap_TreasuryStockCommonShares_638653983207891828" order="12" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
  </presentationLink>
  <presentationLink xlink:role="http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfOperations" xlink:type="extended" xlink:title="995200200 - Statement - CONSOLIDATED STATEMENTS OF OPERATIONS" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeStatementAbstract" xlink:label="us-gaap_IncomeStatementAbstract" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_Revenues" xlink:label="us-gaap_Revenues_638653983207891828" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeStatementAbstract" xlink:to="us-gaap_Revenues_638653983207891828" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CostOfRevenue" xlink:label="us-gaap_CostOfRevenue_638653983207891828" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeStatementAbstract" xlink:to="us-gaap_CostOfRevenue_638653983207891828" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_GrossProfit" xlink:label="us-gaap_GrossProfit_638653983207891828" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeStatementAbstract" xlink:to="us-gaap_GrossProfit_638653983207891828" order="3" use="optional" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SellingGeneralAndAdministrativeExpense" xlink:label="us-gaap_SellingGeneralAndAdministrativeExpense_638653983207891828" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeStatementAbstract" xlink:to="us-gaap_SellingGeneralAndAdministrativeExpense_638653983207891828" order="4" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_GainLossOnDispositionOfAssets" xlink:label="us-gaap_GainLossOnDispositionOfAssets_638653983207891828" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeStatementAbstract" xlink:to="us-gaap_GainLossOnDispositionOfAssets_638653983207891828" order="5" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingIncomeLoss" xlink:label="us-gaap_OperatingIncomeLoss_638653983207891828" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeStatementAbstract" xlink:to="us-gaap_OperatingIncomeLoss_638653983207891828" order="6" use="optional" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NonoperatingIncomeExpenseAbstract" xlink:label="us-gaap_NonoperatingIncomeExpenseAbstract_638653983207901827" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeStatementAbstract" xlink:to="us-gaap_NonoperatingIncomeExpenseAbstract_638653983207901827" order="7" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_InvestmentIncomeInterest" xlink:label="us-gaap_InvestmentIncomeInterest_638653983207901827" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_NonoperatingIncomeExpenseAbstract_638653983207901827" xlink:to="us-gaap_InvestmentIncomeInterest_638653983207901827" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_InterestExpenseNonoperating" xlink:label="us-gaap_InterestExpenseNonoperating_638653983207901827" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_NonoperatingIncomeExpenseAbstract_638653983207901827" xlink:to="us-gaap_InterestExpenseNonoperating_638653983207901827" order="2" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1" xlink:label="us-gaap_BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1_638653983207901827" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_NonoperatingIncomeExpenseAbstract_638653983207901827" xlink:to="us-gaap_BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1_638653983207901827" order="3" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OtherNonoperatingIncomeExpense" xlink:label="us-gaap_OtherNonoperatingIncomeExpense_638653983207901827" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_NonoperatingIncomeExpenseAbstract_638653983207901827" xlink:to="us-gaap_OtherNonoperatingIncomeExpense_638653983207901827" order="4" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="4" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NonoperatingIncomeExpense" xlink:label="us-gaap_NonoperatingIncomeExpense_638653983207901827" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_NonoperatingIncomeExpenseAbstract_638653983207901827" xlink:to="us-gaap_NonoperatingIncomeExpense_638653983207901827" order="5" use="optional" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" xlink:label="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest_638653983207901827" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeStatementAbstract" xlink:to="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest_638653983207901827" order="8" use="optional" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeTaxExpenseBenefit" xlink:label="us-gaap_IncomeTaxExpenseBenefit_638653983207901827" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeStatementAbstract" xlink:to="us-gaap_IncomeTaxExpenseBenefit_638653983207901827" order="9" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NetIncomeLoss" xlink:label="us-gaap_NetIncomeLoss_638653983207911816" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeStatementAbstract" xlink:to="us-gaap_NetIncomeLoss_638653983207911816" order="10" use="optional" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EarningsPerShareAbstract" xlink:label="us-gaap_EarningsPerShareAbstract_638653983207911816" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeStatementAbstract" xlink:to="us-gaap_EarningsPerShareAbstract_638653983207911816" order="11" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EarningsPerShareBasic" xlink:label="us-gaap_EarningsPerShareBasic_638653983207911816" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_EarningsPerShareAbstract_638653983207911816" xlink:to="us-gaap_EarningsPerShareBasic_638653983207911816" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="7" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EarningsPerShareDiluted" xlink:label="us-gaap_EarningsPerShareDiluted_638653983207911816" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_EarningsPerShareAbstract_638653983207911816" xlink:to="us-gaap_EarningsPerShareDiluted_638653983207911816" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="7" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_WeightedAverageNumberOfSharesOutstandingAbstract" xlink:label="us-gaap_WeightedAverageNumberOfSharesOutstandingAbstract_638653983207911816" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeStatementAbstract" xlink:to="us-gaap_WeightedAverageNumberOfSharesOutstandingAbstract_638653983207911816" order="12" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_WeightedAverageNumberOfSharesOutstandingBasic" xlink:label="us-gaap_WeightedAverageNumberOfSharesOutstandingBasic_638653983207911816" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_WeightedAverageNumberOfSharesOutstandingAbstract_638653983207911816" xlink:to="us-gaap_WeightedAverageNumberOfSharesOutstandingBasic_638653983207911816" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding" xlink:label="us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding_638653983207911816" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_WeightedAverageNumberOfSharesOutstandingAbstract_638653983207911816" xlink:to="us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding_638653983207911816" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
  </presentationLink>
  <presentationLink xlink:role="http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfStockholdersEquity" xlink:type="extended" xlink:title="995200300 - Statement - CONSOLIDATED STATEMENTS OF STOCKHOLDERS' EQUITY" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StatementOfStockholdersEquityAbstract" xlink:label="us-gaap_StatementOfStockholdersEquityAbstract" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable_638653983207921954" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementOfStockholdersEquityAbstract" xlink:to="us-gaap_StatementTable_638653983207921954" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StatementEquityComponentsAxis" xlink:label="us-gaap_StatementEquityComponentsAxis_638653983207921954" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_638653983207921954" xlink:to="us-gaap_StatementEquityComponentsAxis_638653983207921954" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CommonStockMember" xlink:label="us-gaap_CommonStockMember_638653983207921954" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementEquityComponentsAxis_638653983207921954" xlink:to="us-gaap_CommonStockMember_638653983207921954" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_TreasuryStockCommonMember" xlink:label="us-gaap_TreasuryStockCommonMember_638653983207921954" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementEquityComponentsAxis_638653983207921954" xlink:to="us-gaap_TreasuryStockCommonMember_638653983207921954" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AdditionalPaidInCapitalMember" xlink:label="us-gaap_AdditionalPaidInCapitalMember_638653983207921954" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementEquityComponentsAxis_638653983207921954" xlink:to="us-gaap_AdditionalPaidInCapitalMember_638653983207921954" order="3" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RetainedEarningsMember" xlink:label="us-gaap_RetainedEarningsMember_638653983207921954" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementEquityComponentsAxis_638653983207921954" xlink:to="us-gaap_RetainedEarningsMember_638653983207921954" order="4" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EquityComponentDomain" xlink:label="us-gaap_EquityComponentDomain_638653983207921954" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementEquityComponentsAxis_638653983207921954" xlink:to="us-gaap_EquityComponentDomain_638653983207921954" order="5" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems_638653983207921954" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_638653983207921954" xlink:to="us-gaap_StatementLineItems_638653983207921954" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncreaseDecreaseInStockholdersEquityRollForward" xlink:label="us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_638653983207921954" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_638653983207921954" xlink:to="us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_638653983207921954" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StockholdersEquity" xlink:label="us-gaap_StockholdersEquity_638653983207921954" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_638653983207921954" xlink:to="us-gaap_StockholdersEquity_638653983207921954" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel" priority="9" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CommonStockSharesIssued" xlink:label="us-gaap_CommonStockSharesIssued_638653983207921954" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_638653983207921954" xlink:to="us-gaap_CommonStockSharesIssued_638653983207921954" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel" priority="5" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_TreasuryStockCommonShares" xlink:label="us-gaap_TreasuryStockCommonShares_638653983207931825" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_638653983207921954" xlink:to="us-gaap_TreasuryStockCommonShares_638653983207931825" order="3" use="optional" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ProfitLoss" xlink:label="us-gaap_ProfitLoss_638653983207931825" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_638653983207921954" xlink:to="us-gaap_ProfitLoss_638653983207931825" order="4" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="5" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StockIssuedDuringPeriodSharebasedCompensationAbstract" xlink:label="us-gaap_StockIssuedDuringPeriodSharebasedCompensationAbstract_638653983207931825" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_638653983207921954" xlink:to="us-gaap_StockIssuedDuringPeriodSharebasedCompensationAbstract_638653983207931825" order="5" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised" xlink:label="us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised_638653983207931825" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StockIssuedDuringPeriodSharebasedCompensationAbstract_638653983207931825" xlink:to="us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised_638653983207931825" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="9" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised" xlink:label="us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised_638653983207931825" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised_638653983207931825" xlink:to="us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised_638653983207931825" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="9" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StockIssuedDuringPeriodValueShareBasedCompensation" xlink:label="us-gaap_StockIssuedDuringPeriodValueShareBasedCompensation_638653983207931825" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StockIssuedDuringPeriodSharebasedCompensationAbstract_638653983207931825" xlink:to="us-gaap_StockIssuedDuringPeriodValueShareBasedCompensation_638653983207931825" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="5" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StockIssuedDuringPeriodSharesShareBasedCompensation" xlink:label="us-gaap_StockIssuedDuringPeriodSharesShareBasedCompensation_638653983207931825" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StockIssuedDuringPeriodValueShareBasedCompensation_638653983207931825" xlink:to="us-gaap_StockIssuedDuringPeriodSharesShareBasedCompensation_638653983207931825" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="9" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation" xlink:label="us-gaap_AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation_638653983207941820" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_638653983207921954" xlink:to="us-gaap_AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation_638653983207941820" order="6" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SharesPaidForTaxWithholdingForShareBasedCompensation" xlink:label="us-gaap_SharesPaidForTaxWithholdingForShareBasedCompensation_638653983207941820" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation_638653983207941820" xlink:to="us-gaap_SharesPaidForTaxWithholdingForShareBasedCompensation_638653983207941820" order="1" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" priority="9" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" xlink:label="us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue_638653983207941820" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_638653983207921954" xlink:to="us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue_638653983207941820" order="7" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="4" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DividendsCommonStockCash" xlink:label="us-gaap_DividendsCommonStockCash_638653983207941820" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_638653983207921954" xlink:to="us-gaap_DividendsCommonStockCash_638653983207941820" order="8" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_TreasuryStockValueAcquiredCostMethod" xlink:label="us-gaap_TreasuryStockValueAcquiredCostMethod_638653983207941820" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_638653983207921954" xlink:to="us-gaap_TreasuryStockValueAcquiredCostMethod_638653983207941820" order="9" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_TreasuryStockSharesAcquired" xlink:label="us-gaap_TreasuryStockSharesAcquired_638653983207941820" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_TreasuryStockValueAcquiredCostMethod_638653983207941820" xlink:to="us-gaap_TreasuryStockSharesAcquired_638653983207941820" order="1" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" priority="9" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StockholdersEquity" xlink:label="us-gaap_StockholdersEquity_638653983207941820" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_638653983207921954" xlink:to="us-gaap_StockholdersEquity_638653983207941820" order="10" use="optional" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel" priority="9" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CommonStockSharesIssued" xlink:label="us-gaap_CommonStockSharesIssued_638653983207941820" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_638653983207921954" xlink:to="us-gaap_CommonStockSharesIssued_638653983207941820" order="11" use="optional" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel" priority="5" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_TreasuryStockCommonShares" xlink:label="us-gaap_TreasuryStockCommonShares_638653983207951820" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_638653983207921954" xlink:to="us-gaap_TreasuryStockCommonShares_638653983207951820" order="12" use="optional" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel" priority="1" />
  </presentationLink>
  <presentationLink xlink:role="http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfStockholdersEquityParenthetical" xlink:type="extended" xlink:title="995200305 - Statement - CONSOLIDATED STATEMENTS OF STOCKHOLDERS' EQUITY (Parenthetical)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StatementOfStockholdersEquityAbstract" xlink:label="us-gaap_StatementOfStockholdersEquityAbstract_1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CommonStockDividendsPerShareDeclared" xlink:label="us-gaap_CommonStockDividendsPerShareDeclared_638653983207951820" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementOfStockholdersEquityAbstract_1" xlink:to="us-gaap_CommonStockDividendsPerShareDeclared_638653983207951820" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" priority="1" />
  </presentationLink>
  <presentationLink xlink:role="http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfCashFlows" xlink:type="extended" xlink:title="995200400 - Statement - CONSOLIDATED STATEMENTS OF CASH FLOWS" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StatementOfCashFlowsAbstract" xlink:label="us-gaap_StatementOfCashFlowsAbstract" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract" xlink:label="us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract_638653983207951820" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementOfCashFlowsAbstract" xlink:to="us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract_638653983207951820" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ProfitLoss" xlink:label="us-gaap_ProfitLoss_638653983207961845" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract_638653983207951820" xlink:to="us-gaap_ProfitLoss_638653983207961845" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" priority="5" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:label="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_638653983207961845" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract_638653983207951820" xlink:to="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_638653983207961845" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AmortizationOfIntangibleAssets" xlink:label="us-gaap_AmortizationOfIntangibleAssets_638653983207961845" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_638653983207961845" xlink:to="us-gaap_AmortizationOfIntangibleAssets_638653983207961845" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_Depreciation" xlink:label="us-gaap_Depreciation_638653983207961845" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_638653983207961845" xlink:to="us-gaap_Depreciation_638653983207961845" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="fix-20240930.xsd#fix_ChangeInRightOfUseAssets" xlink:label="fix_ChangeInRightOfUseAssets_638653983207961845" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_638653983207961845" xlink:to="fix_ChangeInRightOfUseAssets_638653983207961845" order="3" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ProvisionForDoubtfulAccounts" xlink:label="us-gaap_ProvisionForDoubtfulAccounts_638653983207961845" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_638653983207961845" xlink:to="us-gaap_ProvisionForDoubtfulAccounts_638653983207961845" order="4" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="9" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredIncomeTaxExpenseBenefit" xlink:label="us-gaap_DeferredIncomeTaxExpenseBenefit_638653983207961845" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_638653983207961845" xlink:to="us-gaap_DeferredIncomeTaxExpenseBenefit_638653983207961845" order="5" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" priority="6" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AmortizationOfFinancingCosts" xlink:label="us-gaap_AmortizationOfFinancingCosts_638653983207961845" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_638653983207961845" xlink:to="us-gaap_AmortizationOfFinancingCosts_638653983207961845" order="6" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_GainLossOnSaleOfPropertyPlantEquipment" xlink:label="us-gaap_GainLossOnSaleOfPropertyPlantEquipment_638653983207961845" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_638653983207961845" xlink:to="us-gaap_GainLossOnSaleOfPropertyPlantEquipment_638653983207961845" order="7" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" priority="6" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1" xlink:label="us-gaap_BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1_638653983207971884" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_638653983207961845" xlink:to="us-gaap_BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1_638653983207971884" order="8" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensation" xlink:label="us-gaap_ShareBasedCompensation_638653983207971884" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_638653983207961845" xlink:to="us-gaap_ShareBasedCompensation_638653983207971884" order="9" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncreaseDecreaseInOperatingCapitalAbstract" xlink:label="us-gaap_IncreaseDecreaseInOperatingCapitalAbstract_638653983207971884" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_638653983207961845" xlink:to="us-gaap_IncreaseDecreaseInOperatingCapitalAbstract_638653983207971884" order="10" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncreaseDecreaseInOperatingAssetsAbstract" xlink:label="us-gaap_IncreaseDecreaseInOperatingAssetsAbstract_638653983207971884" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncreaseDecreaseInOperatingCapitalAbstract_638653983207971884" xlink:to="us-gaap_IncreaseDecreaseInOperatingAssetsAbstract_638653983207971884" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncreaseDecreaseInAccountsReceivable" xlink:label="us-gaap_IncreaseDecreaseInAccountsReceivable_638653983207971884" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncreaseDecreaseInOperatingAssetsAbstract_638653983207971884" xlink:to="us-gaap_IncreaseDecreaseInAccountsReceivable_638653983207971884" order="1" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncreaseDecreaseInInventories" xlink:label="us-gaap_IncreaseDecreaseInInventories_638653983207971884" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncreaseDecreaseInOperatingAssetsAbstract_638653983207971884" xlink:to="us-gaap_IncreaseDecreaseInInventories_638653983207971884" order="2" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets" xlink:label="us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets_638653983207971884" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncreaseDecreaseInOperatingAssetsAbstract_638653983207971884" xlink:to="us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets_638653983207971884" order="3" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncreaseDecreaseInContractWithCustomerAsset" xlink:label="us-gaap_IncreaseDecreaseInContractWithCustomerAsset_638653983207971884" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncreaseDecreaseInOperatingAssetsAbstract_638653983207971884" xlink:to="us-gaap_IncreaseDecreaseInContractWithCustomerAsset_638653983207971884" order="4" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" priority="5" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncreaseDecreaseInOtherOperatingAssets" xlink:label="us-gaap_IncreaseDecreaseInOtherOperatingAssets_638653983207971884" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncreaseDecreaseInOperatingAssetsAbstract_638653983207971884" xlink:to="us-gaap_IncreaseDecreaseInOtherOperatingAssets_638653983207971884" order="5" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncreaseDecreaseInOperatingLiabilitiesAbstract" xlink:label="us-gaap_IncreaseDecreaseInOperatingLiabilitiesAbstract_638653983207981822" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncreaseDecreaseInOperatingCapitalAbstract_638653983207971884" xlink:to="us-gaap_IncreaseDecreaseInOperatingLiabilitiesAbstract_638653983207981822" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncreaseDecreaseInAccountsPayableAndAccruedLiabilities" xlink:label="us-gaap_IncreaseDecreaseInAccountsPayableAndAccruedLiabilities_638653983207981822" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncreaseDecreaseInOperatingLiabilitiesAbstract_638653983207981822" xlink:to="us-gaap_IncreaseDecreaseInAccountsPayableAndAccruedLiabilities_638653983207981822" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncreaseDecreaseInContractWithCustomerLiability" xlink:label="us-gaap_IncreaseDecreaseInContractWithCustomerLiability_638653983207981822" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncreaseDecreaseInOperatingLiabilitiesAbstract_638653983207981822" xlink:to="us-gaap_IncreaseDecreaseInContractWithCustomerLiability_638653983207981822" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncreaseDecreaseInOtherOperatingLiabilities" xlink:label="us-gaap_IncreaseDecreaseInOtherOperatingLiabilities_638653983207981822" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncreaseDecreaseInOperatingLiabilitiesAbstract_638653983207981822" xlink:to="us-gaap_IncreaseDecreaseInOtherOperatingLiabilities_638653983207981822" order="3" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:label="us-gaap_NetCashProvidedByUsedInOperatingActivities_638653983207981822" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_638653983207961845" xlink:to="us-gaap_NetCashProvidedByUsedInOperatingActivities_638653983207981822" order="11" use="optional" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" priority="2" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract" xlink:label="us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract_638653983207981822" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementOfCashFlowsAbstract" xlink:to="us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract_638653983207981822" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PaymentsToAcquirePropertyPlantAndEquipment" xlink:label="us-gaap_PaymentsToAcquirePropertyPlantAndEquipment_638653983207981822" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract_638653983207981822" xlink:to="us-gaap_PaymentsToAcquirePropertyPlantAndEquipment_638653983207981822" order="1" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ProceedsFromSaleOfPropertyPlantAndEquipment" xlink:label="us-gaap_ProceedsFromSaleOfPropertyPlantAndEquipment_638653983207981822" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract_638653983207981822" xlink:to="us-gaap_ProceedsFromSaleOfPropertyPlantAndEquipment_638653983207981822" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired" xlink:label="us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired_638653983207991832" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract_638653983207981822" xlink:to="us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired_638653983207991832" order="3" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PaymentsToAcquireInvestments" xlink:label="us-gaap_PaymentsToAcquireInvestments_638653983207991832" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract_638653983207981822" xlink:to="us-gaap_PaymentsToAcquireInvestments_638653983207991832" order="4" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NetCashProvidedByUsedInInvestingActivities" xlink:label="us-gaap_NetCashProvidedByUsedInInvestingActivities_638653983207991832" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract_638653983207981822" xlink:to="us-gaap_NetCashProvidedByUsedInInvestingActivities_638653983207991832" order="5" use="optional" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract" xlink:label="us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract_638653983207991832" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementOfCashFlowsAbstract" xlink:to="us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract_638653983207991832" order="3" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ProceedsFromLongTermLinesOfCredit" xlink:label="us-gaap_ProceedsFromLongTermLinesOfCredit_638653983207991832" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract_638653983207991832" xlink:to="us-gaap_ProceedsFromLongTermLinesOfCredit_638653983207991832" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RepaymentsOfLongTermLinesOfCredit" xlink:label="us-gaap_RepaymentsOfLongTermLinesOfCredit_638653983207991832" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract_638653983207991832" xlink:to="us-gaap_RepaymentsOfLongTermLinesOfCredit_638653983207991832" order="2" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" priority="9" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ProceedsFromOtherDebt" xlink:label="us-gaap_ProceedsFromOtherDebt_638653983207991832" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract_638653983207991832" xlink:to="us-gaap_ProceedsFromOtherDebt_638653983207991832" order="3" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RepaymentsOfOtherDebt" xlink:label="us-gaap_RepaymentsOfOtherDebt_638653983208001822" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract_638653983207991832" xlink:to="us-gaap_RepaymentsOfOtherDebt_638653983208001822" order="4" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" priority="6" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PaymentsOfDividendsCommonStock" xlink:label="us-gaap_PaymentsOfDividendsCommonStock_638653983208141827" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract_638653983207991832" xlink:to="us-gaap_PaymentsOfDividendsCommonStock_638653983208141827" order="5" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PaymentsForRepurchaseOfCommonStock" xlink:label="us-gaap_PaymentsForRepurchaseOfCommonStock_638653983208141827" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract_638653983207991832" xlink:to="us-gaap_PaymentsForRepurchaseOfCommonStock_638653983208141827" order="6" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PaymentsRelatedToTaxWithholdingForShareBasedCompensation" xlink:label="us-gaap_PaymentsRelatedToTaxWithholdingForShareBasedCompensation_638653983208141827" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract_638653983207991832" xlink:to="us-gaap_PaymentsRelatedToTaxWithholdingForShareBasedCompensation_638653983208141827" order="7" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ProceedsFromStockOptionsExercised" xlink:label="us-gaap_ProceedsFromStockOptionsExercised_638653983208151819" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract_638653983207991832" xlink:to="us-gaap_ProceedsFromStockOptionsExercised_638653983208151819" order="8" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="fix-20240930.xsd#fix_DeferredAcquisitionPayments" xlink:label="fix_DeferredAcquisitionPayments_638653983208151819" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract_638653983207991832" xlink:to="fix_DeferredAcquisitionPayments_638653983208151819" order="9" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" priority="3" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PaymentForContingentConsiderationLiabilityFinancingActivities" xlink:label="us-gaap_PaymentForContingentConsiderationLiabilityFinancingActivities_638653983208151819" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract_638653983207991832" xlink:to="us-gaap_PaymentForContingentConsiderationLiabilityFinancingActivities_638653983208151819" order="10" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" priority="6" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NetCashProvidedByUsedInFinancingActivities" xlink:label="us-gaap_NetCashProvidedByUsedInFinancingActivities_638653983208151819" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract_638653983207991832" xlink:to="us-gaap_NetCashProvidedByUsedInFinancingActivities_638653983208151819" order="11" use="optional" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect" xlink:label="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect_638653983208151819" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementOfCashFlowsAbstract" xlink:to="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect_638653983208151819" order="4" use="optional" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" xlink:label="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents_638653983208151819" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementOfCashFlowsAbstract" xlink:to="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents_638653983208151819" order="5" use="optional" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" xlink:label="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents_638653983208161826" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementOfCashFlowsAbstract" xlink:to="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents_638653983208161826" order="6" use="optional" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel" />
  </presentationLink>
  <presentationLink xlink:role="http://www.comfortsystemsusa.com/role/DisclosureBusinessAndOrganization" xlink:type="extended" xlink:title="995210101 - Disclosure - Business and Organization" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OrganizationConsolidationAndPresentationOfFinancialStatementsAbstract" xlink:label="us-gaap_OrganizationConsolidationAndPresentationOfFinancialStatementsAbstract" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NatureOfOperations" xlink:label="us-gaap_NatureOfOperations_638653983208161826" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_OrganizationConsolidationAndPresentationOfFinancialStatementsAbstract" xlink:to="us-gaap_NatureOfOperations_638653983208161826" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
  </presentationLink>
  <presentationLink xlink:role="http://www.comfortsystemsusa.com/role/DisclosureSummaryOfSignificantAccountingPoliciesAndEstimates" xlink:type="extended" xlink:title="995210201 - Disclosure - Summary of Significant Accounting Policies and Estimates" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AccountingPoliciesAbstract" xlink:label="us-gaap_AccountingPoliciesAbstract" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BasisOfPresentationAndSignificantAccountingPoliciesTextBlock" xlink:label="us-gaap_BasisOfPresentationAndSignificantAccountingPoliciesTextBlock_638653983208161826" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AccountingPoliciesAbstract" xlink:to="us-gaap_BasisOfPresentationAndSignificantAccountingPoliciesTextBlock_638653983208161826" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
  </presentationLink>
  <presentationLink xlink:role="http://www.comfortsystemsusa.com/role/DisclosureRevenueFromContractsWithCustomers" xlink:type="extended" xlink:title="995210301 - Disclosure - Revenue from Contracts with Customers" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RevenueFromContractWithCustomerAbstract" xlink:label="us-gaap_RevenueFromContractWithCustomerAbstract" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RevenueFromContractWithCustomerTextBlock" xlink:label="us-gaap_RevenueFromContractWithCustomerTextBlock_638653983208171993" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_RevenueFromContractWithCustomerAbstract" xlink:to="us-gaap_RevenueFromContractWithCustomerTextBlock_638653983208171993" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
  </presentationLink>
  <presentationLink xlink:role="http://www.comfortsystemsusa.com/role/DisclosureFairValueMeasurements" xlink:type="extended" xlink:title="995210401 - Disclosure - Fair Value Measurements" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FairValueDisclosuresAbstract" xlink:label="us-gaap_FairValueDisclosuresAbstract" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FairValueDisclosuresTextBlock" xlink:label="us-gaap_FairValueDisclosuresTextBlock_638653983208171993" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FairValueDisclosuresAbstract" xlink:to="us-gaap_FairValueDisclosuresTextBlock_638653983208171993" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
  </presentationLink>
  <presentationLink xlink:role="http://www.comfortsystemsusa.com/role/DisclosureAcquisitions" xlink:type="extended" xlink:title="995210501 - Disclosure - Acquisitions" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessCombinationsAbstract" xlink:label="us-gaap_BusinessCombinationsAbstract" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessCombinationDisclosureTextBlock" xlink:label="us-gaap_BusinessCombinationDisclosureTextBlock_638653983208171993" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessCombinationsAbstract" xlink:to="us-gaap_BusinessCombinationDisclosureTextBlock_638653983208171993" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
  </presentationLink>
  <presentationLink xlink:role="http://www.comfortsystemsusa.com/role/DisclosureGoodwillAndIdentifiableIntangibleAssetsNet" xlink:type="extended" xlink:title="995210601 - Disclosure - Goodwill and Identifiable Intangible Assets, Net" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract" xlink:label="us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract_636202500314132299" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_GoodwillAndIntangibleAssetsDisclosureTextBlock" xlink:label="us-gaap_GoodwillAndIntangibleAssetsDisclosureTextBlock_638653983208171993" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract_636202500314132299" xlink:to="us-gaap_GoodwillAndIntangibleAssetsDisclosureTextBlock_638653983208171993" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
  </presentationLink>
  <presentationLink xlink:role="http://www.comfortsystemsusa.com/role/DisclosureDebtObligations" xlink:type="extended" xlink:title="995210701 - Disclosure - Debt Obligations" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DebtDisclosureAbstract" xlink:label="us-gaap_DebtDisclosureAbstract" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DebtDisclosureTextBlock" xlink:label="us-gaap_DebtDisclosureTextBlock_638653983208171993" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DebtDisclosureAbstract" xlink:to="us-gaap_DebtDisclosureTextBlock_638653983208171993" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
  </presentationLink>
  <presentationLink xlink:role="http://www.comfortsystemsusa.com/role/DisclosureLeases" xlink:type="extended" xlink:title="995210801 - Disclosure - Leases" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LeasesAbstract" xlink:label="us-gaap_LeasesAbstract" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LesseeOperatingLeasesTextBlock" xlink:label="us-gaap_LesseeOperatingLeasesTextBlock_638653983208181893" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LeasesAbstract" xlink:to="us-gaap_LesseeOperatingLeasesTextBlock_638653983208181893" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
  </presentationLink>
  <presentationLink xlink:role="http://www.comfortsystemsusa.com/role/DisclosureCommitmentsAndContingencies" xlink:type="extended" xlink:title="995210901 - Disclosure - Commitments and Contingencies" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CommitmentsAndContingenciesDisclosureAbstract" xlink:label="us-gaap_CommitmentsAndContingenciesDisclosureAbstract" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CommitmentsAndContingenciesDisclosureTextBlock" xlink:label="us-gaap_CommitmentsAndContingenciesDisclosureTextBlock_638653983208181893" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_CommitmentsAndContingenciesDisclosureAbstract" xlink:to="us-gaap_CommitmentsAndContingenciesDisclosureTextBlock_638653983208181893" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
  </presentationLink>
  <presentationLink xlink:role="http://www.comfortsystemsusa.com/role/DisclosureStockholdersEquity" xlink:type="extended" xlink:title="995211001 - Disclosure - Stockholders' Equity" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StockholdersEquityNoteAbstract" xlink:label="us-gaap_StockholdersEquityNoteAbstract" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StockholdersEquityNoteDisclosureTextBlock" xlink:label="us-gaap_StockholdersEquityNoteDisclosureTextBlock_638653983208181893" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StockholdersEquityNoteAbstract" xlink:to="us-gaap_StockholdersEquityNoteDisclosureTextBlock_638653983208181893" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
  </presentationLink>
  <presentationLink xlink:role="http://www.comfortsystemsusa.com/role/DisclosureSegmentInformation" xlink:type="extended" xlink:title="995211101 - Disclosure - Segment Information" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SegmentReportingAbstract" xlink:label="us-gaap_SegmentReportingAbstract" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SegmentReportingDisclosureTextBlock" xlink:label="us-gaap_SegmentReportingDisclosureTextBlock_638653983208181893" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_SegmentReportingAbstract" xlink:to="us-gaap_SegmentReportingDisclosureTextBlock_638653983208181893" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="3" />
  </presentationLink>
  <presentationLink xlink:role="http://www.comfortsystemsusa.com/role/DisclosureSummaryOfSignificantAccountingPoliciesAndEstimatesPolicies" xlink:type="extended" xlink:title="99920202 - Disclosure - Summary of Significant Accounting Policies and Estimates (Policies)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AccountingPoliciesAbstract" xlink:label="us-gaap_AccountingPoliciesAbstract" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BasisOfAccountingPolicyPolicyTextBlock" xlink:label="us-gaap_BasisOfAccountingPolicyPolicyTextBlock_638653983208191821" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AccountingPoliciesAbstract" xlink:to="us-gaap_BasisOfAccountingPolicyPolicyTextBlock_638653983208191821" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_UseOfEstimates" xlink:label="us-gaap_UseOfEstimates_638653983208191821" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AccountingPoliciesAbstract" xlink:to="us-gaap_UseOfEstimates_638653983208191821" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock" xlink:label="us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock_638653983208191821" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AccountingPoliciesAbstract" xlink:to="us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock_638653983208191821" order="3" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RevenueFromContractWithCustomerPolicyTextBlock" xlink:label="us-gaap_RevenueFromContractWithCustomerPolicyTextBlock_638653983208191821" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AccountingPoliciesAbstract" xlink:to="us-gaap_RevenueFromContractWithCustomerPolicyTextBlock_638653983208191821" order="4" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CreditLossFinancialInstrumentPolicyTextBlock" xlink:label="us-gaap_CreditLossFinancialInstrumentPolicyTextBlock_638653983208191821" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AccountingPoliciesAbstract" xlink:to="us-gaap_CreditLossFinancialInstrumentPolicyTextBlock_638653983208191821" order="5" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_TradeAndOtherAccountsReceivableUnbilledReceivablesPolicy" xlink:label="us-gaap_TradeAndOtherAccountsReceivableUnbilledReceivablesPolicy_638653983208191821" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AccountingPoliciesAbstract" xlink:to="us-gaap_TradeAndOtherAccountsReceivableUnbilledReceivablesPolicy_638653983208191821" order="6" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeTaxPolicyTextBlock" xlink:label="us-gaap_IncomeTaxPolicyTextBlock_638653983208191821" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AccountingPoliciesAbstract" xlink:to="us-gaap_IncomeTaxPolicyTextBlock_638653983208191821" order="7" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FairValueOfFinancialInstrumentsPolicy" xlink:label="us-gaap_FairValueOfFinancialInstrumentsPolicy_638653983208191821" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AccountingPoliciesAbstract" xlink:to="us-gaap_FairValueOfFinancialInstrumentsPolicy_638653983208191821" order="8" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValuePolicyTextBlock" xlink:label="us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValuePolicyTextBlock_638653983208191821" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AccountingPoliciesAbstract" xlink:to="us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValuePolicyTextBlock_638653983208191821" order="9" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LesseeLeasesPolicyTextBlock" xlink:label="us-gaap_LesseeLeasesPolicyTextBlock_638653983208191821" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AccountingPoliciesAbstract" xlink:to="us-gaap_LesseeLeasesPolicyTextBlock_638653983208191821" order="10" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
  </presentationLink>
  <presentationLink xlink:role="http://www.comfortsystemsusa.com/role/DisclosureRevenueFromContractsWithCustomersTables" xlink:type="extended" xlink:title="99930303 - Disclosure - Revenue from Contracts with Customers (Tables)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RevenueFromContractWithCustomerAbstract" xlink:label="us-gaap_RevenueFromContractWithCustomerAbstract_637485565109745046" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DisaggregationOfRevenueTableTextBlock" xlink:label="us-gaap_DisaggregationOfRevenueTableTextBlock_638653983208201820" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_RevenueFromContractWithCustomerAbstract_637485565109745046" xlink:to="us-gaap_DisaggregationOfRevenueTableTextBlock_638653983208201820" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ContractWithCustomerAssetAndLiabilityTableTextBlock" xlink:label="us-gaap_ContractWithCustomerAssetAndLiabilityTableTextBlock_638653983208201820" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_RevenueFromContractWithCustomerAbstract_637485565109745046" xlink:to="us-gaap_ContractWithCustomerAssetAndLiabilityTableTextBlock_638653983208201820" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
  </presentationLink>
  <presentationLink xlink:role="http://www.comfortsystemsusa.com/role/DisclosureFairValueMeasurementsTables" xlink:type="extended" xlink:title="99930403 - Disclosure - Fair Value Measurements (Tables)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FairValueDisclosuresAbstract" xlink:label="us-gaap_FairValueDisclosuresAbstract" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfFairValueAssetsAndLiabilitiesMeasuredOnRecurringBasisTableTextBlock" xlink:label="us-gaap_ScheduleOfFairValueAssetsAndLiabilitiesMeasuredOnRecurringBasisTableTextBlock_638653983208201820" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FairValueDisclosuresAbstract" xlink:to="us-gaap_ScheduleOfFairValueAssetsAndLiabilitiesMeasuredOnRecurringBasisTableTextBlock_638653983208201820" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationTextBlock" xlink:label="us-gaap_FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationTextBlock_638653983208201820" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FairValueDisclosuresAbstract" xlink:to="us-gaap_FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationTextBlock_638653983208201820" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
  </presentationLink>
  <presentationLink xlink:role="http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsTables" xlink:type="extended" xlink:title="99930503 - Disclosure - Acquisitions (Tables)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessCombinationsAbstract" xlink:label="us-gaap_BusinessCombinationsAbstract" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable" xlink:label="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable_638653983208201820" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessCombinationsAbstract" xlink:to="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable_638653983208201820" order="1" use="optional" priority="2" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessAcquisitionAxis" xlink:label="us-gaap_BusinessAcquisitionAxis_638653983208201820" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable_638653983208201820" xlink:to="us-gaap_BusinessAcquisitionAxis_638653983208201820" order="1" use="optional" priority="2" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessAcquisitionAcquireeDomain" xlink:label="us-gaap_BusinessAcquisitionAcquireeDomain_638653983208201820" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAxis_638653983208201820" xlink:to="us-gaap_BusinessAcquisitionAcquireeDomain_638653983208201820" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20240930.xsd#fix_SummitIndustrialConstructionLlcMember" xlink:label="fix_SummitIndustrialConstructionLlcMember_638653983208211817" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain_638653983208201820" xlink:to="fix_SummitIndustrialConstructionLlcMember_638653983208211817" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="fix-20240930.xsd#fix_JSMechanicalContractorsIncMember" xlink:label="fix_JSMechanicalContractorsIncMember_638653983208211817" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain_638653983208201820" xlink:to="fix_JSMechanicalContractorsIncMember_638653983208211817" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessAcquisitionLineItems" xlink:label="us-gaap_BusinessAcquisitionLineItems_638653983208211817" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable_638653983208201820" xlink:to="us-gaap_BusinessAcquisitionLineItems_638653983208211817" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTextBlock" xlink:label="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTextBlock_638653983208211817" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionLineItems_638653983208211817" xlink:to="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTextBlock_638653983208211817" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="4" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfFiniteLivedIntangibleAssetsAcquiredAsPartOfBusinessCombinationTextBlock" xlink:label="us-gaap_ScheduleOfFiniteLivedIntangibleAssetsAcquiredAsPartOfBusinessCombinationTextBlock_638653983208211817" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionLineItems_638653983208211817" xlink:to="us-gaap_ScheduleOfFiniteLivedIntangibleAssetsAcquiredAsPartOfBusinessCombinationTextBlock_638653983208211817" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
  </presentationLink>
  <presentationLink xlink:role="http://www.comfortsystemsusa.com/role/DisclosureGoodwillAndIdentifiableIntangibleAssetsNetTables" xlink:type="extended" xlink:title="99930603 - Disclosure - Goodwill and Identifiable Intangible Assets, Net (Tables)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract" xlink:label="us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfGoodwillTextBlock" xlink:label="us-gaap_ScheduleOfGoodwillTextBlock_638653983208211817" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract" xlink:to="us-gaap_ScheduleOfGoodwillTextBlock_638653983208211817" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock" xlink:label="us-gaap_ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock_638653983208211817" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract" xlink:to="us-gaap_ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock_638653983208211817" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
  </presentationLink>
  <presentationLink xlink:role="http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsTables" xlink:type="extended" xlink:title="99930703 - Disclosure - Debt Obligations (Tables)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DebtDisclosureAbstract" xlink:label="us-gaap_DebtDisclosureAbstract" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable_638653983208211817" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DebtDisclosureAbstract" xlink:to="us-gaap_StatementTable_638653983208211817" order="1" use="optional" priority="2" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DebtInstrumentAxis" xlink:label="us-gaap_DebtInstrumentAxis_638653983208221849" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_638653983208211817" xlink:to="us-gaap_DebtInstrumentAxis_638653983208221849" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DebtInstrumentNameDomain" xlink:label="us-gaap_DebtInstrumentNameDomain_638653983208221849" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DebtInstrumentAxis_638653983208221849" xlink:to="us-gaap_DebtInstrumentNameDomain_638653983208221849" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="fix-20240930.xsd#fix_SubordinateDebtAndPromissoryNoteMember" xlink:label="fix_SubordinateDebtAndPromissoryNoteMember_638653983208221849" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DebtInstrumentNameDomain_638653983208221849" xlink:to="fix_SubordinateDebtAndPromissoryNoteMember_638653983208221849" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems_638653983208221849" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_638653983208211817" xlink:to="us-gaap_StatementLineItems_638653983208221849" order="2" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfDebtTableTextBlock" xlink:label="us-gaap_ScheduleOfDebtTableTextBlock_638653983208221849" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_638653983208221849" xlink:to="us-gaap_ScheduleOfDebtTableTextBlock_638653983208221849" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="3" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfMaturitiesOfLongTermDebtTableTextBlock" xlink:label="us-gaap_ScheduleOfMaturitiesOfLongTermDebtTableTextBlock_638653983208221849" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_638653983208221849" xlink:to="us-gaap_ScheduleOfMaturitiesOfLongTermDebtTableTextBlock_638653983208221849" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="4" />
    <loc xlink:type="locator" xlink:href="fix-20240930.xsd#fix_ScheduleOfAdditionalMarginsTableTextBlock" xlink:label="fix_ScheduleOfAdditionalMarginsTableTextBlock_638653983208221849" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_638653983208221849" xlink:to="fix_ScheduleOfAdditionalMarginsTableTextBlock_638653983208221849" order="3" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="4" />
  </presentationLink>
  <presentationLink xlink:role="http://www.comfortsystemsusa.com/role/DisclosureLeasesTables" xlink:type="extended" xlink:title="99930803 - Disclosure - Leases (Tables)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LeasesAbstract" xlink:label="us-gaap_LeasesAbstract_637485565523802571" />
    <loc xlink:type="locator" xlink:href="fix-20240930.xsd#fix_ScheduleOfLeaseAssetsAndLiabilitiesTableTextBlock" xlink:label="fix_ScheduleOfLeaseAssetsAndLiabilitiesTableTextBlock_638653983208231843" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LeasesAbstract_637485565523802571" xlink:to="fix_ScheduleOfLeaseAssetsAndLiabilitiesTableTextBlock_638653983208231843" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LesseeOperatingLeaseLiabilityMaturityTableTextBlock" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityMaturityTableTextBlock_638653983208231843" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LeasesAbstract_637485565523802571" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityMaturityTableTextBlock_638653983208231843" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="fix-20240930.xsd#fix_ScheduleOfSupplementalInformationRelatedToLeasesTableTextBlock" xlink:label="fix_ScheduleOfSupplementalInformationRelatedToLeasesTableTextBlock_638653983208231843" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LeasesAbstract_637485565523802571" xlink:to="fix_ScheduleOfSupplementalInformationRelatedToLeasesTableTextBlock_638653983208231843" order="3" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
  </presentationLink>
  <presentationLink xlink:role="http://www.comfortsystemsusa.com/role/DisclosureStockholdersEquityTables" xlink:type="extended" xlink:title="99931003 - Disclosure - Stockholders' Equity (Tables)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StockholdersEquityNoteAbstract" xlink:label="us-gaap_StockholdersEquityNoteAbstract" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfWeightedAverageNumberOfSharesTableTextBlock" xlink:label="us-gaap_ScheduleOfWeightedAverageNumberOfSharesTableTextBlock_638653983208231843" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StockholdersEquityNoteAbstract" xlink:to="us-gaap_ScheduleOfWeightedAverageNumberOfSharesTableTextBlock_638653983208231843" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
  </presentationLink>
  <presentationLink xlink:role="http://www.comfortsystemsusa.com/role/DisclosureSegmentInformationTables" xlink:type="extended" xlink:title="99931103 - Disclosure - Segment Information (Tables)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SegmentReportingAbstract" xlink:label="us-gaap_SegmentReportingAbstract" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfSegmentReportingInformationBySegmentTextBlock" xlink:label="us-gaap_ScheduleOfSegmentReportingInformationBySegmentTextBlock_638653983208231843" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_SegmentReportingAbstract" xlink:to="us-gaap_ScheduleOfSegmentReportingInformationBySegmentTextBlock_638653983208231843" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="3" />
  </presentationLink>
  <presentationLink xlink:role="http://www.comfortsystemsusa.com/role/DisclosureSummaryOfSignificantAccountingPoliciesAndEstimatesIncomeTaxesDetails" xlink:type="extended" xlink:title="99940201 - Disclosure - Summary of Significant Accounting Policies and Estimates - Income Taxes (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AccountingPoliciesAbstract" xlink:label="us-gaap_AccountingPoliciesAbstract" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncreaseDecreaseInIncomeTaxesReceivable" xlink:label="us-gaap_IncreaseDecreaseInIncomeTaxesReceivable_638653983208231843" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AccountingPoliciesAbstract" xlink:to="us-gaap_IncreaseDecreaseInIncomeTaxesReceivable_638653983208231843" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
  </presentationLink>
  <presentationLink xlink:role="http://www.comfortsystemsusa.com/role/DisclosureSummaryOfSignificantAccountingPoliciesAndEstimatesInvestmentsDetails" xlink:type="extended" xlink:title="99940202 - Disclosure - Summary of Significant Accounting Policies and Estimates - Investments (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AccountingPoliciesAbstract" xlink:label="us-gaap_AccountingPoliciesAbstract_1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueAmount" xlink:label="us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueAmount_638653983208241818" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AccountingPoliciesAbstract_1" xlink:to="us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueAmount_638653983208241818" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
  </presentationLink>
  <presentationLink xlink:role="http://www.comfortsystemsusa.com/role/DisclosureRevenueFromContractsWithCustomersNarrativesDetails" xlink:type="extended" xlink:title="99940301 - Disclosure - Revenue from Contracts with Customers - Narratives (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RevenueFromContractWithCustomerAbstract" xlink:label="us-gaap_RevenueFromContractWithCustomerAbstract_3" />
    <loc xlink:type="locator" xlink:href="fix-20240930.xsd#fix_ContractWithCustomerPerformanceObligationSatisfiedInPreviousPeriodPercentage" xlink:label="fix_ContractWithCustomerPerformanceObligationSatisfiedInPreviousPeriodPercentage_638653983208241818" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_RevenueFromContractWithCustomerAbstract_3" xlink:to="fix_ContractWithCustomerPerformanceObligationSatisfiedInPreviousPeriodPercentage_638653983208241818" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
  </presentationLink>
  <presentationLink xlink:role="http://www.comfortsystemsusa.com/role/DisclosureRevenueFromContractsWithCustomersDisaggregationOfRevenueDetails" xlink:type="extended" xlink:title="99940302 - Disclosure - Revenue from Contracts with Customers - Disaggregation of Revenue (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AccountingPoliciesAbstract" xlink:label="us-gaap_AccountingPoliciesAbstract" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DisaggregationOfRevenueTable" xlink:label="us-gaap_DisaggregationOfRevenueTable_638653983208241818" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AccountingPoliciesAbstract" xlink:to="us-gaap_DisaggregationOfRevenueTable_638653983208241818" order="1" use="optional" priority="2" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_ProductOrServiceAxis" xlink:label="srt_ProductOrServiceAxis_638653983208241818" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DisaggregationOfRevenueTable_638653983208241818" xlink:to="srt_ProductOrServiceAxis_638653983208241818" order="1" use="optional" priority="2" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_ProductsAndServicesDomain" xlink:label="srt_ProductsAndServicesDomain_638653983208251816" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_ProductOrServiceAxis_638653983208241818" xlink:to="srt_ProductsAndServicesDomain_638653983208251816" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20240930.xsd#fix_MechanicalSegmentMember" xlink:label="fix_MechanicalSegmentMember_638653983208251816" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_ProductsAndServicesDomain_638653983208251816" xlink:to="fix_MechanicalSegmentMember_638653983208251816" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20240930.xsd#fix_ElectricalSegmentMember" xlink:label="fix_ElectricalSegmentMember_638653983208251816" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_ProductsAndServicesDomain_638653983208251816" xlink:to="fix_ElectricalSegmentMember_638653983208251816" order="2" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_MajorCustomersAxis" xlink:label="srt_MajorCustomersAxis_638653983208251816" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DisaggregationOfRevenueTable_638653983208241818" xlink:to="srt_MajorCustomersAxis_638653983208251816" order="2" use="optional" priority="2" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_NameOfMajorCustomerDomain" xlink:label="srt_NameOfMajorCustomerDomain_638653983208251816" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_MajorCustomersAxis_638653983208251816" xlink:to="srt_NameOfMajorCustomerDomain_638653983208251816" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20240930.xsd#fix_TechnologyMember" xlink:label="fix_TechnologyMember_638653983208251816" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_NameOfMajorCustomerDomain_638653983208251816" xlink:to="fix_TechnologyMember_638653983208251816" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <loc xlink:type="locator" xlink:href="fix-20240930.xsd#fix_ManufacturingCustomerMember" xlink:label="fix_ManufacturingCustomerMember_638653983208251816" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_NameOfMajorCustomerDomain_638653983208251816" xlink:to="fix_ManufacturingCustomerMember_638653983208251816" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="fix-20240930.xsd#fix_EducationMember" xlink:label="fix_EducationMember_638653983208251816" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_NameOfMajorCustomerDomain_638653983208251816" xlink:to="fix_EducationMember_638653983208251816" order="3" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20240930.xsd#fix_HealthcareSectorCustomerMember" xlink:label="fix_HealthcareSectorCustomerMember_638653983208251816" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_NameOfMajorCustomerDomain_638653983208251816" xlink:to="fix_HealthcareSectorCustomerMember_638653983208251816" order="4" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="fix-20240930.xsd#fix_OfficeBuildingCustomerMember" xlink:label="fix_OfficeBuildingCustomerMember_638653983208251816" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_NameOfMajorCustomerDomain_638653983208251816" xlink:to="fix_OfficeBuildingCustomerMember_638653983208251816" order="5" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20240930.xsd#fix_RetailRestaurantsAndEntertainmentMember" xlink:label="fix_RetailRestaurantsAndEntertainmentMember_638653983208251816" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_NameOfMajorCustomerDomain_638653983208251816" xlink:to="fix_RetailRestaurantsAndEntertainmentMember_638653983208251816" order="6" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20240930.xsd#fix_GovernmentCustomerMember" xlink:label="fix_GovernmentCustomerMember_638653983208251816" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_NameOfMajorCustomerDomain_638653983208251816" xlink:to="fix_GovernmentCustomerMember_638653983208251816" order="7" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20240930.xsd#fix_MultiFamilyAndResidentialMember" xlink:label="fix_MultiFamilyAndResidentialMember_638653983208251816" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_NameOfMajorCustomerDomain_638653983208251816" xlink:to="fix_MultiFamilyAndResidentialMember_638653983208251816" order="8" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OtherCustomerMember" xlink:label="us-gaap_OtherCustomerMember_638653983208261816" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_NameOfMajorCustomerDomain_638653983208251816" xlink:to="us-gaap_OtherCustomerMember_638653983208261816" order="9" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StatementBusinessSegmentsAxis" xlink:label="us-gaap_StatementBusinessSegmentsAxis_638653983208261816" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DisaggregationOfRevenueTable_638653983208241818" xlink:to="us-gaap_StatementBusinessSegmentsAxis_638653983208261816" order="3" use="optional" priority="2" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SegmentDomain" xlink:label="us-gaap_SegmentDomain_638653983208261816" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementBusinessSegmentsAxis_638653983208261816" xlink:to="us-gaap_SegmentDomain_638653983208261816" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20240930.xsd#fix_NewConstructionMember" xlink:label="fix_NewConstructionMember_638653983208261816" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_SegmentDomain_638653983208261816" xlink:to="fix_NewConstructionMember_638653983208261816" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20240930.xsd#fix_ExistingBuildingConstructionMember" xlink:label="fix_ExistingBuildingConstructionMember_638653983208261816" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_SegmentDomain_638653983208261816" xlink:to="fix_ExistingBuildingConstructionMember_638653983208261816" order="2" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20240930.xsd#fix_ServiceProjectsMember" xlink:label="fix_ServiceProjectsMember_638653983208261816" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_SegmentDomain_638653983208261816" xlink:to="fix_ServiceProjectsMember_638653983208261816" order="3" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20240930.xsd#fix_ServiceCallsMaintenanceAndMonitoringMember" xlink:label="fix_ServiceCallsMaintenanceAndMonitoringMember_638653983208261816" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_SegmentDomain_638653983208261816" xlink:to="fix_ServiceCallsMaintenanceAndMonitoringMember_638653983208261816" order="4" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DisaggregationOfRevenueLineItems" xlink:label="us-gaap_DisaggregationOfRevenueLineItems_638653983208261816" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DisaggregationOfRevenueTable_638653983208241818" xlink:to="us-gaap_DisaggregationOfRevenueLineItems_638653983208261816" order="4" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="4" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_Revenues" xlink:label="us-gaap_Revenues_638653983208261816" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DisaggregationOfRevenueLineItems_638653983208261816" xlink:to="us-gaap_Revenues_638653983208261816" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" priority="4" />
    <loc xlink:type="locator" xlink:href="fix-20240930.xsd#fix_PercentageOfRevenueFromContractWithCustomer" xlink:label="fix_PercentageOfRevenueFromContractWithCustomer_638653983208271823" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DisaggregationOfRevenueLineItems_638653983208261816" xlink:to="fix_PercentageOfRevenueFromContractWithCustomer_638653983208271823" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
  </presentationLink>
  <presentationLink xlink:role="http://www.comfortsystemsusa.com/role/DisclosureRevenueFromContractsWithCustomersContractAssetsAndLiabilitiesDetails" xlink:type="extended" xlink:title="99940303 - Disclosure - Revenue from Contracts with Customers - Contract Assets and Liabilities (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RevenueFromContractWithCustomerAbstract" xlink:label="us-gaap_RevenueFromContractWithCustomerAbstract_2" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ChangeInContractWithCustomerAssetAbstract" xlink:label="us-gaap_ChangeInContractWithCustomerAssetAbstract_638653983208271823" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_RevenueFromContractWithCustomerAbstract_2" xlink:to="us-gaap_ChangeInContractWithCustomerAssetAbstract_638653983208271823" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ContractWithCustomerAssetNet" xlink:label="us-gaap_ContractWithCustomerAssetNet_638653983208271823" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ChangeInContractWithCustomerAssetAbstract_638653983208271823" xlink:to="us-gaap_ContractWithCustomerAssetNet_638653983208271823" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ContractWithCustomerAssetNetCurrent" xlink:label="us-gaap_ContractWithCustomerAssetNetCurrent_638653983208271823" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ChangeInContractWithCustomerAssetAbstract_638653983208271823" xlink:to="us-gaap_ContractWithCustomerAssetNetCurrent_638653983208271823" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ChangeInContractWithCustomerLiabilityAbstract" xlink:label="us-gaap_ChangeInContractWithCustomerLiabilityAbstract_638653983208271823" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_RevenueFromContractWithCustomerAbstract_2" xlink:to="us-gaap_ChangeInContractWithCustomerLiabilityAbstract_638653983208271823" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ContractWithCustomerLiabilityCurrent" xlink:label="us-gaap_ContractWithCustomerLiabilityCurrent_638653983208271823" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ChangeInContractWithCustomerLiabilityAbstract_638653983208271823" xlink:to="us-gaap_ContractWithCustomerLiabilityCurrent_638653983208271823" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ContractWithCustomerAssetCreditLossExpense" xlink:label="us-gaap_ContractWithCustomerAssetCreditLossExpense_638653983208271823" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_RevenueFromContractWithCustomerAbstract_2" xlink:to="us-gaap_ContractWithCustomerAssetCreditLossExpense_638653983208271823" order="3" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ContractWithCustomerLiabilityRevenueRecognized" xlink:label="us-gaap_ContractWithCustomerLiabilityRevenueRecognized_638653983208271823" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_RevenueFromContractWithCustomerAbstract_2" xlink:to="us-gaap_ContractWithCustomerLiabilityRevenueRecognized_638653983208271823" order="4" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
  </presentationLink>
  <presentationLink xlink:role="http://www.comfortsystemsusa.com/role/DisclosureRevenueFromContractsWithCustomersRemainingPerformanceObligationsDetails" xlink:type="extended" xlink:title="99940304 - Disclosure - Revenue from Contracts with Customers - Remaining Performance Obligations (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AccountingPoliciesAbstract" xlink:label="us-gaap_AccountingPoliciesAbstract" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionTable" xlink:label="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionTable_638653983208281816" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AccountingPoliciesAbstract" xlink:to="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionTable_638653983208281816" order="1" use="optional" priority="2" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis" xlink:label="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis_638653983208281816" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionTable_638653983208281816" xlink:to="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis_638653983208281816" order="1" use="optional" priority="2" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_RangeAxis" xlink:label="srt_RangeAxis_638653983208281816" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionTable_638653983208281816" xlink:to="srt_RangeAxis_638653983208281816" order="2" use="optional" priority="2" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_RangeMember" xlink:label="srt_RangeMember_638653983208281816" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_RangeAxis_638653983208281816" xlink:to="srt_RangeMember_638653983208281816" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_MinimumMember" xlink:label="srt_MinimumMember_638653983208281816" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_RangeMember_638653983208281816" xlink:to="srt_MinimumMember_638653983208281816" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_MaximumMember" xlink:label="srt_MaximumMember_638653983208281816" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_RangeMember_638653983208281816" xlink:to="srt_MaximumMember_638653983208281816" order="2" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionLineItems" xlink:label="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionLineItems_638653983208281816" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionTable_638653983208281816" xlink:to="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionLineItems_638653983208281816" order="3" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="4" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RevenueRemainingPerformanceObligation" xlink:label="us-gaap_RevenueRemainingPerformanceObligation_638653983208281816" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionLineItems_638653983208281816" xlink:to="us-gaap_RevenueRemainingPerformanceObligation_638653983208281816" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="3" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RevenueRemainingPerformanceObligationPercentage" xlink:label="us-gaap_RevenueRemainingPerformanceObligationPercentage_638653983208291818" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionLineItems_638653983208281816" xlink:to="us-gaap_RevenueRemainingPerformanceObligationPercentage_638653983208291818" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="4" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1" xlink:label="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1_638653983208291818" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionLineItems_638653983208281816" xlink:to="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1_638653983208291818" order="3" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="4" />
    <loc xlink:type="locator" xlink:href="fix-20240930.xsd#fix_RenewableServiceMaintenanceAgreementsTerm" xlink:label="fix_RenewableServiceMaintenanceAgreementsTerm_638653983208291818" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionLineItems_638653983208281816" xlink:to="fix_RenewableServiceMaintenanceAgreementsTerm_638653983208291818" order="4" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="4" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RevenuePracticalExpedientRemainingPerformanceObligation" xlink:label="us-gaap_RevenuePracticalExpedientRemainingPerformanceObligation_638653983208291818" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionLineItems_638653983208281816" xlink:to="us-gaap_RevenuePracticalExpedientRemainingPerformanceObligation_638653983208291818" order="5" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="5" />
  </presentationLink>
  <presentationLink xlink:role="http://www.comfortsystemsusa.com/role/DisclosureFairValueMeasurementsDetails" xlink:type="extended" xlink:title="99940401 - Disclosure - Fair Value Measurements (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FairValueDisclosuresAbstract" xlink:label="us-gaap_FairValueDisclosuresAbstract" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable" xlink:label="us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable_638653983208291818" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FairValueDisclosuresAbstract" xlink:to="us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable_638653983208291818" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FairValueByMeasurementFrequencyAxis" xlink:label="us-gaap_FairValueByMeasurementFrequencyAxis_638653983208291818" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable_638653983208291818" xlink:to="us-gaap_FairValueByMeasurementFrequencyAxis_638653983208291818" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FairValueMeasurementFrequencyDomain" xlink:label="us-gaap_FairValueMeasurementFrequencyDomain_638653983208291818" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FairValueByMeasurementFrequencyAxis_638653983208291818" xlink:to="us-gaap_FairValueMeasurementFrequencyDomain_638653983208291818" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FairValueMeasurementsRecurringMember" xlink:label="us-gaap_FairValueMeasurementsRecurringMember_638653983208291818" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FairValueMeasurementFrequencyDomain_638653983208291818" xlink:to="us-gaap_FairValueMeasurementsRecurringMember_638653983208291818" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FairValueByFairValueHierarchyLevelAxis" xlink:label="us-gaap_FairValueByFairValueHierarchyLevelAxis_638653983208291818" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable_638653983208291818" xlink:to="us-gaap_FairValueByFairValueHierarchyLevelAxis_638653983208291818" order="2" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FairValueMeasurementsFairValueHierarchyDomain" xlink:label="us-gaap_FairValueMeasurementsFairValueHierarchyDomain_638653983208301817" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FairValueByFairValueHierarchyLevelAxis_638653983208291818" xlink:to="us-gaap_FairValueMeasurementsFairValueHierarchyDomain_638653983208301817" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FairValueInputsLevel1Member" xlink:label="us-gaap_FairValueInputsLevel1Member_638653983208301817" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FairValueMeasurementsFairValueHierarchyDomain_638653983208301817" xlink:to="us-gaap_FairValueInputsLevel1Member_638653983208301817" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FairValueInputsLevel2Member" xlink:label="us-gaap_FairValueInputsLevel2Member_638653983208301817" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FairValueMeasurementsFairValueHierarchyDomain_638653983208301817" xlink:to="us-gaap_FairValueInputsLevel2Member_638653983208301817" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FairValueInputsLevel3Member" xlink:label="us-gaap_FairValueInputsLevel3Member_638653983208301817" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FairValueMeasurementsFairValueHierarchyDomain_638653983208301817" xlink:to="us-gaap_FairValueInputsLevel3Member_638653983208301817" order="3" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FairValueByLiabilityClassAxis" xlink:label="us-gaap_FairValueByLiabilityClassAxis_638653983208301817" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable_638653983208291818" xlink:to="us-gaap_FairValueByLiabilityClassAxis_638653983208301817" order="3" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationByLiabilityClassDomain" xlink:label="us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationByLiabilityClassDomain_638653983208301817" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FairValueByLiabilityClassAxis_638653983208301817" xlink:to="us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationByLiabilityClassDomain_638653983208301817" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20240930.xsd#fix_ContingentConsiderationObligationsMember" xlink:label="fix_ContingentConsiderationObligationsMember_638653983208301817" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationByLiabilityClassDomain_638653983208301817" xlink:to="fix_ContingentConsiderationObligationsMember_638653983208301817" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FairValueByMeasurementBasisAxis" xlink:label="us-gaap_FairValueByMeasurementBasisAxis_638653983208301817" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable_638653983208291818" xlink:to="us-gaap_FairValueByMeasurementBasisAxis_638653983208301817" order="4" use="optional" priority="2" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PortionAtFairValueFairValueDisclosureMember" xlink:label="us-gaap_PortionAtFairValueFairValueDisclosureMember_638653983208301817" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FairValueByMeasurementBasisAxis_638653983208301817" xlink:to="us-gaap_PortionAtFairValueFairValueDisclosureMember_638653983208301817" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EstimateOfFairValueFairValueDisclosureMember" xlink:label="us-gaap_EstimateOfFairValueFairValueDisclosureMember_638653983208301817" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_PortionAtFairValueFairValueDisclosureMember_638653983208301817" xlink:to="us-gaap_EstimateOfFairValueFairValueDisclosureMember_638653983208301817" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_RangeAxis" xlink:label="srt_RangeAxis_638653983208311818" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable_638653983208291818" xlink:to="srt_RangeAxis_638653983208311818" order="5" use="optional" priority="2" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_RangeMember" xlink:label="srt_RangeMember_638653983208311818" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_RangeAxis_638653983208311818" xlink:to="srt_RangeMember_638653983208311818" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_MinimumMember" xlink:label="srt_MinimumMember_638653983208311818" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_RangeMember_638653983208311818" xlink:to="srt_MinimumMember_638653983208311818" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_MaximumMember" xlink:label="srt_MaximumMember_638653983208311818" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_RangeMember_638653983208311818" xlink:to="srt_MaximumMember_638653983208311818" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems" xlink:label="us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems_638653983208311818" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable_638653983208291818" xlink:to="us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems_638653983208311818" order="6" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CashAndCashEquivalentsFairValueDisclosure" xlink:label="us-gaap_CashAndCashEquivalentsFairValueDisclosure_638653983208311818" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems_638653983208311818" xlink:to="us-gaap_CashAndCashEquivalentsFairValueDisclosure_638653983208311818" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CashSurrenderValueFairValueDisclosure" xlink:label="us-gaap_CashSurrenderValueFairValueDisclosure_638653983208311818" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems_638653983208311818" xlink:to="us-gaap_CashSurrenderValueFairValueDisclosure_638653983208311818" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue" xlink:label="us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue_638653983208311818" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems_638653983208311818" xlink:to="us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue_638653983208311818" order="3" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="fix-20240930.xsd#fix_LifeInsuranceContractsNumberOfEmployeesCovered" xlink:label="fix_LifeInsuranceContractsNumberOfEmployeesCovered_638653983208311818" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems_638653983208311818" xlink:to="fix_LifeInsuranceContractsNumberOfEmployeesCovered_638653983208311818" order="4" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="fix-20240930.xsd#fix_LifeInsuranceContractsFaceAmount" xlink:label="fix_LifeInsuranceContractsFaceAmount_638653983208321825" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems_638653983208311818" xlink:to="fix_LifeInsuranceContractsFaceAmount_638653983208321825" order="5" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="fix-20240930.xsd#fix_WeightedAverageCostOfCapital" xlink:label="fix_WeightedAverageCostOfCapital_638653983208321825" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems_638653983208311818" xlink:to="fix_WeightedAverageCostOfCapital_638653983208321825" order="6" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="3" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationCalculationRollForward" xlink:label="us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationCalculationRollForward_638653983208321825" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems_638653983208311818" xlink:to="us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationCalculationRollForward_638653983208321825" order="7" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue" xlink:label="us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue_638653983208321825" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationCalculationRollForward_638653983208321825" xlink:to="us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue_638653983208321825" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityIssues" xlink:label="us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityIssues_638653983208321825" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationCalculationRollForward_638653983208321825" xlink:to="us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityIssues_638653983208321825" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilitySettlements" xlink:label="us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilitySettlements_638653983208321825" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationCalculationRollForward_638653983208321825" xlink:to="us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilitySettlements_638653983208321825" order="3" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" priority="2" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityGainLossIncludedInEarnings" xlink:label="us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityGainLossIncludedInEarnings_638653983208331857" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationCalculationRollForward_638653983208321825" xlink:to="us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityGainLossIncludedInEarnings_638653983208331857" order="4" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="4" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue" xlink:label="us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue_638653983208331857" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationCalculationRollForward_638653983208321825" xlink:to="us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue_638653983208331857" order="5" use="optional" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel" />
  </presentationLink>
  <presentationLink xlink:role="http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsDetails" xlink:type="extended" xlink:title="99940501 - Disclosure - Acquisitions (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessCombinationsAbstract" xlink:label="us-gaap_BusinessCombinationsAbstract_636970798723497116" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable" xlink:label="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable_638653983208331857" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessCombinationsAbstract_636970798723497116" xlink:to="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable_638653983208331857" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessAcquisitionAxis" xlink:label="us-gaap_BusinessAcquisitionAxis_638653983208331857" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable_638653983208331857" xlink:to="us-gaap_BusinessAcquisitionAxis_638653983208331857" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessAcquisitionAcquireeDomain" xlink:label="us-gaap_BusinessAcquisitionAcquireeDomain_638653983208331857" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAxis_638653983208331857" xlink:to="us-gaap_BusinessAcquisitionAcquireeDomain_638653983208331857" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20240930.xsd#fix_SummitIndustrialConstructionLlcMember" xlink:label="fix_SummitIndustrialConstructionLlcMember_638653983208331857" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain_638653983208331857" xlink:to="fix_SummitIndustrialConstructionLlcMember_638653983208331857" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="fix-20240930.xsd#fix_JSMechanicalContractorsIncMember" xlink:label="fix_JSMechanicalContractorsIncMember_638653983208341819" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain_638653983208331857" xlink:to="fix_JSMechanicalContractorsIncMember_638653983208341819" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessAcquisitionLineItems" xlink:label="us-gaap_BusinessAcquisitionLineItems_638653983208341819" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable_638653983208331857" xlink:to="us-gaap_BusinessAcquisitionLineItems_638653983208341819" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessCombinationConsiderationTransferredAbstract" xlink:label="us-gaap_BusinessCombinationConsiderationTransferredAbstract_638653983208341819" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionLineItems_638653983208341819" xlink:to="us-gaap_BusinessCombinationConsiderationTransferredAbstract_638653983208341819" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="3" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PaymentsToAcquireBusinessesGross" xlink:label="us-gaap_PaymentsToAcquireBusinessesGross_638653983208341819" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessCombinationConsiderationTransferredAbstract_638653983208341819" xlink:to="us-gaap_PaymentsToAcquireBusinessesGross_638653983208341819" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" priority="4" />
    <loc xlink:type="locator" xlink:href="fix-20240930.xsd#fix_BusinessCombinationConsiderationTransferredWorkingCapitalAdjustment" xlink:label="fix_BusinessCombinationConsiderationTransferredWorkingCapitalAdjustment_638653983208341819" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessCombinationConsiderationTransferredAbstract_638653983208341819" xlink:to="fix_BusinessCombinationConsiderationTransferredWorkingCapitalAdjustment_638653983208341819" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="3" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessCombinationConsiderationTransferredLiabilitiesIncurred" xlink:label="us-gaap_BusinessCombinationConsiderationTransferredLiabilitiesIncurred_638653983208341819" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessCombinationConsiderationTransferredAbstract_638653983208341819" xlink:to="us-gaap_BusinessCombinationConsiderationTransferredLiabilitiesIncurred_638653983208341819" order="3" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" priority="8" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessCombinationContingentConsiderationLiability" xlink:label="us-gaap_BusinessCombinationContingentConsiderationLiability_638653983208341819" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessCombinationConsiderationTransferredAbstract_638653983208341819" xlink:to="us-gaap_BusinessCombinationContingentConsiderationLiability_638653983208341819" order="4" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet_638653983208341819" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessCombinationConsiderationTransferredAbstract_638653983208341819" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet_638653983208341819" order="5" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_Revenues" xlink:label="us-gaap_Revenues_638653983208341819" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessCombinationConsiderationTransferredAbstract_638653983208341819" xlink:to="us-gaap_Revenues_638653983208341819" order="6" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNetAbstract" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNetAbstract_638653983208341819" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionLineItems_638653983208341819" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNetAbstract_638653983208341819" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="4" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents_638653983208341819" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNetAbstract_638653983208341819" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents_638653983208341819" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="3" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables_638653983208351818" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNetAbstract_638653983208341819" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables_638653983208351818" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="4" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedInventory" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedInventory_638653983208351818" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNetAbstract_638653983208341819" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedInventory_638653983208351818" order="3" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsPrepaidExpenseAndOtherAssets" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsPrepaidExpenseAndOtherAssets_638653983208351818" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNetAbstract_638653983208341819" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsPrepaidExpenseAndOtherAssets_638653983208351818" order="4" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="fix-20240930.xsd#fix_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsCostsInExcessOfBillings" xlink:label="fix_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsCostsInExcessOfBillings_638653983208351818" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNetAbstract_638653983208341819" xlink:to="fix_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsCostsInExcessOfBillings_638653983208351818" order="5" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment_638653983208351818" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNetAbstract_638653983208341819" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment_638653983208351818" order="6" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="4" />
    <loc xlink:type="locator" xlink:href="fix-20240930.xsd#fix_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseRightOfUseAssets" xlink:label="fix_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseRightOfUseAssets_638653983208351818" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNetAbstract_638653983208341819" xlink:to="fix_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseRightOfUseAssets_638653983208351818" order="7" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_Goodwill" xlink:label="us-gaap_Goodwill_638653983208351818" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNetAbstract_638653983208341819" xlink:to="us-gaap_Goodwill_638653983208351818" order="8" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles_638653983208351818" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNetAbstract_638653983208341819" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles_638653983208351818" order="9" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="4" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOtherNoncurrentAssets" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOtherNoncurrentAssets_638653983208351818" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNetAbstract_638653983208341819" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOtherNoncurrentAssets_638653983208351818" order="10" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="4" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable_638653983208361819" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNetAbstract_638653983208341819" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable_638653983208361819" order="11" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" priority="6" />
    <loc xlink:type="locator" xlink:href="fix-20240930.xsd#fix_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesBillingsInExcessOfCostsAndEstimatedEarnings" xlink:label="fix_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesBillingsInExcessOfCostsAndEstimatedEarnings_638653983208361819" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNetAbstract_638653983208341819" xlink:to="fix_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesBillingsInExcessOfCostsAndEstimatedEarnings_638653983208361819" order="12" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" priority="4" />
    <loc xlink:type="locator" xlink:href="fix-20240930.xsd#fix_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesOperatingLeaseLiabilities" xlink:label="fix_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesOperatingLeaseLiabilities_638653983208361819" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNetAbstract_638653983208341819" xlink:to="fix_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesOperatingLeaseLiabilities_638653983208361819" order="13" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesOther" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesOther_638653983208361819" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNetAbstract_638653983208341819" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesOther_638653983208361819" order="14" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" priority="5" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNoncurrentLiabilitiesLongTermDebt" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNoncurrentLiabilitiesLongTermDebt_638653983208361819" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNetAbstract_638653983208341819" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNoncurrentLiabilitiesLongTermDebt_638653983208361819" order="15" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="fix-20240930.xsd#fix_BusinessCombinationRecognizedIdentifiableAssetAcquiredAndLiabilityAssumedOperatingLeaseObligation" xlink:label="fix_BusinessCombinationRecognizedIdentifiableAssetAcquiredAndLiabilityAssumedOperatingLeaseObligation_638653983208361819" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNetAbstract_638653983208341819" xlink:to="fix_BusinessCombinationRecognizedIdentifiableAssetAcquiredAndLiabilityAssumedOperatingLeaseObligation_638653983208361819" order="16" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet_638653983208361819" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNetAbstract_638653983208341819" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet_638653983208361819" order="17" use="optional" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" priority="4" />
  </presentationLink>
  <presentationLink xlink:role="http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsAcquiredIntangibleAssetsDetails" xlink:type="extended" xlink:title="99940502 - Disclosure - Acquisitions - Acquired Intangible Assets (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessCombinationsAbstract" xlink:label="us-gaap_BusinessCombinationsAbstract" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FiniteLivedIntangibleAssetsAcquiredAsPartOfBusinessCombinationTable" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAcquiredAsPartOfBusinessCombinationTable_638653983208371821" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessCombinationsAbstract" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAcquiredAsPartOfBusinessCombinationTable_638653983208371821" order="1" use="optional" priority="2" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessAcquisitionAxis" xlink:label="us-gaap_BusinessAcquisitionAxis_638653983208371821" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FiniteLivedIntangibleAssetsAcquiredAsPartOfBusinessCombinationTable_638653983208371821" xlink:to="us-gaap_BusinessAcquisitionAxis_638653983208371821" order="1" use="optional" priority="2" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessAcquisitionAcquireeDomain" xlink:label="us-gaap_BusinessAcquisitionAcquireeDomain_638653983208371821" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAxis_638653983208371821" xlink:to="us-gaap_BusinessAcquisitionAcquireeDomain_638653983208371821" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20240930.xsd#fix_SummitIndustrialConstructionLlcMember" xlink:label="fix_SummitIndustrialConstructionLlcMember_638653983208371821" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain_638653983208371821" xlink:to="fix_SummitIndustrialConstructionLlcMember_638653983208371821" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="fix-20240930.xsd#fix_JSMechanicalContractorsIncMember" xlink:label="fix_JSMechanicalContractorsIncMember_638653983208371821" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain_638653983208371821" xlink:to="fix_JSMechanicalContractorsIncMember_638653983208371821" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:label="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_638653983208371821" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FiniteLivedIntangibleAssetsAcquiredAsPartOfBusinessCombinationTable_638653983208371821" xlink:to="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_638653983208371821" order="2" use="optional" priority="2" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:label="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_638653983208371821" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_638653983208371821" xlink:to="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_638653983208371821" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OrderOrProductionBacklogMember" xlink:label="us-gaap_OrderOrProductionBacklogMember_638653983208371821" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_638653983208371821" xlink:to="us-gaap_OrderOrProductionBacklogMember_638653983208371821" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_TradeNamesMember" xlink:label="us-gaap_TradeNamesMember_638653983208381818" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_638653983208371821" xlink:to="us-gaap_TradeNamesMember_638653983208381818" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CustomerRelationshipsMember" xlink:label="us-gaap_CustomerRelationshipsMember_638653983208381818" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_638653983208371821" xlink:to="us-gaap_CustomerRelationshipsMember_638653983208381818" order="3" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FairValueByLiabilityClassAxis" xlink:label="us-gaap_FairValueByLiabilityClassAxis_638653983208381818" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FiniteLivedIntangibleAssetsAcquiredAsPartOfBusinessCombinationTable_638653983208371821" xlink:to="us-gaap_FairValueByLiabilityClassAxis_638653983208381818" order="3" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationByLiabilityClassDomain" xlink:label="us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationByLiabilityClassDomain_638653983208381818" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FairValueByLiabilityClassAxis_638653983208381818" xlink:to="us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationByLiabilityClassDomain_638653983208381818" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="fix-20240930.xsd#fix_ContingentConsiderationObligationsMember" xlink:label="fix_ContingentConsiderationObligationsMember_638653983208381818" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationByLiabilityClassDomain_638653983208381818" xlink:to="fix_ContingentConsiderationObligationsMember_638653983208381818" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_RangeAxis" xlink:label="srt_RangeAxis_638653983208381818" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FiniteLivedIntangibleAssetsAcquiredAsPartOfBusinessCombinationTable_638653983208371821" xlink:to="srt_RangeAxis_638653983208381818" order="4" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_RangeMember" xlink:label="srt_RangeMember_638653983208381818" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_RangeAxis_638653983208381818" xlink:to="srt_RangeMember_638653983208381818" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_MinimumMember" xlink:label="srt_MinimumMember_638653983208381818" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_RangeMember_638653983208381818" xlink:to="srt_MinimumMember_638653983208381818" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_MaximumMember" xlink:label="srt_MaximumMember_638653983208381818" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_RangeMember_638653983208381818" xlink:to="srt_MaximumMember_638653983208381818" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_MeasurementInputTypeAxis" xlink:label="us-gaap_MeasurementInputTypeAxis_638653983208381818" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FiniteLivedIntangibleAssetsAcquiredAsPartOfBusinessCombinationTable_638653983208371821" xlink:to="us-gaap_MeasurementInputTypeAxis_638653983208381818" order="5" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_MeasurementInputTypeDomain" xlink:label="us-gaap_MeasurementInputTypeDomain_638653983208391814" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_MeasurementInputTypeAxis_638653983208381818" xlink:to="us-gaap_MeasurementInputTypeDomain_638653983208391814" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_MeasurementInputInceptionDiscountRateMember" xlink:label="us-gaap_MeasurementInputInceptionDiscountRateMember_638653983208391814" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_MeasurementInputTypeDomain_638653983208391814" xlink:to="us-gaap_MeasurementInputInceptionDiscountRateMember_638653983208391814" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AcquiredFiniteLivedIntangibleAssetsLineItems" xlink:label="us-gaap_AcquiredFiniteLivedIntangibleAssetsLineItems_638653983208391814" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FiniteLivedIntangibleAssetsAcquiredAsPartOfBusinessCombinationTable_638653983208371821" xlink:to="us-gaap_AcquiredFiniteLivedIntangibleAssetsLineItems_638653983208391814" order="6" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife" xlink:label="us-gaap_AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife_638653983208391814" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AcquiredFiniteLivedIntangibleAssetsLineItems_638653983208391814" xlink:to="us-gaap_AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife_638653983208391814" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="4" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles_638653983208391814" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AcquiredFiniteLivedIntangibleAssetsLineItems_638653983208391814" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles_638653983208391814" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" priority="3" />
    <loc xlink:type="locator" xlink:href="fix-20240930.xsd#fix_BusinessCombinationNumberOfEarningsMilestones" xlink:label="fix_BusinessCombinationNumberOfEarningsMilestones_638653983208391814" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AcquiredFiniteLivedIntangibleAssetsLineItems_638653983208391814" xlink:to="fix_BusinessCombinationNumberOfEarningsMilestones_638653983208391814" order="3" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="fix-20240930.xsd#fix_BusinessCombinationTermOfEarningsMilestones" xlink:label="fix_BusinessCombinationTermOfEarningsMilestones_638653983208391814" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AcquiredFiniteLivedIntangibleAssetsLineItems_638653983208391814" xlink:to="fix_BusinessCombinationTermOfEarningsMilestones_638653983208391814" order="4" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueHigh" xlink:label="us-gaap_BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueHigh_638653983208401820" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AcquiredFiniteLivedIntangibleAssetsLineItems_638653983208391814" xlink:to="us-gaap_BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueHigh_638653983208401820" order="5" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueLow" xlink:label="us-gaap_BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueLow_638653983208401820" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AcquiredFiniteLivedIntangibleAssetsLineItems_638653983208391814" xlink:to="us-gaap_BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueLow_638653983208401820" order="6" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="fix-20240930.xsd#fix_CashFlowDiscountRate" xlink:label="fix_CashFlowDiscountRate_638653983208401820" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AcquiredFiniteLivedIntangibleAssetsLineItems_638653983208391814" xlink:to="fix_CashFlowDiscountRate_638653983208401820" order="7" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
  </presentationLink>
  <presentationLink xlink:role="http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsOtherAcquisitionsDetails" xlink:type="extended" xlink:title="99940503 - Disclosure - Acquisitions - Other Acquisitions (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessCombinationsAbstract" xlink:label="us-gaap_BusinessCombinationsAbstract_636970784215205653" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable" xlink:label="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable_638653983208401820" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessCombinationsAbstract_636970784215205653" xlink:to="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable_638653983208401820" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessAcquisitionAxis" xlink:label="us-gaap_BusinessAcquisitionAxis_638653983208401820" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable_638653983208401820" xlink:to="us-gaap_BusinessAcquisitionAxis_638653983208401820" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessAcquisitionAcquireeDomain" xlink:label="us-gaap_BusinessAcquisitionAcquireeDomain_638653983208401820" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAxis_638653983208401820" xlink:to="us-gaap_BusinessAcquisitionAcquireeDomain_638653983208401820" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20240930.xsd#fix_DeccoIncMember" xlink:label="fix_DeccoIncMember_638653983208411900" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain_638653983208401820" xlink:to="fix_DeccoIncMember_638653983208411900" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="fix-20240930.xsd#fix_EldecoincMember" xlink:label="fix_EldecoincMember_638653983208411900" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain_638653983208401820" xlink:to="fix_EldecoincMember_638653983208411900" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="fix-20240930.xsd#fix_MechanicalContractorNorthCarolinaMember" xlink:label="fix_MechanicalContractorNorthCarolinaMember_638653983208411900" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain_638653983208401820" xlink:to="fix_MechanicalContractorNorthCarolinaMember_638653983208411900" order="3" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessAcquisitionLineItems" xlink:label="us-gaap_BusinessAcquisitionLineItems_638653983208411900" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable_638653983208401820" xlink:to="us-gaap_BusinessAcquisitionLineItems_638653983208411900" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessCombinationConsiderationTransferred1" xlink:label="us-gaap_BusinessCombinationConsiderationTransferred1_638653983208411900" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionLineItems_638653983208411900" xlink:to="us-gaap_BusinessCombinationConsiderationTransferred1_638653983208411900" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="4" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PaymentsToAcquireBusinessesGross" xlink:label="us-gaap_PaymentsToAcquireBusinessesGross_638653983208411900" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionLineItems_638653983208411900" xlink:to="us-gaap_PaymentsToAcquireBusinessesGross_638653983208411900" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" priority="2" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessCombinationConsiderationTransferredLiabilitiesIncurred" xlink:label="us-gaap_BusinessCombinationConsiderationTransferredLiabilitiesIncurred_638653983208411900" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionLineItems_638653983208411900" xlink:to="us-gaap_BusinessCombinationConsiderationTransferredLiabilitiesIncurred_638653983208411900" order="3" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" priority="8" />
  </presentationLink>
  <presentationLink xlink:role="http://www.comfortsystemsusa.com/role/DisclosureGoodwillAndIdentifiableIntangibleAssetsNetChangesInCarryingAmountOfGoodwillDetails" xlink:type="extended" xlink:title="99940601 - Disclosure - Goodwill and Identifiable Intangible Assets, Net - Changes in Carrying Amount of Goodwill (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract" xlink:label="us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfGoodwillTable" xlink:label="us-gaap_ScheduleOfGoodwillTable_638653983208421818" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract" xlink:to="us-gaap_ScheduleOfGoodwillTable_638653983208421818" order="1" use="optional" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StatementBusinessSegmentsAxis" xlink:label="us-gaap_StatementBusinessSegmentsAxis_638653983208421818" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ScheduleOfGoodwillTable_638653983208421818" xlink:to="us-gaap_StatementBusinessSegmentsAxis_638653983208421818" order="1" use="optional" priority="2" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SegmentDomain" xlink:label="us-gaap_SegmentDomain_638653983208421818" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementBusinessSegmentsAxis_638653983208421818" xlink:to="us-gaap_SegmentDomain_638653983208421818" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20240930.xsd#fix_MechanicalSegmentMember" xlink:label="fix_MechanicalSegmentMember_638653983208421818" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_SegmentDomain_638653983208421818" xlink:to="fix_MechanicalSegmentMember_638653983208421818" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20240930.xsd#fix_ElectricalSegmentMember" xlink:label="fix_ElectricalSegmentMember_638653983208421818" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_SegmentDomain_638653983208421818" xlink:to="fix_ElectricalSegmentMember_638653983208421818" order="2" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_GoodwillLineItems" xlink:label="us-gaap_GoodwillLineItems_638653983208421818" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ScheduleOfGoodwillTable_638653983208421818" xlink:to="us-gaap_GoodwillLineItems_638653983208421818" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_GoodwillRollForward" xlink:label="us-gaap_GoodwillRollForward_638653983208421818" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_GoodwillLineItems_638653983208421818" xlink:to="us-gaap_GoodwillRollForward_638653983208421818" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_Goodwill" xlink:label="us-gaap_Goodwill_638653983208421818" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_GoodwillRollForward_638653983208421818" xlink:to="us-gaap_Goodwill_638653983208421818" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_GoodwillAcquiredDuringPeriod" xlink:label="us-gaap_GoodwillAcquiredDuringPeriod_638653983208421818" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_GoodwillRollForward_638653983208421818" xlink:to="us-gaap_GoodwillAcquiredDuringPeriod_638653983208421818" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_Goodwill" xlink:label="us-gaap_Goodwill_6386539832084218181" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_GoodwillRollForward_638653983208421818" xlink:to="us-gaap_Goodwill_6386539832084218181" order="3" use="optional" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel" />
  </presentationLink>
  <presentationLink xlink:role="http://www.comfortsystemsusa.com/role/DisclosureGoodwillAndIdentifiableIntangibleAssetsNetIdentifiableIntangibleAssetsNetDetails" xlink:type="extended" xlink:title="99940602 - Disclosure - Goodwill and Identifiable Intangible Assets, Net - Identifiable Intangible Assets, Net (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract" xlink:label="us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract_635533014793481467" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable" xlink:label="us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable_638653983208431849" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract_635533014793481467" xlink:to="us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable_638653983208431849" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:label="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_638653983208431849" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable_638653983208431849" xlink:to="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_638653983208431849" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:label="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_638653983208431849" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_638653983208431849" xlink:to="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_638653983208431849" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CustomerRelationshipsMember" xlink:label="us-gaap_CustomerRelationshipsMember_638653983208431849" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_638653983208431849" xlink:to="us-gaap_CustomerRelationshipsMember_638653983208431849" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OrderOrProductionBacklogMember" xlink:label="us-gaap_OrderOrProductionBacklogMember_638653983208431849" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_638653983208431849" xlink:to="us-gaap_OrderOrProductionBacklogMember_638653983208431849" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_TradeNamesMember" xlink:label="us-gaap_TradeNamesMember_638653983208431849" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_638653983208431849" xlink:to="us-gaap_TradeNamesMember_638653983208431849" order="3" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FiniteLivedIntangibleAssetsLineItems" xlink:label="us-gaap_FiniteLivedIntangibleAssetsLineItems_638653983208431849" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable_638653983208431849" xlink:to="us-gaap_FiniteLivedIntangibleAssetsLineItems_638653983208431849" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife" xlink:label="us-gaap_AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife_638653983208431849" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FiniteLivedIntangibleAssetsLineItems_638653983208431849" xlink:to="us-gaap_AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife_638653983208431849" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FiniteLivedIntangibleAssetsFutureAmortizationExpenseAbstract" xlink:label="us-gaap_FiniteLivedIntangibleAssetsFutureAmortizationExpenseAbstract_638653983208431849" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FiniteLivedIntangibleAssetsLineItems_638653983208431849" xlink:to="us-gaap_FiniteLivedIntangibleAssetsFutureAmortizationExpenseAbstract_638653983208431849" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseRemainderOfFiscalYear" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseRemainderOfFiscalYear_638653983208441824" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FiniteLivedIntangibleAssetsFutureAmortizationExpenseAbstract_638653983208431849" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseRemainderOfFiscalYear_638653983208441824" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="4" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths_638653983208441824" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FiniteLivedIntangibleAssetsFutureAmortizationExpenseAbstract_638653983208431849" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths_638653983208441824" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo_638653983208441824" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FiniteLivedIntangibleAssetsFutureAmortizationExpenseAbstract_638653983208431849" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo_638653983208441824" order="3" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree_638653983208441824" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FiniteLivedIntangibleAssetsFutureAmortizationExpenseAbstract_638653983208431849" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree_638653983208441824" order="4" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour_638653983208441824" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FiniteLivedIntangibleAssetsFutureAmortizationExpenseAbstract_638653983208431849" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour_638653983208441824" order="5" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="fix-20240930.xsd#fix_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFour" xlink:label="fix_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFour_638653983208441824" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FiniteLivedIntangibleAssetsFutureAmortizationExpenseAbstract_638653983208431849" xlink:to="fix_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFour_638653983208441824" order="6" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FiniteLivedIntangibleAssetsNet" xlink:label="us-gaap_FiniteLivedIntangibleAssetsNet_638653983208441824" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FiniteLivedIntangibleAssetsFutureAmortizationExpenseAbstract_638653983208431849" xlink:to="us-gaap_FiniteLivedIntangibleAssetsNet_638653983208441824" order="7" use="optional" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" />
  </presentationLink>
  <presentationLink xlink:role="http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsDetails" xlink:type="extended" xlink:title="99940701 - Disclosure - Debt Obligations (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DebtDisclosureAbstract" xlink:label="us-gaap_DebtDisclosureAbstract_635532868937224449" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DebtInstrumentTable" xlink:label="us-gaap_DebtInstrumentTable_638653983208451823" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DebtDisclosureAbstract_635532868937224449" xlink:to="us-gaap_DebtInstrumentTable_638653983208451823" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DebtInstrumentAxis" xlink:label="us-gaap_DebtInstrumentAxis_638653983208451823" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DebtInstrumentTable_638653983208451823" xlink:to="us-gaap_DebtInstrumentAxis_638653983208451823" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DebtInstrumentNameDomain" xlink:label="us-gaap_DebtInstrumentNameDomain_638653983208451823" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DebtInstrumentAxis_638653983208451823" xlink:to="us-gaap_DebtInstrumentNameDomain_638653983208451823" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20240930.xsd#fix_SubordinateDebtAndPromissoryNoteMember" xlink:label="fix_SubordinateDebtAndPromissoryNoteMember_638653983208451823" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DebtInstrumentNameDomain_638653983208451823" xlink:to="fix_SubordinateDebtAndPromissoryNoteMember_638653983208451823" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DebtInstrumentLineItems" xlink:label="us-gaap_DebtInstrumentLineItems_638653983208451823" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DebtInstrumentTable_638653983208451823" xlink:to="us-gaap_DebtInstrumentLineItems_638653983208451823" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNoncurrentLiabilitiesLongTermDebt" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNoncurrentLiabilitiesLongTermDebt_638653983208451823" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DebtInstrumentLineItems_638653983208451823" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNoncurrentLiabilitiesLongTermDebt_638653983208451823" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" priority="4" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NotesAndLoansPayable" xlink:label="us-gaap_NotesAndLoansPayable_638653983208451823" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DebtInstrumentLineItems_638653983208451823" xlink:to="us-gaap_NotesAndLoansPayable_638653983208451823" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="4" />
    <loc xlink:type="locator" xlink:href="fix-20240930.xsd#fix_OtherDebtLongTermAndShortTermCombinedAmount" xlink:label="fix_OtherDebtLongTermAndShortTermCombinedAmount_638653983208451823" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DebtInstrumentLineItems_638653983208451823" xlink:to="fix_OtherDebtLongTermAndShortTermCombinedAmount_638653983208451823" order="3" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LongTermDebtAndCapitalLeaseObligationsIncludingCurrentMaturities" xlink:label="us-gaap_LongTermDebtAndCapitalLeaseObligationsIncludingCurrentMaturities_638653983208451823" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DebtInstrumentLineItems_638653983208451823" xlink:to="us-gaap_LongTermDebtAndCapitalLeaseObligationsIncludingCurrentMaturities_638653983208451823" order="4" use="optional" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LongTermDebtAndCapitalLeaseObligationsCurrent" xlink:label="us-gaap_LongTermDebtAndCapitalLeaseObligationsCurrent_638653983208451823" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DebtInstrumentLineItems_638653983208451823" xlink:to="us-gaap_LongTermDebtAndCapitalLeaseObligationsCurrent_638653983208451823" order="5" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LongTermDebtAndCapitalLeaseObligations" xlink:label="us-gaap_LongTermDebtAndCapitalLeaseObligations_638653983208451823" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DebtInstrumentLineItems_638653983208451823" xlink:to="us-gaap_LongTermDebtAndCapitalLeaseObligations_638653983208451823" order="6" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
  </presentationLink>
  <presentationLink xlink:role="http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsOtherDetails" xlink:type="extended" xlink:title="99940702 - Disclosure - Debt Obligations - Other (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DebtDisclosureAbstract" xlink:label="us-gaap_DebtDisclosureAbstract" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DebtInstrumentTable" xlink:label="us-gaap_DebtInstrumentTable_638653983208461816" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DebtDisclosureAbstract" xlink:to="us-gaap_DebtInstrumentTable_638653983208461816" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CreditFacilityAxis" xlink:label="us-gaap_CreditFacilityAxis_638653983208461816" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DebtInstrumentTable_638653983208461816" xlink:to="us-gaap_CreditFacilityAxis_638653983208461816" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CreditFacilityDomain" xlink:label="us-gaap_CreditFacilityDomain_638653983208461816" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_CreditFacilityAxis_638653983208461816" xlink:to="us-gaap_CreditFacilityDomain_638653983208461816" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RevolvingCreditFacilityMember" xlink:label="us-gaap_RevolvingCreditFacilityMember_638653983208461816" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_CreditFacilityDomain_638653983208461816" xlink:to="us-gaap_RevolvingCreditFacilityMember_638653983208461816" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DebtInstrumentAxis" xlink:label="us-gaap_DebtInstrumentAxis_638653983208461816" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DebtInstrumentTable_638653983208461816" xlink:to="us-gaap_DebtInstrumentAxis_638653983208461816" order="2" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DebtInstrumentNameDomain" xlink:label="us-gaap_DebtInstrumentNameDomain_638653983208461816" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DebtInstrumentAxis_638653983208461816" xlink:to="us-gaap_DebtInstrumentNameDomain_638653983208461816" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20240930.xsd#fix_SeniorRevolvingCreditFacilityMember" xlink:label="fix_SeniorRevolvingCreditFacilityMember_638653983208461816" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DebtInstrumentNameDomain_638653983208461816" xlink:to="fix_SeniorRevolvingCreditFacilityMember_638653983208461816" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="fix-20240930.xsd#fix_SubordinateDebtAndPromissoryNoteMember" xlink:label="fix_SubordinateDebtAndPromissoryNoteMember_638653983208461816" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DebtInstrumentNameDomain_638653983208461816" xlink:to="fix_SubordinateDebtAndPromissoryNoteMember_638653983208461816" order="2" use="optional" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LetterOfCreditMember" xlink:label="us-gaap_LetterOfCreditMember_638653983208471818" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DebtInstrumentNameDomain_638653983208461816" xlink:to="us-gaap_LetterOfCreditMember_638653983208471818" order="3" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_VariableRateAxis" xlink:label="us-gaap_VariableRateAxis_638653983208471818" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DebtInstrumentTable_638653983208461816" xlink:to="us-gaap_VariableRateAxis_638653983208471818" order="3" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_VariableRateDomain" xlink:label="us-gaap_VariableRateDomain_638653983208471818" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_VariableRateAxis_638653983208471818" xlink:to="us-gaap_VariableRateDomain_638653983208471818" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SecuredOvernightFinancingRateSofrMember" xlink:label="us-gaap_SecuredOvernightFinancingRateSofrMember_638653983208471818" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_VariableRateDomain_638653983208471818" xlink:to="us-gaap_SecuredOvernightFinancingRateSofrMember_638653983208471818" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BaseRateMember" xlink:label="us-gaap_BaseRateMember_638653983208471818" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_VariableRateDomain_638653983208471818" xlink:to="us-gaap_BaseRateMember_638653983208471818" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_RangeAxis" xlink:label="srt_RangeAxis_638653983208471818" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DebtInstrumentTable_638653983208461816" xlink:to="srt_RangeAxis_638653983208471818" order="4" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_RangeMember" xlink:label="srt_RangeMember_638653983208471818" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_RangeAxis_638653983208471818" xlink:to="srt_RangeMember_638653983208471818" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_MinimumMember" xlink:label="srt_MinimumMember_638653983208471818" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_RangeMember_638653983208471818" xlink:to="srt_MinimumMember_638653983208471818" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_MaximumMember" xlink:label="srt_MaximumMember_638653983208481924" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_RangeMember_638653983208471818" xlink:to="srt_MaximumMember_638653983208481924" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="fix-20240930.xsd#fix_DebtCovenantRatioAxis" xlink:label="fix_DebtCovenantRatioAxis_638653983208481924" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DebtInstrumentTable_638653983208461816" xlink:to="fix_DebtCovenantRatioAxis_638653983208481924" order="5" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20240930.xsd#fix_DebtCovenantRatioDomain" xlink:label="fix_DebtCovenantRatioDomain_638653983208481924" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="fix_DebtCovenantRatioAxis_638653983208481924" xlink:to="fix_DebtCovenantRatioDomain_638653983208481924" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20240930.xsd#fix_DebtCovenantRatioRangeOneMember" xlink:label="fix_DebtCovenantRatioRangeOneMember_638653983208481924" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="fix_DebtCovenantRatioDomain_638653983208481924" xlink:to="fix_DebtCovenantRatioRangeOneMember_638653983208481924" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20240930.xsd#fix_DebtCovenantRatioRangeTwoMember" xlink:label="fix_DebtCovenantRatioRangeTwoMember_638653983208481924" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="fix_DebtCovenantRatioDomain_638653983208481924" xlink:to="fix_DebtCovenantRatioRangeTwoMember_638653983208481924" order="2" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20240930.xsd#fix_DebtCovenantRatioRangeThreeMember" xlink:label="fix_DebtCovenantRatioRangeThreeMember_638653983208481924" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="fix_DebtCovenantRatioDomain_638653983208481924" xlink:to="fix_DebtCovenantRatioRangeThreeMember_638653983208481924" order="3" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20240930.xsd#fix_DebtCovenantRatioRangeFourMember" xlink:label="fix_DebtCovenantRatioRangeFourMember_638653983208481924" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="fix_DebtCovenantRatioDomain_638653983208481924" xlink:to="fix_DebtCovenantRatioRangeFourMember_638653983208481924" order="4" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20240930.xsd#fix_DebtCovenantRatioRangeFiveMember" xlink:label="fix_DebtCovenantRatioRangeFiveMember_638653983208492003" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="fix_DebtCovenantRatioDomain_638653983208481924" xlink:to="fix_DebtCovenantRatioRangeFiveMember_638653983208492003" order="5" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DebtInstrumentLineItems" xlink:label="us-gaap_DebtInstrumentLineItems_638653983208492003" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DebtInstrumentTable_638653983208461816" xlink:to="us-gaap_DebtInstrumentLineItems_638653983208492003" order="6" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LineOfCreditFacilityMaximumBorrowingCapacity" xlink:label="us-gaap_LineOfCreditFacilityMaximumBorrowingCapacity_638653983208492003" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DebtInstrumentLineItems_638653983208492003" xlink:to="us-gaap_LineOfCreditFacilityMaximumBorrowingCapacity_638653983208492003" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="6" />
    <loc xlink:type="locator" xlink:href="fix-20240930.xsd#fix_LineOfCreditBorrowingCapacityAccordionOption" xlink:label="fix_LineOfCreditBorrowingCapacityAccordionOption_638653983208492003" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DebtInstrumentLineItems_638653983208492003" xlink:to="fix_LineOfCreditBorrowingCapacityAccordionOption_638653983208492003" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" priority="2" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LineOfCredit" xlink:label="us-gaap_LineOfCredit_638653983208492003" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DebtInstrumentLineItems_638653983208492003" xlink:to="us-gaap_LineOfCredit_638653983208492003" order="3" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LettersOfCreditOutstandingAmount" xlink:label="us-gaap_LettersOfCreditOutstandingAmount_638653983208492003" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DebtInstrumentLineItems_638653983208492003" xlink:to="us-gaap_LettersOfCreditOutstandingAmount_638653983208492003" order="4" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LineOfCreditFacilityRemainingBorrowingCapacity" xlink:label="us-gaap_LineOfCreditFacilityRemainingBorrowingCapacity_638653983208501821" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DebtInstrumentLineItems_638653983208492003" xlink:to="us-gaap_LineOfCreditFacilityRemainingBorrowingCapacity_638653983208501821" order="5" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DebtInstrumentInterestRateEffectivePercentageAbstract" xlink:label="us-gaap_DebtInstrumentInterestRateEffectivePercentageAbstract_638653983208501821" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DebtInstrumentLineItems_638653983208492003" xlink:to="us-gaap_DebtInstrumentInterestRateEffectivePercentageAbstract_638653983208501821" order="6" use="optional" priority="2" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DebtInstrumentBasisSpreadOnVariableRate1" xlink:label="us-gaap_DebtInstrumentBasisSpreadOnVariableRate1_638653983208501821" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DebtInstrumentInterestRateEffectivePercentageAbstract_638653983208501821" xlink:to="us-gaap_DebtInstrumentBasisSpreadOnVariableRate1_638653983208501821" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LineOfCreditFacilityUnusedCapacityCommitmentFeePercentage" xlink:label="us-gaap_LineOfCreditFacilityUnusedCapacityCommitmentFeePercentage_638653983208501821" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DebtInstrumentLineItems_638653983208492003" xlink:to="us-gaap_LineOfCreditFacilityUnusedCapacityCommitmentFeePercentage_638653983208501821" order="7" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LongTermDebtOtherDisclosuresAbstract" xlink:label="us-gaap_LongTermDebtOtherDisclosuresAbstract_638653983208501821" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DebtInstrumentLineItems_638653983208492003" xlink:to="us-gaap_LongTermDebtOtherDisclosuresAbstract_638653983208501821" order="8" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="fix-20240930.xsd#fix_CumulativeNumberOfCompaniesAcquiredOutstandingNotesToFormerOwners" xlink:label="fix_CumulativeNumberOfCompaniesAcquiredOutstandingNotesToFormerOwners_638653983208501821" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LongTermDebtOtherDisclosuresAbstract_638653983208501821" xlink:to="fix_CumulativeNumberOfCompaniesAcquiredOutstandingNotesToFormerOwners_638653983208501821" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NotesAndLoansPayable" xlink:label="us-gaap_NotesAndLoansPayable_638653983208501821" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LongTermDebtOtherDisclosuresAbstract_638653983208501821" xlink:to="us-gaap_NotesAndLoansPayable_638653983208501821" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="4" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNoncurrentLiabilitiesLongTermDebt" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNoncurrentLiabilitiesLongTermDebt_638653983208511815" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DebtInstrumentLineItems_638653983208492003" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNoncurrentLiabilitiesLongTermDebt_638653983208511815" order="9" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" priority="3" />
  </presentationLink>
  <presentationLink xlink:role="http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsNotesToFormerOwnersDetails" xlink:type="extended" xlink:title="99940703 - Disclosure - Debt Obligations - Notes to Former Owners (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DebtDisclosureAbstract" xlink:label="us-gaap_DebtDisclosureAbstract_635532871398576671_1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DebtInstrumentTable" xlink:label="us-gaap_DebtInstrumentTable_638653983208511815" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DebtDisclosureAbstract_635532871398576671_1" xlink:to="us-gaap_DebtInstrumentTable_638653983208511815" order="1" use="optional" priority="2" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DebtInstrumentAxis" xlink:label="us-gaap_DebtInstrumentAxis_638653983208511815" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DebtInstrumentTable_638653983208511815" xlink:to="us-gaap_DebtInstrumentAxis_638653983208511815" order="1" use="optional" priority="2" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DebtInstrumentNameDomain" xlink:label="us-gaap_DebtInstrumentNameDomain_638653983208511815" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DebtInstrumentAxis_638653983208511815" xlink:to="us-gaap_DebtInstrumentNameDomain_638653983208511815" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20240930.xsd#fix_SubordinateDebtAndPromissoryNoteMember" xlink:label="fix_SubordinateDebtAndPromissoryNoteMember_638653983208511815" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DebtInstrumentNameDomain_638653983208511815" xlink:to="fix_SubordinateDebtAndPromissoryNoteMember_638653983208511815" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="fix-20240930.xsd#fix_DebtMaturityDateAxis" xlink:label="fix_DebtMaturityDateAxis_638653983208511815" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DebtInstrumentTable_638653983208511815" xlink:to="fix_DebtMaturityDateAxis_638653983208511815" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="fix-20240930.xsd#fix_DebtMaturityDateDomain" xlink:label="fix_DebtMaturityDateDomain_638653983208521818" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="fix_DebtMaturityDateAxis_638653983208511815" xlink:to="fix_DebtMaturityDateDomain_638653983208521818" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="fix-20240930.xsd#fix_MaturityYearTwoMember" xlink:label="fix_MaturityYearTwoMember_638653983208521818" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="fix_DebtMaturityDateDomain_638653983208521818" xlink:to="fix_MaturityYearTwoMember_638653983208521818" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="fix-20240930.xsd#fix_MaturityYearThreeMember" xlink:label="fix_MaturityYearThreeMember_638653983208631819" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="fix_DebtMaturityDateDomain_638653983208521818" xlink:to="fix_MaturityYearThreeMember_638653983208631819" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="fix-20240930.xsd#fix_MaturityYearFourMember" xlink:label="fix_MaturityYearFourMember_638653983208631819" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="fix_DebtMaturityDateDomain_638653983208521818" xlink:to="fix_MaturityYearFourMember_638653983208631819" order="3" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="fix-20240930.xsd#fix_MaturityYearFiveMember" xlink:label="fix_MaturityYearFiveMember_638653983208631819" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="fix_DebtMaturityDateDomain_638653983208521818" xlink:to="fix_MaturityYearFiveMember_638653983208631819" order="4" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_RangeAxis" xlink:label="srt_RangeAxis_638653983208631819" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DebtInstrumentTable_638653983208511815" xlink:to="srt_RangeAxis_638653983208631819" order="3" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_RangeMember" xlink:label="srt_RangeMember_638653983208642458" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_RangeAxis_638653983208631819" xlink:to="srt_RangeMember_638653983208642458" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_MinimumMember" xlink:label="srt_MinimumMember_638653983208642458" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_RangeMember_638653983208642458" xlink:to="srt_MinimumMember_638653983208642458" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_MaximumMember" xlink:label="srt_MaximumMember_638653983208642458" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_RangeMember_638653983208642458" xlink:to="srt_MaximumMember_638653983208642458" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DebtInstrumentLineItems" xlink:label="us-gaap_DebtInstrumentLineItems_638653983208642458" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DebtInstrumentTable_638653983208511815" xlink:to="us-gaap_DebtInstrumentLineItems_638653983208642458" order="4" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LongTermDebtByMaturityAbstract" xlink:label="us-gaap_LongTermDebtByMaturityAbstract_638653983208642458" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DebtInstrumentLineItems_638653983208642458" xlink:to="us-gaap_LongTermDebtByMaturityAbstract_638653983208642458" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NotesAndLoansPayable" xlink:label="us-gaap_NotesAndLoansPayable_638653983208642458" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LongTermDebtByMaturityAbstract_638653983208642458" xlink:to="us-gaap_NotesAndLoansPayable_638653983208642458" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DebtInstrumentInterestRateStatedPercentage" xlink:label="us-gaap_DebtInstrumentInterestRateStatedPercentage_638653983208652403" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DebtInstrumentLineItems_638653983208642458" xlink:to="us-gaap_DebtInstrumentInterestRateStatedPercentage_638653983208652403" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
  </presentationLink>
  <presentationLink xlink:role="http://www.comfortsystemsusa.com/role/DisclosureLeasesDetails" xlink:type="extended" xlink:title="99940801 - Disclosure - Leases (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LeasesAbstract" xlink:label="us-gaap_LeasesAbstract_1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LesseeLeaseDescriptionTable" xlink:label="us-gaap_LesseeLeaseDescriptionTable_638653983208652403" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LeasesAbstract_1" xlink:to="us-gaap_LesseeLeaseDescriptionTable_638653983208652403" order="1" use="optional" priority="2" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_RangeAxis" xlink:label="srt_RangeAxis_638653983208652403" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LesseeLeaseDescriptionTable_638653983208652403" xlink:to="srt_RangeAxis_638653983208652403" order="1" use="optional" priority="2" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_RangeMember" xlink:label="srt_RangeMember_638653983208652403" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_RangeAxis_638653983208652403" xlink:to="srt_RangeMember_638653983208652403" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_MinimumMember" xlink:label="srt_MinimumMember_638653983208652403" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_RangeMember_638653983208652403" xlink:to="srt_MinimumMember_638653983208652403" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_MaximumMember" xlink:label="srt_MaximumMember_638653983208652403" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_RangeMember_638653983208652403" xlink:to="srt_MaximumMember_638653983208652403" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LesseeLeaseDescriptionLineItems" xlink:label="us-gaap_LesseeLeaseDescriptionLineItems_638653983208652403" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LesseeLeaseDescriptionTable_638653983208652403" xlink:to="us-gaap_LesseeLeaseDescriptionLineItems_638653983208652403" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" />
    <loc xlink:type="locator" xlink:href="fix-20240930.xsd#fix_VariableLeaseAndShortTermLeaseCost" xlink:label="fix_VariableLeaseAndShortTermLeaseCost_638653983208652403" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LesseeLeaseDescriptionLineItems_638653983208652403" xlink:to="fix_VariableLeaseAndShortTermLeaseCost_638653983208652403" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="3" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent" xlink:label="us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent_638653983208662181" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LesseeLeaseDescriptionLineItems_638653983208652403" xlink:to="us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent_638653983208662181" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" priority="4" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingLeaseExpense" xlink:label="us-gaap_OperatingLeaseExpense_638653983208662181" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LesseeLeaseDescriptionLineItems_638653983208652403" xlink:to="us-gaap_OperatingLeaseExpense_638653983208662181" order="3" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="8" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LesseeOperatingLeaseTermOfContract" xlink:label="us-gaap_LesseeOperatingLeaseTermOfContract_638653983208662181" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LesseeLeaseDescriptionLineItems_638653983208652403" xlink:to="us-gaap_LesseeOperatingLeaseTermOfContract_638653983208662181" order="4" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" priority="4" />
    <loc xlink:type="locator" xlink:href="fix-20240930.xsd#fix_NumberOfOptionsToRenew" xlink:label="fix_NumberOfOptionsToRenew_638653983208662181" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LesseeLeaseDescriptionLineItems_638653983208652403" xlink:to="fix_NumberOfOptionsToRenew_638653983208662181" order="5" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="3" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1" xlink:label="us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1_638653983208662181" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LesseeLeaseDescriptionLineItems_638653983208652403" xlink:to="us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1_638653983208662181" order="6" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="4" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PaymentsForRent" xlink:label="us-gaap_PaymentsForRent_638653983208662181" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LesseeLeaseDescriptionLineItems_638653983208652403" xlink:to="us-gaap_PaymentsForRent_638653983208662181" order="7" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="4" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LesseeOperatingLeaseExistenceOfOptionToExtend" xlink:label="us-gaap_LesseeOperatingLeaseExistenceOfOptionToExtend_638653983208662181" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LesseeLeaseDescriptionLineItems_638653983208652403" xlink:to="us-gaap_LesseeOperatingLeaseExistenceOfOptionToExtend_638653983208662181" order="8" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="5" />
    <loc xlink:type="locator" xlink:href="fix-20240930.xsd#fix_NumberOfOffSiteConstructionRealEstateLeasesCommenced" xlink:label="fix_NumberOfOffSiteConstructionRealEstateLeasesCommenced_638653983208662181" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LesseeLeaseDescriptionLineItems_638653983208652403" xlink:to="fix_NumberOfOffSiteConstructionRealEstateLeasesCommenced_638653983208662181" order="9" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
  </presentationLink>
  <presentationLink xlink:role="http://www.comfortsystemsusa.com/role/DisclosureLeasesSummaryOfOperatingLeaseAssetsAndLiabilitiesDetails" xlink:type="extended" xlink:title="99940802 - Disclosure - Leases - Summary of Operating Lease Assets and Liabilities (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LeasesAbstract" xlink:label="us-gaap_LeasesAbstract_2" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AssetsAndLiabilitiesLesseeAbstract" xlink:label="us-gaap_AssetsAndLiabilitiesLesseeAbstract_638653983208672201" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LeasesAbstract_2" xlink:to="us-gaap_AssetsAndLiabilitiesLesseeAbstract_638653983208672201" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingLeaseRightOfUseAsset" xlink:label="us-gaap_OperatingLeaseRightOfUseAsset_638653983208672201" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AssetsAndLiabilitiesLesseeAbstract_638653983208672201" xlink:to="us-gaap_OperatingLeaseRightOfUseAsset_638653983208672201" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" priority="5" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingLeaseLiabilityAbstract" xlink:label="us-gaap_OperatingLeaseLiabilityAbstract_638653983208672201" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AssetsAndLiabilitiesLesseeAbstract_638653983208672201" xlink:to="us-gaap_OperatingLeaseLiabilityAbstract_638653983208672201" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="4" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingLeaseLiabilityCurrent" xlink:label="us-gaap_OperatingLeaseLiabilityCurrent_638653983208672201" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_OperatingLeaseLiabilityAbstract_638653983208672201" xlink:to="us-gaap_OperatingLeaseLiabilityCurrent_638653983208672201" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="5" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingLeaseLiabilityCurrentStatementOfFinancialPositionExtensibleList" xlink:label="us-gaap_OperatingLeaseLiabilityCurrentStatementOfFinancialPositionExtensibleList_638653983208672201" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_OperatingLeaseLiabilityAbstract_638653983208672201" xlink:to="us-gaap_OperatingLeaseLiabilityCurrentStatementOfFinancialPositionExtensibleList_638653983208672201" order="2" use="optional" priority="3" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingLeaseLiabilityNoncurrent" xlink:label="us-gaap_OperatingLeaseLiabilityNoncurrent_638653983208672201" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_OperatingLeaseLiabilityAbstract_638653983208672201" xlink:to="us-gaap_OperatingLeaseLiabilityNoncurrent_638653983208672201" order="3" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" priority="7" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingLeaseLiability" xlink:label="us-gaap_OperatingLeaseLiability_638653983208672201" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_OperatingLeaseLiabilityAbstract_638653983208672201" xlink:to="us-gaap_OperatingLeaseLiability_638653983208672201" order="4" use="optional" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" priority="6" />
  </presentationLink>
  <presentationLink xlink:role="http://www.comfortsystemsusa.com/role/DisclosureLeasesMaturitiesOfLeaseLiabilitiesDetails" xlink:type="extended" xlink:title="99940803 - Disclosure - Leases - Maturities of Lease Liabilities (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LeasesAbstract" xlink:label="us-gaap_LeasesAbstract_3" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingLeaseLiabilitiesPaymentsDueAbstract" xlink:label="us-gaap_OperatingLeaseLiabilitiesPaymentsDueAbstract_638653983208672201" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LeasesAbstract_3" xlink:to="us-gaap_OperatingLeaseLiabilitiesPaymentsDueAbstract_638653983208672201" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="5" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsRemainderOfFiscalYear" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsRemainderOfFiscalYear_638653983208672201" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_OperatingLeaseLiabilitiesPaymentsDueAbstract_638653983208672201" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsRemainderOfFiscalYear_638653983208672201" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="4" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths_638653983208672201" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_OperatingLeaseLiabilitiesPaymentsDueAbstract_638653983208672201" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths_638653983208672201" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="6" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo_638653983208682272" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_OperatingLeaseLiabilitiesPaymentsDueAbstract_638653983208672201" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo_638653983208682272" order="3" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="5" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree_638653983208682272" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_OperatingLeaseLiabilitiesPaymentsDueAbstract_638653983208672201" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree_638653983208682272" order="4" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="5" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour_638653983208682272" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_OperatingLeaseLiabilitiesPaymentsDueAbstract_638653983208672201" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour_638653983208682272" order="5" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="5" />
    <loc xlink:type="locator" xlink:href="fix-20240930.xsd#fix_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFour" xlink:label="fix_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFour_638653983208682272" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_OperatingLeaseLiabilitiesPaymentsDueAbstract_638653983208672201" xlink:to="fix_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFour_638653983208682272" order="6" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="3" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue_638653983208682272" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_OperatingLeaseLiabilitiesPaymentsDueAbstract_638653983208672201" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue_638653983208682272" order="7" use="optional" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" priority="5" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount_638653983208682272" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_OperatingLeaseLiabilitiesPaymentsDueAbstract_638653983208672201" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount_638653983208682272" order="8" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" priority="6" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingLeaseLiability" xlink:label="us-gaap_OperatingLeaseLiability_638653983208682272" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_OperatingLeaseLiabilitiesPaymentsDueAbstract_638653983208672201" xlink:to="us-gaap_OperatingLeaseLiability_638653983208682272" order="9" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" priority="8" />
    <loc xlink:type="locator" xlink:href="fix-20240930.xsd#fix_SupplementalInformationRelatedToLeasesAbstract" xlink:label="fix_SupplementalInformationRelatedToLeasesAbstract_638653983208682272" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LeasesAbstract_3" xlink:to="fix_SupplementalInformationRelatedToLeasesAbstract_638653983208682272" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="4" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingLeasePayments" xlink:label="us-gaap_OperatingLeasePayments_638653983208682272" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="fix_SupplementalInformationRelatedToLeasesAbstract_638653983208682272" xlink:to="us-gaap_OperatingLeasePayments_638653983208682272" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="6" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability" xlink:label="us-gaap_RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability_638653983208682272" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="fix_SupplementalInformationRelatedToLeasesAbstract_638653983208682272" xlink:to="us-gaap_RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability_638653983208682272" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="9" />
  </presentationLink>
  <presentationLink xlink:role="http://www.comfortsystemsusa.com/role/DisclosureCommitmentsAndContingenciesDetails" xlink:type="extended" xlink:title="99940901 - Disclosure - Commitments and Contingencies (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CommitmentsAndContingenciesDisclosureAbstract" xlink:label="us-gaap_CommitmentsAndContingenciesDisclosureAbstract" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LossContingenciesTable" xlink:label="us-gaap_LossContingenciesTable_638653983208692458" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_CommitmentsAndContingenciesDisclosureAbstract" xlink:to="us-gaap_LossContingenciesTable_638653983208692458" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeStatementLocationAxis" xlink:label="us-gaap_IncomeStatementLocationAxis_638653983208692458" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LossContingenciesTable_638653983208692458" xlink:to="us-gaap_IncomeStatementLocationAxis_638653983208692458" order="1" use="optional" priority="2" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeStatementLocationDomain" xlink:label="us-gaap_IncomeStatementLocationDomain_638653983208692458" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeStatementLocationAxis_638653983208692458" xlink:to="us-gaap_IncomeStatementLocationDomain_638653983208692458" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20240930.xsd#fix_GrossProfitMember" xlink:label="fix_GrossProfitMember_638653983208692458" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeStatementLocationDomain_638653983208692458" xlink:to="fix_GrossProfitMember_638653983208692458" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SellingGeneralAndAdministrativeExpensesMember" xlink:label="us-gaap_SellingGeneralAndAdministrativeExpensesMember_638653983208692458" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeStatementLocationDomain_638653983208692458" xlink:to="us-gaap_SellingGeneralAndAdministrativeExpensesMember_638653983208692458" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_InterestIncomeMember" xlink:label="us-gaap_InterestIncomeMember_638653983208692458" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeStatementLocationDomain_638653983208692458" xlink:to="us-gaap_InterestIncomeMember_638653983208692458" order="3" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="fix-20240930.xsd#fix_BusinessCombinationContingentConsiderationChangeInContingentConsiderationLiabilityMember" xlink:label="fix_BusinessCombinationContingentConsiderationChangeInContingentConsiderationLiabilityMember_638653983208692458" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeStatementLocationDomain_638653983208692458" xlink:to="fix_BusinessCombinationContingentConsiderationChangeInContingentConsiderationLiabilityMember_638653983208692458" order="4" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LossContingenciesByNatureOfContingencyAxis" xlink:label="us-gaap_LossContingenciesByNatureOfContingencyAxis_638653983208692458" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LossContingenciesTable_638653983208692458" xlink:to="us-gaap_LossContingenciesByNatureOfContingencyAxis_638653983208692458" order="2" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LossContingencyNatureDomain" xlink:label="us-gaap_LossContingencyNatureDomain_638653983208692458" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LossContingenciesByNatureOfContingencyAxis_638653983208692458" xlink:to="us-gaap_LossContingencyNatureDomain_638653983208692458" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20240930.xsd#fix_DisputeWithCustomerMember" xlink:label="fix_DisputeWithCustomerMember_638653983208702272" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LossContingencyNatureDomain_638653983208692458" xlink:to="fix_DisputeWithCustomerMember_638653983208702272" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SuretyBondMember" xlink:label="us-gaap_SuretyBondMember_638653983208702272" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LossContingencyNatureDomain_638653983208692458" xlink:to="us-gaap_SuretyBondMember_638653983208702272" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_RangeAxis" xlink:label="srt_RangeAxis_638653983208702272" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LossContingenciesTable_638653983208692458" xlink:to="srt_RangeAxis_638653983208702272" order="3" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_RangeMember" xlink:label="srt_RangeMember_638653983208702272" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_RangeAxis_638653983208702272" xlink:to="srt_RangeMember_638653983208702272" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_MinimumMember" xlink:label="srt_MinimumMember_638653983208702272" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_RangeMember_638653983208702272" xlink:to="srt_MinimumMember_638653983208702272" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_MaximumMember" xlink:label="srt_MaximumMember_638653983208702272" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_RangeMember_638653983208702272" xlink:to="srt_MaximumMember_638653983208702272" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LossContingenciesLineItems" xlink:label="us-gaap_LossContingenciesLineItems_638653983208702272" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LossContingenciesTable_638653983208692458" xlink:to="us-gaap_LossContingenciesLineItems_638653983208702272" order="4" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_GainLossRelatedToLitigationSettlement" xlink:label="us-gaap_GainLossRelatedToLitigationSettlement_638653983208702272" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LossContingenciesLineItems_638653983208702272" xlink:to="us-gaap_GainLossRelatedToLitigationSettlement_638653983208702272" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="fix-20240930.xsd#fix_LossContingencySuretyAbstract" xlink:label="fix_LossContingencySuretyAbstract_638653983208702272" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LossContingenciesLineItems_638653983208702272" xlink:to="fix_LossContingencySuretyAbstract_638653983208702272" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="fix-20240930.xsd#fix_PercentageOfBusinessWhichHasRequiredBonds" xlink:label="fix_PercentageOfBusinessWhichHasRequiredBonds_638653983208702272" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="fix_LossContingencySuretyAbstract_638653983208702272" xlink:to="fix_PercentageOfBusinessWhichHasRequiredBonds_638653983208702272" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
  </presentationLink>
  <presentationLink xlink:role="http://www.comfortsystemsusa.com/role/DisclosureStockholdersEquityNumberOfSharesDetails" xlink:type="extended" xlink:title="99941001 - Disclosure - Stockholders' Equity - Number of Shares (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StockholdersEquityNoteAbstract" xlink:label="us-gaap_StockholdersEquityNoteAbstract" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_WeightedAverageNumberOfSharesOutstandingDilutedDisclosureItemsAbstract" xlink:label="us-gaap_WeightedAverageNumberOfSharesOutstandingDilutedDisclosureItemsAbstract_638653983208712419" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StockholdersEquityNoteAbstract" xlink:to="us-gaap_WeightedAverageNumberOfSharesOutstandingDilutedDisclosureItemsAbstract_638653983208712419" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CommonStockSharesOutstanding" xlink:label="us-gaap_CommonStockSharesOutstanding_638653983208712419" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_WeightedAverageNumberOfSharesOutstandingDilutedDisclosureItemsAbstract_638653983208712419" xlink:to="us-gaap_CommonStockSharesOutstanding_638653983208712419" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="fix-20240930.xsd#fix_EffectOfUsingWeightedAverageCommonSharesOutstanding" xlink:label="fix_EffectOfUsingWeightedAverageCommonSharesOutstanding_638653983208712419" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_WeightedAverageNumberOfSharesOutstandingDilutedDisclosureItemsAbstract_638653983208712419" xlink:to="fix_EffectOfUsingWeightedAverageCommonSharesOutstanding_638653983208712419" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="4" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_WeightedAverageNumberOfSharesOutstandingBasic" xlink:label="us-gaap_WeightedAverageNumberOfSharesOutstandingBasic_638653983208712419" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_WeightedAverageNumberOfSharesOutstandingDilutedDisclosureItemsAbstract_638653983208712419" xlink:to="us-gaap_WeightedAverageNumberOfSharesOutstandingBasic_638653983208712419" order="3" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" priority="2" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncrementalCommonSharesAttributableToShareBasedPaymentArrangements" xlink:label="us-gaap_IncrementalCommonSharesAttributableToShareBasedPaymentArrangements_638653983208712419" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_WeightedAverageNumberOfSharesOutstandingDilutedDisclosureItemsAbstract_638653983208712419" xlink:to="us-gaap_IncrementalCommonSharesAttributableToShareBasedPaymentArrangements_638653983208712419" order="4" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncrementalCommonSharesAttributableToContingentlyIssuableShares" xlink:label="us-gaap_IncrementalCommonSharesAttributableToContingentlyIssuableShares_638653983208712419" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_WeightedAverageNumberOfSharesOutstandingDilutedDisclosureItemsAbstract_638653983208712419" xlink:to="us-gaap_IncrementalCommonSharesAttributableToContingentlyIssuableShares_638653983208712419" order="5" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="4" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding" xlink:label="us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding_638653983208712419" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_WeightedAverageNumberOfSharesOutstandingDilutedDisclosureItemsAbstract_638653983208712419" xlink:to="us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding_638653983208712419" order="6" use="optional" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" />
  </presentationLink>
  <presentationLink xlink:role="http://www.comfortsystemsusa.com/role/DisclosureStockholdersEquityIncentiveAndOtherDetails" xlink:type="extended" xlink:title="99941002 - Disclosure - Stockholders' Equity - Incentive and Other (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StockholdersEquityNoteAbstract" xlink:label="us-gaap_StockholdersEquityNoteAbstract" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:label="us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_638653983208722289" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StockholdersEquityNoteAbstract" xlink:to="us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_638653983208722289" order="1" use="optional" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_RangeAxis" xlink:label="srt_RangeAxis_638653983208722289" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_638653983208722289" xlink:to="srt_RangeAxis_638653983208722289" order="1" use="optional" priority="2" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_RangeMember" xlink:label="srt_RangeMember_638653983208722289" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_RangeAxis_638653983208722289" xlink:to="srt_RangeMember_638653983208722289" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_MaximumMember" xlink:label="srt_MaximumMember_638653983208722289" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_RangeMember_638653983208722289" xlink:to="srt_MaximumMember_638653983208722289" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PlanNameAxis" xlink:label="us-gaap_PlanNameAxis_638653983208722289" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_638653983208722289" xlink:to="us-gaap_PlanNameAxis_638653983208722289" order="2" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PlanNameDomain" xlink:label="us-gaap_PlanNameDomain_638653983208722289" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_PlanNameAxis_638653983208722289" xlink:to="us-gaap_PlanNameDomain_638653983208722289" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20240930.xsd#fix_StockRepurchaseProgram2007Member" xlink:label="fix_StockRepurchaseProgram2007Member_638653983208722289" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_PlanNameDomain_638653983208722289" xlink:to="fix_StockRepurchaseProgram2007Member_638653983208722289" order="1" use="optional" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_638653983208722289" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_638653983208722289" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_638653983208722289" order="3" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DisclosureOfRepurchaseAgreementsAbstract" xlink:label="us-gaap_DisclosureOfRepurchaseAgreementsAbstract_638653983208722289" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_638653983208722289" xlink:to="us-gaap_DisclosureOfRepurchaseAgreementsAbstract_638653983208722289" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_StockRepurchaseProgramNumberOfSharesAuthorizedToBeRepurchased" xlink:label="srt_StockRepurchaseProgramNumberOfSharesAuthorizedToBeRepurchased_638653983208732180" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DisclosureOfRepurchaseAgreementsAbstract_638653983208722289" xlink:to="srt_StockRepurchaseProgramNumberOfSharesAuthorizedToBeRepurchased_638653983208732180" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_TreasuryStockSharesAcquired" xlink:label="us-gaap_TreasuryStockSharesAcquired_638653983208732180" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DisclosureOfRepurchaseAgreementsAbstract_638653983208722289" xlink:to="us-gaap_TreasuryStockSharesAcquired_638653983208732180" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" priority="9" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PaymentsForRepurchaseOfCommonStock" xlink:label="us-gaap_PaymentsForRepurchaseOfCommonStock_638653983208732180" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DisclosureOfRepurchaseAgreementsAbstract_638653983208722289" xlink:to="us-gaap_PaymentsForRepurchaseOfCommonStock_638653983208732180" order="3" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="4" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_TreasuryStockAcquiredAverageCostPerShare" xlink:label="us-gaap_TreasuryStockAcquiredAverageCostPerShare_638653983208732180" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DisclosureOfRepurchaseAgreementsAbstract_638653983208722289" xlink:to="us-gaap_TreasuryStockAcquiredAverageCostPerShare_638653983208732180" order="4" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" xlink:label="us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount_638653983208732180" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DisclosureOfRepurchaseAgreementsAbstract_638653983208722289" xlink:to="us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount_638653983208732180" order="5" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
  </presentationLink>
  <presentationLink xlink:role="http://www.comfortsystemsusa.com/role/DisclosureSegmentInformationDetails" xlink:type="extended" xlink:title="99941101 - Disclosure - Segment Information (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SegmentReportingAbstract" xlink:label="us-gaap_SegmentReportingAbstract" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfSegmentReportingInformationBySegmentTable" xlink:label="us-gaap_ScheduleOfSegmentReportingInformationBySegmentTable_638653983208732180" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_SegmentReportingAbstract" xlink:to="us-gaap_ScheduleOfSegmentReportingInformationBySegmentTable_638653983208732180" order="1" use="optional" priority="2" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_ConsolidationItemsAxis" xlink:label="srt_ConsolidationItemsAxis_638653983208741856" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ScheduleOfSegmentReportingInformationBySegmentTable_638653983208732180" xlink:to="srt_ConsolidationItemsAxis_638653983208741856" order="1" use="optional" priority="2" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_ConsolidationItemsDomain" xlink:label="srt_ConsolidationItemsDomain_638653983208741856" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_ConsolidationItemsAxis_638653983208741856" xlink:to="srt_ConsolidationItemsDomain_638653983208741856" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingSegmentsMember" xlink:label="us-gaap_OperatingSegmentsMember_638653983208741856" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_ConsolidationItemsDomain_638653983208741856" xlink:to="us-gaap_OperatingSegmentsMember_638653983208741856" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StatementBusinessSegmentsAxis" xlink:label="us-gaap_StatementBusinessSegmentsAxis_638653983208741856" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ScheduleOfSegmentReportingInformationBySegmentTable_638653983208732180" xlink:to="us-gaap_StatementBusinessSegmentsAxis_638653983208741856" order="2" use="optional" priority="2" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SegmentDomain" xlink:label="us-gaap_SegmentDomain_638653983208741856" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementBusinessSegmentsAxis_638653983208741856" xlink:to="us-gaap_SegmentDomain_638653983208741856" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20240930.xsd#fix_MechanicalSegmentMember" xlink:label="fix_MechanicalSegmentMember_638653983208741856" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_SegmentDomain_638653983208741856" xlink:to="fix_MechanicalSegmentMember_638653983208741856" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20240930.xsd#fix_ElectricalSegmentMember" xlink:label="fix_ElectricalSegmentMember_638653983208741856" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_SegmentDomain_638653983208741856" xlink:to="fix_ElectricalSegmentMember_638653983208741856" order="2" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SegmentReportingInformationLineItems" xlink:label="us-gaap_SegmentReportingInformationLineItems_638653983208741856" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ScheduleOfSegmentReportingInformationBySegmentTable_638653983208732180" xlink:to="us-gaap_SegmentReportingInformationLineItems_638653983208741856" order="3" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="4" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NumberOfReportableSegments" xlink:label="us-gaap_NumberOfReportableSegments_638653983208741856" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_SegmentReportingInformationLineItems_638653983208741856" xlink:to="us-gaap_NumberOfReportableSegments_638653983208741856" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="4" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_Revenues" xlink:label="us-gaap_Revenues_638653983208741856" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_SegmentReportingInformationLineItems_638653983208741856" xlink:to="us-gaap_Revenues_638653983208741856" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" priority="6" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_GrossProfit" xlink:label="us-gaap_GrossProfit_638653983208741856" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_SegmentReportingInformationLineItems_638653983208741856" xlink:to="us-gaap_GrossProfit_638653983208741856" order="3" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" priority="6" />
  </presentationLink>
  <presentationLink xlink:role="http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements" xlink:type="extended" xlink:title="995445 - Disclosure - Insider Trading Arrangements" xmlns="http://www.xbrl.org/2003/linkbase" />
</link:linkbase>
</XBRL>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>12
<FILENAME>R1.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.24.3</span><table class="report" border="0" cellspacing="2" id="idm46664931646304">
<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">9 Months Ended</th>
<th class="th" colspan="1"></th>
</tr>
<tr>
<th class="th"><div>Sep. 30, 2024</div></th>
<th class="th"><div>Oct. 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_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_DocumentPeriodEndDate', window );">Document Period End Date</a></td>
<td class="text">Sep. 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_DocumentTransitionReport', window );">Document Transition Report</a></td>
<td class="text">false<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_EntityFileNumber', window );">Securities Act File Number</a></td>
<td class="text">1-13011<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_EntityRegistrantName', window );">Entity Registrant Name</a></td>
<td class="text">COMFORT SYSTEMS USA,&#160;INC.<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_EntityIncorporationStateCountryCode', window );">Entity Incorporation, State or Country Code</a></td>
<td class="text">DE<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<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">76-0526487<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<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_EntityAddressAddressLine1', window );">Entity Address, Address Line One</a></td>
<td class="text">675 Bering Drive<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_EntityAddressAddressLine2', window );">Entity Address, Address Line Two</a></td>
<td class="text">Suite&#160;400<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_EntityAddressCityOrTown', window );">Entity Address, City or Town</a></td>
<td class="text">Houston<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_EntityAddressStateOrProvince', window );">Entity Address, State or Province</a></td>
<td class="text">TX<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_EntityAddressPostalZipCode', window );">Entity Address, Postal Zip Code</a></td>
<td class="text">77057<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_CityAreaCode', window );">City Area Code</a></td>
<td class="text">713<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_LocalPhoneNumber', window );">Local Phone Number</a></td>
<td class="text">830-9600<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<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, $0.01 par value<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_TradingSymbol', window );">Trading Symbol</a></td>
<td class="text">FIX<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_SecurityExchangeName', window );">Security Exchange Name</a></td>
<td class="text">NYSE<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_EntityCurrentReportingStatus', window );">Entity Current Reporting Status</a></td>
<td class="text">Yes<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_EntityInteractiveDataCurrent', window );">Entity Interactive Data Current</a></td>
<td class="text">Yes<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_EntityFilerCategory', window );">Entity Filer Category</a></td>
<td class="text">Large Accelerated Filer<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_EntitySmallBusiness', window );">Entity Small Business</a></td>
<td class="text">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_EntityEmergingGrowthCompany', window );">Entity Emerging Growth Company</a></td>
<td class="text">false<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_EntityShellCompany', window );">Entity Shell Company</a></td>
<td class="text">false<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_EntityCommonStockSharesOutstanding', window );">Entity Common Stock, Shares Outstanding</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">35,592,558<span></span>
</td>
</tr>
<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">0001035983<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_DocumentFiscalYearFocus', window );">Document Fiscal Year Focus</a></td>
<td class="text">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_DocumentFiscalPeriodFocus', window );">Document Fiscal Period Focus</a></td>
<td class="text">Q3<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<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_AmendmentFlag', window );">Amendment Flag</a></td>
<td class="text">false<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>13
<FILENAME>R2.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.24.3</span><table class="report" border="0" cellspacing="2" id="idm46664933152896">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>CONSOLIDATED BALANCE SHEETS - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th"><div>Sep. 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">$ 415,583<span></span>
</td>
<td class="nump">$ 205,150<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BilledContractReceivables', window );">Billed accounts receivable, less allowance for credit losses of $15,280 and $11,926, respectively</a></td>
<td class="nump">1,730,960<span></span>
</td>
<td class="nump">1,318,926<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_UnbilledContractsReceivable', window );">Unbilled accounts receivable, less allowance for credit losses of $953 and $850, respectively</a></td>
<td class="nump">89,332<span></span>
</td>
<td class="nump">72,774<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_NontradeReceivablesCurrent', window );">Other receivables, less allowance for credit losses of $515 and $522, respectively</a></td>
<td class="nump">135,323<span></span>
</td>
<td class="nump">166,319<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_InventoryNet', window );">Inventories</a></td>
<td class="nump">55,680<span></span>
</td>
<td class="nump">65,538<span></span>
</td>
</tr>
<tr class="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</a></td>
<td class="nump">36,087<span></span>
</td>
<td class="nump">54,309<span></span>
</td>
</tr>
<tr class="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, less allowance for credit losses of $200 and $79, respectively</a></td>
<td class="nump">73,934<span></span>
</td>
<td class="nump">28,084<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">2,536,899<span></span>
</td>
<td class="nump">1,911,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_PropertyPlantAndEquipmentNet', window );">PROPERTY AND EQUIPMENT, NET</a></td>
<td class="nump">250,150<span></span>
</td>
<td class="nump">208,568<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OperatingLeaseRightOfUseAsset', window );">LEASE RIGHT-OF-USE ASSET</a></td>
<td class="nump">225,301<span></span>
</td>
<td class="nump">205,712<span></span>
</td>
</tr>
<tr class="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">875,193<span></span>
</td>
<td class="nump">666,834<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IntangibleAssetsNetExcludingGoodwill', window );">IDENTIFIABLE INTANGIBLE ASSETS, NET</a></td>
<td class="nump">456,459<span></span>
</td>
<td class="nump">280,397<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DeferredIncomeTaxAssetsNet', window );">DEFERRED TAX ASSETS</a></td>
<td class="nump">50,234<span></span>
</td>
<td class="nump">17,723<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OtherAssetsNoncurrent', window );">OTHER NONCURRENT ASSETS</a></td>
<td class="nump">18,529<span></span>
</td>
<td class="nump">15,245<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_Assets', window );">Total assets</a></td>
<td class="nump">4,412,765<span></span>
</td>
<td class="nump">3,305,579<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LiabilitiesCurrentAbstract', window );"><strong>CURRENT LIABILITIES:</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LongTermDebtCurrent', window );">Current maturities of long-term debt</a></td>
<td class="nump">6,046<span></span>
</td>
<td class="nump">4,867<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AccountsPayableCurrent', window );">Accounts payable</a></td>
<td class="nump">603,546<span></span>
</td>
<td class="nump">419,962<span></span>
</td>
</tr>
<tr class="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 );">Accrued compensation and benefits</a></td>
<td class="nump">258,174<span></span>
</td>
<td class="nump">169,136<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ContractWithCustomerLiabilityCurrent', window );">Billings in excess of costs and estimated earnings and deferred revenue</a></td>
<td class="nump">1,197,532<span></span>
</td>
<td class="nump">909,538<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SelfInsuranceReserveCurrent', window );">Accrued self-insurance</a></td>
<td class="nump">36,924<span></span>
</td>
<td class="nump">27,774<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OtherLiabilitiesCurrent', window );">Other current liabilities</a></td>
<td class="nump">326,921<span></span>
</td>
<td class="nump">189,928<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LiabilitiesCurrent', window );">Total current liabilities</a></td>
<td class="nump">2,429,143<span></span>
</td>
<td class="nump">1,721,205<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LongTermDebtNoncurrent', window );">LONG-TERM DEBT</a></td>
<td class="nump">62,315<span></span>
</td>
<td class="nump">39,345<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OperatingLeaseLiabilityNoncurrent', window );">LEASE LIABILITIES</a></td>
<td class="nump">208,268<span></span>
</td>
<td class="nump">188,136<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DeferredIncomeTaxLiabilitiesNet', window );">DEFERRED TAX LIABILITIES</a></td>
<td class="nump">1,120<span></span>
</td>
<td class="nump">1,120<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OtherLiabilitiesNoncurrent', window );">OTHER LONG-TERM LIABILITIES</a></td>
<td class="nump">124,197<span></span>
</td>
<td class="nump">77,944<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_Liabilities', window );">Total liabilities</a></td>
<td class="nump">2,825,043<span></span>
</td>
<td class="nump">2,027,750<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CommitmentsAndContingencies', window );">COMMITMENTS AND CONTINGENCIES</a></td>
<td class="text"> <span></span>
</td>
<td class="text"> <span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockholdersEquityIncludingPortionAttributableToNoncontrollingInterestAbstract', window );"><strong>STOCKHOLDERS' EQUITY:</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PreferredStockValue', window );">Preferred stock, $.01 par, 5,000,000 shares authorized, none issued and outstanding</a></td>
<td class="text"> <span></span>
</td>
<td class="text"> <span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CommonStockValue', window );">Common stock, $.01 par, 102,969,912 shares authorized, 41,123,365 and 41,123,365 shares issued, respectively</a></td>
<td class="nump">411<span></span>
</td>
<td class="nump">411<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_TreasuryStockValue', window );">Treasury stock, at cost, 5,530,807 and 5,438,625 shares, respectively</a></td>
<td class="num">(256,775)<span></span>
</td>
<td class="num">(209,807)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AdditionalPaidInCapitalCommonStock', window );">Additional paid-in capital</a></td>
<td class="nump">350,182<span></span>
</td>
<td class="nump">339,562<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RetainedEarningsAccumulatedDeficit', window );">Retained earnings</a></td>
<td class="nump">1,493,904<span></span>
</td>
<td class="nump">1,147,663<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockholdersEquity', window );">Total stockholders' equity</a></td>
<td class="nump">1,587,722<span></span>
</td>
<td class="nump">1,277,829<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LiabilitiesAndStockholdersEquity', window );">Total liabilities and stockholders' equity</a></td>
<td class="nump">$ 4,412,765<span></span>
</td>
<td class="nump">$ 3,305,579<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AccountsPayableCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Carrying value as of the balance sheet date of liabilities incurred (and for which invoices have typically been received) and payable to vendors for goods and services received that are used in an entity's business. Used to reflect the current portion of the liabilities (due within one year or within the normal operating cycle if longer).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(19)(a))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 852<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481372/852-10-55-10<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AccountsPayableCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_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>Amount of asset recognized for present right to economic benefit.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 48<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482785/280-10-55-48<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 49<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482785/280-10-55-49<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 270<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (i)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482964/270-10-50-1<br><br>Reference 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 (ee)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 5: http://fasb.org/us-gaap/role/ref/otherTransitionRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 6: 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 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 810<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (bb)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481203/810-10-50-3<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 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 9: 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 10: 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 11: 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 12: 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 13: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 946<br> -SubTopic 830<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 12<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479168/946-830-55-12<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-03(a)(12))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478777/944-210-S99-1<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.6-04(8))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479170/946-210-S99-1<br><br>Reference 16: 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 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/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 20: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iii)(A))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 21: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iv))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 22: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(5))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 23: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 24: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(A))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 25: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(B))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 26: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iv))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 27: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(5))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 28: http://www.xbrl.org/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 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 (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-30<br><br>Reference 30: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 942<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-03(11))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478546/942-210-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_Assets</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AssetsCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of asset recognized for present right to economic benefit, classified as current.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 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_BilledContractReceivables">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amounts due for billed services rendered or to be rendered, actions taken or to be taken, or a promise to refrain from taking certain actions in accordance with the terms of a legally binding agreement between the Company and, at a minimum, one other party. An example would be amounts billed to customers under contracts or programs but not paid as of the balance sheet date.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 912<br> -SubTopic 310<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478345/912-310-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_BilledContractReceivables</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CashAndCashEquivalentsAtCarryingValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of currency on hand as well as demand deposits with banks or financial institutions. Includes other kinds of accounts that have the general characteristics of demand deposits. Also includes short-term, highly liquid investments that are both readily convertible to known amounts of cash and so near their maturity that they present insignificant risk of changes in value because of changes in interest rates. Excludes cash and cash equivalents within disposal group and discontinued operation.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://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://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(17))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478546/942-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(25))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 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/2147478777/944-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 1<br> -Subparagraph (SX 210.6-04(15))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479170/946-210-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(29))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 2: http://www.xbrl.org/2003/role/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)(22))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478777/944-210-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CommonStockValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ContractWithCustomerAssetNetCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount, after allowance for credit loss, of right to consideration in exchange for good or service transferred to customer when right is conditioned on something other than passage of time, classified as current.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 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_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/2147478777/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_EmployeeRelatedLiabilitiesCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Total of the carrying values as of the balance sheet date of obligations incurred through that date and payable for obligations related to services received from employees, such as accrued salaries and bonuses, payroll taxes and fringe benefits. Used to reflect the current portion of the liabilities (due within one year or within the normal operating cycle if longer).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(20))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EmployeeRelatedLiabilitiesCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_Goodwill">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount, after accumulated impairment loss, of asset representing future economic benefit arising from other asset acquired in business combination or from joint venture formation or both, that is not individually identified and separately recognized.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 49<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482785/280-10-55-49<br><br>Reference 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/exampleRef<br> -Topic 820<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 100<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482078/820-10-55-100<br><br>Reference 4: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 852<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481372/852-10-55-10<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 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 6: 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 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 (a)<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 (h)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482573/350-20-50-1<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 942<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-03(10)(1))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478546/942-210-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_Goodwill</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IntangibleAssetsNetExcludingGoodwill">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Sum of the carrying amounts of all intangible assets, excluding goodwill, as of the balance sheet date, net of accumulated amortization and impairment charges.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 350<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482665/350-30-50-2<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<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><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482686/350-30-45-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IntangibleAssetsNetExcludingGoodwill</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_InventoryNet">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount after valuation and LIFO reserves of inventory expected to be sold, or consumed within one year or operating cycle, if longer.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 852<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481372/852-10-55-10<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483467/210-10-45-1<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(6))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_InventoryNet</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_Liabilities">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of liability recognized for present obligation requiring transfer or otherwise providing economic benefit to others.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(22))<br> -SubTopic 10<br> -Topic 210<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(20))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(24))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(19))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 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(25))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 6: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(26))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 7: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(23))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 8: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(21))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 810<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481203/810-10-50-3<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 810<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 25<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481231/810-10-45-25<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 810<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (bb)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481203/810-10-50-3<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(ii))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 323<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481687/323-10-50-3<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 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 15: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 946<br> -SubTopic 830<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 12<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479168/946-830-55-12<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.6-04(14))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479170/946-210-S99-1<br><br>Reference 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/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 28: 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 29: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 30<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-30<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_Liabilities</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LiabilitiesAndStockholdersEquity">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of liabilities and equity items, including the portion of equity attributable to noncontrolling interests, if any.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/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/2147478777/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/2147478546/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://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(21))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 2: 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 3: 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 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 810<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (bb)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481203/810-10-50-3<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 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 6: 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 7: 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 8: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 852<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481372/852-10-55-10<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 5<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483467/210-10-45-5<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)(i))<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)(ii))<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><br>Reference 21: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 852<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 7<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481404/852-10-50-7<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LiabilitiesCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LiabilitiesCurrentAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LiabilitiesCurrentAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_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_NontradeReceivablesCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The sum of amounts currently receivable other than from customers. For classified balance sheets, represents the current amount receivable, that is amounts expected to be collected within one year or the normal operating cycle, if longer.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(3)(a)(4))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_NontradeReceivablesCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OperatingLeaseLiabilityNoncurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Present value of lessee's discounted obligation for lease payments from operating lease, classified as noncurrent.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479041/842-20-45-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OperatingLeaseLiabilityNoncurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OperatingLeaseRightOfUseAsset">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of lessee's right to use underlying asset under operating lease.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479041/842-20-45-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OperatingLeaseRightOfUseAsset</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OtherAssetsNoncurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of noncurrent assets classified as other.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(17))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OtherAssetsNoncurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OtherLiabilitiesCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of liabilities classified as other, due within one year or the normal operating cycle, if longer.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://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://www.xbrl.org/2003/role/exampleRef<br> -Topic 852<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481372/852-10-55-10<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OtherLiabilitiesCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_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> -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></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OtherLiabilitiesNoncurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PreferredStockValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Aggregate par or stated value of issued nonredeemable preferred stock (or preferred stock redeemable solely at the option of the issuer). This item includes treasury stock repurchased by the entity. Note: elements for number of nonredeemable preferred shares, par value and other disclosure concepts are in another section within stockholders' equity.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(28))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 2: http://www.xbrl.org/2003/role/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)(21))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478777/944-210-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PreferredStockValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PrepaidExpenseAndOtherAssetsCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of asset related to consideration paid in advance for costs that provide economic benefits in future periods, and amount of other assets that are expected to be realized or consumed within one year or the normal operating cycle, if longer.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(9))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PrepaidExpenseAndOtherAssetsCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PropertyPlantAndEquipmentNet">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount after accumulated depreciation, depletion and amortization of physical assets used in the normal conduct of business to produce goods and services and not intended for resale. Examples include, but are not limited to, land, buildings, machinery and equipment, office equipment, and furniture and fixtures.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -SubTopic 10<br> -Topic 360<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482099/360-10-50-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 7A<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478964/842-20-50-7A<br><br>Reference 3: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 852<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481372/852-10-55-10<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-03(a)(8))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478777/944-210-S99-1<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 942<br> -SubTopic 360<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478451/942-360-50-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PropertyPlantAndEquipmentNet</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_RetainedEarningsAccumulatedDeficit">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of accumulated undistributed earnings (deficit).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(30)(a)(3))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 852<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481372/852-10-55-10<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 2<br> -Subparagraph (g)(2)(i)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480016/944-40-65-2<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 2<br> -Subparagraph (h)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480016/944-40-65-2<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 11<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480990/946-20-50-11<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-03(a)(23)(a)(4))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478777/944-210-S99-1<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.6-04(17))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479170/946-210-S99-1<br><br>Reference 8: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 505<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.3-04)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480008/505-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_RetainedEarningsAccumulatedDeficit</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_SelfInsuranceReserveCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 of accrued known and estimated losses incurred as of the balance sheet date for which no insurance coverage exists, and for which a claim has been made or is probable of being asserted, typically arising from workmen's compensation-type of incidents and personal injury to nonemployees from accidents on the entity's property that are expected to be paid 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>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SelfInsuranceReserveCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance 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://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(29))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 2: http://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 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(31))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 4: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 852<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481372/852-10-55-10<br><br>Reference 5: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 946<br> -SubTopic 830<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 12<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479168/946-830-55-12<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.6-04(19))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479170/946-210-S99-1<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.6-05(4))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479170/946-210-S99-2<br><br>Reference 8: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3<br> -Subparagraph (SX 210.6-09(4)(b))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479134/946-220-S99-3<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3<br> -Subparagraph (SX 210.6-09(6))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479134/946-220-S99-3<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3<br> -Subparagraph (SX 210.6-09(7))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479134/946-220-S99-3<br><br>Reference 11: 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 12: 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 13: 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 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_StockholdersEquityIncludingPortionAttributableToNoncontrollingInterestAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_StockholdersEquityIncludingPortionAttributableToNoncontrollingInterestAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_TreasuryStockValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The amount allocated to treasury stock. Treasury stock is common and preferred shares of an entity that were issued, repurchased by the entity, and are held in its treasury.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(29))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 2: http://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 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 505<br> -SubTopic 30<br> -Section 50<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481520/505-30-50-4<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 505<br> -SubTopic 30<br> -Section 45<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481549/505-30-45-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_TreasuryStockValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_UnbilledContractsReceivable">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Unbilled amounts due for services rendered or to be rendered, actions taken or to be taken, or a promise to refrain from taking certain actions in accordance with the terms of a legally binding agreement between the entity and, at a minimum, one other party. An example would be amounts associated with contracts or programs where the recognized revenue for performance thereunder exceeds the amounts billed under the terms thereof as of the date of the balance sheet.</p></div>
<a href="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 912<br> -SubTopic 310<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478345/912-310-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_UnbilledContractsReceivable</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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>14
<FILENAME>R3.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.24.3</span><table class="report" border="0" cellspacing="2" id="idm46664932839680">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>CONSOLIDATED BALANCE SHEETS (Parenthetical) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th"><div>Sep. 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>CONSOLIDATED BALANCE SHEETS</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent', window );">Billed accounts receivable, allowance for credit losses (in dollars)</a></td>
<td class="nump">$ 15,280<span></span>
</td>
<td class="nump">$ 11,926<span></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_fix_UnbilledAccountsReceivableAllowanceForCreditLoss', window );">Unbilled accounts receivable, allowance for credit losses (in dollars)</a></td>
<td class="nump">953<span></span>
</td>
<td class="nump">850<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AllowanceForDoubtfulOtherReceivablesCurrent', window );">Other receivables, allowance for credit losses (in dollars)</a></td>
<td class="nump">515<span></span>
</td>
<td class="nump">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_us-gaap_ContractWithCustomerAssetAccumulatedAllowanceForCreditLossCurrent', window );">Costs and estimated earnings in excess of billings, allowance for credit losses (in dollars)</a></td>
<td class="nump">$ 200<span></span>
</td>
<td class="nump">$ 79<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PreferredStockParOrStatedValuePerShare', window );">Preferred stock, par value (in dollars per share)</a></td>
<td class="nump">$ 0.01<span></span>
</td>
<td class="nump">$ 0.01<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PreferredStockSharesAuthorized', window );">Preferred stock, shares authorized</a></td>
<td class="nump">5,000,000<span></span>
</td>
<td class="nump">5,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_PreferredStockSharesIssued', window );">Preferred stock, shares issued</a></td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PreferredStockSharesOutstanding', window );">Preferred stock, shares outstanding</a></td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CommonStockParOrStatedValuePerShare', window );">Common stock, par value (in dollars per share)</a></td>
<td class="nump">$ 0.01<span></span>
</td>
<td class="nump">$ 0.01<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CommonStockSharesAuthorized', window );">Common stock, shares authorized</a></td>
<td class="nump">102,969,912<span></span>
</td>
<td class="nump">102,969,912<span></span>
</td>
</tr>
<tr class="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">41,123,365<span></span>
</td>
<td class="nump">41,123,365<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_TreasuryStockCommonShares', window );">Treasury stock, shares</a></td>
<td class="nump">5,530,807<span></span>
</td>
<td class="nump">5,438,625<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_fix_UnbilledAccountsReceivableAllowanceForCreditLoss">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 allowance for credit losses on unbilled receivable.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">fix_UnbilledAccountsReceivableAllowanceForCreditLoss</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>fix_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance 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_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_AllowanceForDoubtfulOtherReceivablesCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></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 receivable, classified as other and 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)(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_AllowanceForDoubtfulOtherReceivablesCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance 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://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(29))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.6-04(16)(a))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479170/946-210-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CommonStockSharesAuthorized</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CommonStockSharesIssued">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Total number of common shares of an entity that have been sold or granted to shareholders (includes common shares that were issued, repurchased and remain in the treasury). These shares represent capital invested by the firm's shareholders and owners, and may be all or only a portion of the number of shares authorized. Shares issued include shares outstanding and shares held in the treasury.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(29))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CommonStockSharesIssued</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ContractWithCustomerAssetAccumulatedAllowanceForCreditLossCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of allowance for credit loss for right to consideration in exchange for good or service transferred to customer when right is conditioned on something other than passage of time, 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 326<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479344/326-20-45-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 3<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479837/606-10-45-3<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ContractWithCustomerAssetAccumulatedAllowanceForCreditLossCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance 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_PreferredStockParOrStatedValuePerShare">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Face amount or stated value per share of preferred stock nonredeemable or redeemable solely at the option of the issuer.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(28))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 505<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 13<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481112/505-10-50-13<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PreferredStockParOrStatedValuePerShare</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PreferredStockSharesAuthorized">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The maximum number of nonredeemable preferred shares (or preferred stock redeemable solely at the option of the issuer) permitted to be issued by an entity's charter and bylaws.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(28))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.6-04(16)(a))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479170/946-210-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PreferredStockSharesAuthorized</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PreferredStockSharesIssued">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Number of shares issued for nonredeemable preferred shares and preferred shares redeemable solely at option of issuer. Includes, but is not limited to, preferred shares issued, repurchased, and held as treasury shares. Excludes preferred shares classified as debt.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(28))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 505<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 13<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481112/505-10-50-13<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PreferredStockSharesIssued</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PreferredStockSharesOutstanding">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Aggregate share number for all nonredeemable preferred stock (or preferred stock redeemable solely at the option of the issuer) held by stockholders. Does not include preferred shares that have been repurchased.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(28))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.6-05(4))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479170/946-210-S99-2<br><br>Reference 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/2147479134/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/2147479170/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/2147479134/946-220-S99-3<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PreferredStockSharesOutstanding</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_StatementOfFinancialPositionAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_StatementOfFinancialPositionAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_TreasuryStockCommonShares">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Number of previously issued common shares repurchased by the issuing entity and held in treasury.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 505<br> -SubTopic 30<br> -Section 45<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481549/505-30-45-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_TreasuryStockCommonShares</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>15
<FILENAME>R4.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.24.3</span><table class="report" border="0" cellspacing="2" id="idm46664932150672">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>CONSOLIDATED STATEMENTS OF OPERATIONS - USD ($)<br> shares in Thousands, $ in Thousands</strong></div></th>
<th class="th" colspan="2">3 Months Ended</th>
<th class="th" colspan="2">9 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Sep. 30, 2024</div></th>
<th class="th"><div>Sep. 30, 2023</div></th>
<th class="th"><div>Sep. 30, 2024</div></th>
<th class="th"><div>Sep. 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_Revenues', window );">REVENUE</a></td>
<td class="nump">$ 1,812,366<span></span>
</td>
<td class="nump">$ 1,378,124<span></span>
</td>
<td class="nump">$ 5,159,672<span></span>
</td>
<td class="nump">$ 3,849,194<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CostOfRevenue', window );">COST OF SERVICES</a></td>
<td class="nump">1,430,652<span></span>
</td>
<td class="nump">1,100,625<span></span>
</td>
<td class="nump">4,116,999<span></span>
</td>
<td class="nump">3,138,370<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">381,714<span></span>
</td>
<td class="nump">277,499<span></span>
</td>
<td class="nump">1,042,673<span></span>
</td>
<td class="nump">710,824<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SellingGeneralAndAdministrativeExpense', window );">SELLING, GENERAL AND ADMINISTRATIVE EXPENSES</a></td>
<td class="nump">180,177<span></span>
</td>
<td class="nump">142,935<span></span>
</td>
<td class="nump">522,437<span></span>
</td>
<td class="nump">414,397<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_GainLossOnDispositionOfAssets', window );">GAIN ON SALE OF ASSETS</a></td>
<td class="num">(1,347)<span></span>
</td>
<td class="num">(579)<span></span>
</td>
<td class="num">(2,778)<span></span>
</td>
<td class="num">(1,683)<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 );">Operating income</a></td>
<td class="nump">202,884<span></span>
</td>
<td class="nump">135,143<span></span>
</td>
<td class="nump">523,014<span></span>
</td>
<td class="nump">298,110<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_NonoperatingIncomeExpenseAbstract', window );"><strong>OTHER INCOME (EXPENSE):</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_InvestmentIncomeInterest', window );">Interest income</a></td>
<td class="nump">3,825<span></span>
</td>
<td class="nump">952<span></span>
</td>
<td class="nump">6,692<span></span>
</td>
<td class="nump">2,441<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_InterestExpenseNonoperating', window );">Interest expense</a></td>
<td class="num">(1,730)<span></span>
</td>
<td class="num">(1,886)<span></span>
</td>
<td class="num">(5,072)<span></span>
</td>
<td class="num">(9,880)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1', window );">Changes in the fair value of contingent earn-out obligations</a></td>
<td class="num">(17,254)<span></span>
</td>
<td class="num">(8,727)<span></span>
</td>
<td class="num">(44,434)<span></span>
</td>
<td class="num">(14,207)<span></span>
</td>
</tr>
<tr class="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</a></td>
<td class="nump">87<span></span>
</td>
<td class="num">(44)<span></span>
</td>
<td class="nump">323<span></span>
</td>
<td class="nump">1<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_NonoperatingIncomeExpense', window );">Other income (expense)</a></td>
<td class="num">(15,072)<span></span>
</td>
<td class="num">(9,705)<span></span>
</td>
<td class="num">(42,491)<span></span>
</td>
<td class="num">(21,645)<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">187,812<span></span>
</td>
<td class="nump">125,438<span></span>
</td>
<td class="nump">480,523<span></span>
</td>
<td class="nump">276,465<span></span>
</td>
</tr>
<tr class="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 );">PROVISION FOR INCOME TAXES</a></td>
<td class="nump">41,577<span></span>
</td>
<td class="nump">20,313<span></span>
</td>
<td class="nump">103,960<span></span>
</td>
<td class="nump">44,648<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</a></td>
<td class="nump">$ 146,235<span></span>
</td>
<td class="nump">$ 105,125<span></span>
</td>
<td class="nump">$ 376,563<span></span>
</td>
<td class="nump">$ 231,817<span></span>
</td>
</tr>
<tr class="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>INCOME 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">$ 4.10<span></span>
</td>
<td class="nump">$ 2.93<span></span>
</td>
<td class="nump">$ 10.54<span></span>
</td>
<td class="nump">$ 6.47<span></span>
</td>
</tr>
<tr class="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">$ 4.09<span></span>
</td>
<td class="nump">$ 2.93<span></span>
</td>
<td class="nump">$ 10.52<span></span>
</td>
<td class="nump">$ 6.46<span></span>
</td>
</tr>
<tr class="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>SHARES USED IN COMPUTING INCOME 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_WeightedAverageNumberOfSharesOutstandingBasic', window );">Basic</a></td>
<td class="nump">35,669<span></span>
</td>
<td class="nump">35,820<span></span>
</td>
<td class="nump">35,718<span></span>
</td>
<td class="nump">35,819<span></span>
</td>
</tr>
<tr class="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">35,755<span></span>
</td>
<td class="nump">35,917<span></span>
</td>
<td class="nump">35,804<span></span>
</td>
<td class="nump">35,910<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_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_CostOfRevenue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The aggregate cost of goods produced and sold and services rendered during the reporting period.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 48<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482785/280-10-55-48<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(2))<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 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/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 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)(iv))<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)(5))<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 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 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)(A))<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)(B))<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)(iv))<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)(5))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CostOfRevenue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_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 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-6<br><br>Reference 2: 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 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 805<br> -SubTopic 60<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (g)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476176/805-60-65-1<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 323<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 2<br> -Subparagraph (g)(3)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478666/740-323-65-2<br><br>Reference 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 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 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 (e)(4)<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 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 9: 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 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 (b)<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 7<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-7<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 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482689/260-10-45-2<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 60B<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482689/260-10-45-60B<br><br>Reference 14: 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 15: 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 16: 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 17: 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 18: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 942<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-04(27))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478524/942-220-S99-1<br><br>Reference 19: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-04(23))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477250/944-220-S99-1<br><br>Reference 20: 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 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-6<br><br>Reference 2: 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 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 805<br> -SubTopic 60<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (g)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476176/805-60-65-1<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 323<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 2<br> -Subparagraph (g)(3)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478666/740-323-65-2<br><br>Reference 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 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 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 (e)(4)<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 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 9: 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 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 (b)<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 7<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-7<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 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482689/260-10-45-2<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 60B<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482689/260-10-45-60B<br><br>Reference 14: 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 15: 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 16: 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 17: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 942<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-04(27))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478524/942-220-S99-1<br><br>Reference 18: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-04(23))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477250/944-220-S99-1<br><br>Reference 19: 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_GainLossOnDispositionOfAssets">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></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, excluding 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://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-28<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 360<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 5<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482130/360-10-45-5<br><br>Reference 3: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 360<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/2147482099/360-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_GainLossOnDispositionOfAssets</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_GrossProfit">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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/2009/role/commonPracticeRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 22<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-22<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 48<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482785/280-10-55-48<br><br>Reference 3: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 4: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 30<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-30<br><br>Reference 5: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 270<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (i)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482964/270-10-50-1<br><br>Reference 6: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (ee)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 7: http://fasb.org/us-gaap/role/ref/otherTransitionRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 8: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(2))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483621/220-10-S99-2<br><br>Reference 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(1))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483621/220-10-S99-2<br><br>Reference 10: 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 11: 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 12: 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 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)(i))<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)(ii))<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/2003/role/exampleRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 31<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-31<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_GrossProfit</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of income (loss) from continuing operations, including income (loss) from equity method investments, before deduction of income tax expense (benefit), and income (loss) attributable to noncontrolling interest.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 22<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-22<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 48<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482785/280-10-55-48<br><br>Reference 3: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 4: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 30<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-30<br><br>Reference 5: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 270<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (i)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482964/270-10-50-1<br><br>Reference 6: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (ee)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 7: http://fasb.org/us-gaap/role/ref/otherTransitionRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-04(11))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477250/944-220-S99-1<br><br>Reference 9: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 31<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-31<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 942<br> -SubTopic 235<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-05(b)(2))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477314/942-235-S99-1<br><br>Reference 11: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(10))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483621/220-10-S99-2<br><br>Reference 12: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 942<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-04(15))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478524/942-220-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_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 270<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (i)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482964/270-10-50-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (ee)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 12<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-12<br><br>Reference 4: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 231<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482663/740-10-55-231<br><br>Reference 5: 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 6: 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 7: 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 8: 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 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> -Subparagraph (h)<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 944<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-04(9))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477250/944-220-S99-1<br><br>Reference 11: 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 12: 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_InterestExpenseNonoperating">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of interest expense classified as nonoperating.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 22<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-22<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03)<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_InterestExpenseNonoperating</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_InvestmentIncomeInterest">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></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 accretion (amortization) of purchase discount (premium) of interest income on nonoperating securities.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 22<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-22<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 48<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482785/280-10-55-48<br><br>Reference 3: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(7)(b))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483621/220-10-S99-2<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 270<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (i)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482964/270-10-50-1<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (ee)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_InvestmentIncomeInterest</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_NetIncomeLoss">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The portion of profit or loss for the period, net of income taxes, which is attributable to the parent.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-6<br><br>Reference 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 805<br> -SubTopic 60<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (g)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476176/805-60-65-1<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 323<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 2<br> -Subparagraph (g)(3)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478666/740-323-65-2<br><br>Reference 5: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(20))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483621/220-10-S99-2<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(ii))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 323<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481687/323-10-50-3<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 825<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 28<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482907/825-10-50-28<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 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 10: 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 11: 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 12: 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 13: 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 14: 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 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 11<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-11<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-4<br><br>Reference 17: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 946<br> -SubTopic 830<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479168/946-830-55-10<br><br>Reference 18: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 7<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479105/946-220-45-7<br><br>Reference 19: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-04(18))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477250/944-220-S99-1<br><br>Reference 20: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.6-07(9))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479134/946-220-S99-1<br><br>Reference 21: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3<br> -Subparagraph (SX 210.6-09(1)(d))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479134/946-220-S99-3<br><br>Reference 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)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 23: 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 24: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iii)(A))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 25: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 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 26: 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 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)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 28: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(A))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 29: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(B))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 30: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iv))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 31: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(5))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 32: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 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 33: 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 34: 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 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://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 942<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-04(22))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478524/942-220-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_NetIncomeLoss</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_NonoperatingIncomeExpense">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The aggregate amount of income or expense from ancillary business-related activities (that is to say, excluding major activities considered part of the normal operations of the business).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(7))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483621/220-10-S99-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_NonoperatingIncomeExpense</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_NonoperatingIncomeExpenseAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_NonoperatingIncomeExpenseAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_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/2009/role/commonPracticeRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 22<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-22<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 3: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 30<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-30<br><br>Reference 4: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 270<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (i)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482964/270-10-50-1<br><br>Reference 5: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (ee)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 6: http://fasb.org/us-gaap/role/ref/otherTransitionRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 7: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 31<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-31<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OperatingIncomeLoss</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_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_Revenues">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of revenue recognized from goods sold, services rendered, insurance premiums, or other activities that constitute an earning process. Includes, but is not limited to, investment and interest income before deduction of interest expense when recognized as a component of revenue, and sales and trading gain (loss).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 48<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482785/280-10-55-48<br><br>Reference 2: http://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 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 270<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (i)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482964/270-10-50-1<br><br>Reference 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 (ee)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 5: http://fasb.org/us-gaap/role/ref/otherTransitionRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 6: http://fasb.org/us-gaap/role/ref/otherTransitionRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(ii))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 323<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481687/323-10-50-3<br><br>Reference 9: http://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 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)(i))<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)(ii))<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/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 21: 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 22: 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 23: 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 24: 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 25: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 942<br> -SubTopic 235<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-05(b)(2))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477314/942-235-S99-1<br><br>Reference 26: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(1))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483621/220-10-S99-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_Revenues</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_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>16
<FILENAME>R5.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.24.3</span><table class="report" border="0" cellspacing="2" id="idm46664927756800">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>CONSOLIDATED STATEMENTS OF STOCKHOLDERS' EQUITY - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th"><div>Common Stock</div></th>
<th class="th"><div>Treasury Stock</div></th>
<th class="th"><div>Additional Paid-In Capital</div></th>
<th class="th"><div>Retained Earnings</div></th>
<th class="th"><div>Total</div></th>
</tr>
<tr class="rc">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockholdersEquity', window );">BALANCE at Dec. 31, 2022</a></td>
<td class="nump">$ 411<span></span>
</td>
<td class="num">$ (187,212)<span></span>
</td>
<td class="nump">$ 332,080<span></span>
</td>
<td class="nump">$ 854,644<span></span>
</td>
<td class="nump">$ 999,923<span></span>
</td>
</tr>
<tr class="rc">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CommonStockSharesIssued', window );">BALANCE (in shares) at Dec. 31, 2022</a></td>
<td class="nump">41,123,365<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_TreasuryStockCommonShares', window );">BALANCE (in shares) at Dec. 31, 2022</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(5,362,224)<span></span>
</td>
<td class="text">&#160;<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_IncreaseDecreaseInStockholdersEquityRollForward', window );"><strong>Increase (Decrease) in Stockholders' Equity</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_ProfitLoss', window );">Net income</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">57,216<span></span>
</td>
<td class="nump">57,216<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockIssuedDuringPeriodSharebasedCompensationAbstract', window );"><strong>Issuance of Stock:</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_StockIssuedDuringPeriodValueStockOptionsExercised', window );">Issuance of shares for options exercised</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 36<span></span>
</td>
<td class="num">(18)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">18<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised', window );">Issuance of shares for options exercised (in shares)</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>
</tr>
<tr class="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 );">Issuance of restricted stock &amp; performance stock</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 1,131<span></span>
</td>
<td class="nump">3,384<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">4,515<span></span>
</td>
</tr>
<tr class="ro">
<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 );">Issuance of restricted stock &amp; performance stock (in shares)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">31,960<span></span>
</td>
<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_AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation', window );">Shares received in lieu of tax withholding on vested stock</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="num">$ (1,798)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(1,798)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SharesPaidForTaxWithholdingForShareBasedCompensation', window );">Shares received in lieu of tax withholding on vested stock (in shares)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(12,728)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue', window );">Stock-based compensation</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">3,438<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">3,438<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DividendsCommonStockCash', window );">Dividends</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(6,254)<span></span>
</td>
<td class="num">(6,254)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_TreasuryStockValueAcquiredCostMethod', window );">Share repurchase</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="num">$ (3,568)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(3,568)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_TreasuryStockSharesAcquired', window );">Share repurchase (in shares)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(29,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>
</tr>
<tr class="rc">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockholdersEquity', window );">BALANCE at Mar. 31, 2023</a></td>
<td class="nump">$ 411<span></span>
</td>
<td class="num">$ (191,411)<span></span>
</td>
<td class="nump">338,884<span></span>
</td>
<td class="nump">905,606<span></span>
</td>
<td class="nump">1,053,490<span></span>
</td>
</tr>
<tr class="rc">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CommonStockSharesIssued', window );">BALANCE (in shares) at Mar. 31, 2023</a></td>
<td class="nump">41,123,365<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_TreasuryStockCommonShares', window );">BALANCE (in shares) at Mar. 31, 2023</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(5,371,392)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rc">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockholdersEquity', window );">BALANCE at Dec. 31, 2022</a></td>
<td class="nump">$ 411<span></span>
</td>
<td class="num">$ (187,212)<span></span>
</td>
<td class="nump">332,080<span></span>
</td>
<td class="nump">854,644<span></span>
</td>
<td class="nump">999,923<span></span>
</td>
</tr>
<tr class="rc">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CommonStockSharesIssued', window );">BALANCE (in shares) at Dec. 31, 2022</a></td>
<td class="nump">41,123,365<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_TreasuryStockCommonShares', window );">BALANCE (in shares) at Dec. 31, 2022</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(5,362,224)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward', window );"><strong>Increase (Decrease) in Stockholders' Equity</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_ProfitLoss', window );">Net income</a></td>
<td class="text">&#160;<span></span>
</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,817<span></span>
</td>
</tr>
<tr class="rc">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockholdersEquity', window );">BALANCE at Sep. 30, 2023</a></td>
<td class="nump">$ 411<span></span>
</td>
<td class="num">$ (197,085)<span></span>
</td>
<td class="nump">338,830<span></span>
</td>
<td class="nump">1,065,006<span></span>
</td>
<td class="nump">1,207,162<span></span>
</td>
</tr>
<tr class="rc">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CommonStockSharesIssued', window );">BALANCE (in shares) at Sep. 30, 2023</a></td>
<td class="nump">41,123,365<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_TreasuryStockCommonShares', window );">BALANCE (in shares) at Sep. 30, 2023</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(5,363,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="rc">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockholdersEquity', window );">BALANCE at Mar. 31, 2023</a></td>
<td class="nump">$ 411<span></span>
</td>
<td class="num">$ (191,411)<span></span>
</td>
<td class="nump">338,884<span></span>
</td>
<td class="nump">905,606<span></span>
</td>
<td class="nump">1,053,490<span></span>
</td>
</tr>
<tr class="rc">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CommonStockSharesIssued', window );">BALANCE (in shares) at Mar. 31, 2023</a></td>
<td class="nump">41,123,365<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_TreasuryStockCommonShares', window );">BALANCE (in shares) at Mar. 31, 2023</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(5,371,392)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward', window );"><strong>Increase (Decrease) in Stockholders' Equity</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_ProfitLoss', window );">Net income</a></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">69,476<span></span>
</td>
<td class="nump">69,476<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockIssuedDuringPeriodSharebasedCompensationAbstract', window );"><strong>Issuance of Stock:</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_StockIssuedDuringPeriodValueShareBasedCompensation', window );">Issuance of restricted stock &amp; performance stock</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 2,220<span></span>
</td>
<td class="num">(2,220)<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 );">Issuance of restricted stock &amp; performance stock (in shares)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">61,505<span></span>
</td>
<td class="text">&#160;<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_AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation', window );">Shares received in lieu of tax withholding on vested stock</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="num">$ (2,891)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(2,891)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SharesPaidForTaxWithholdingForShareBasedCompensation', window );">Shares received in lieu of tax withholding on vested stock (in shares)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(19,739)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue', window );">Stock-based compensation</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">1,749<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">1,749<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DividendsCommonStockCash', window );">Dividends</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(7,152)<span></span>
</td>
<td class="num">(7,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_TreasuryStockValueAcquiredCostMethod', window );">Share repurchase</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="num">$ (3,208)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(3,208)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_TreasuryStockSharesAcquired', window );">Share repurchase (in shares)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(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>
</tr>
<tr class="rc">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockholdersEquity', window );">BALANCE at Jun. 30, 2023</a></td>
<td class="nump">$ 411<span></span>
</td>
<td class="num">$ (195,290)<span></span>
</td>
<td class="nump">338,413<span></span>
</td>
<td class="nump">967,930<span></span>
</td>
<td class="nump">1,111,464<span></span>
</td>
</tr>
<tr class="rc">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CommonStockSharesIssued', window );">BALANCE (in shares) at Jun. 30, 2023</a></td>
<td class="nump">41,123,365<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_TreasuryStockCommonShares', window );">BALANCE (in shares) at Jun. 30, 2023</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(5,353,626)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward', window );"><strong>Increase (Decrease) in Stockholders' Equity</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_ProfitLoss', window );">Net income</a></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">105,125<span></span>
</td>
<td class="nump">105,125<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockIssuedDuringPeriodSharebasedCompensationAbstract', window );"><strong>Issuance of Stock:</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_StockIssuedDuringPeriodValueShareBasedCompensation', window );">Issuance of restricted stock &amp; performance stock</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 28<span></span>
</td>
<td class="num">(28)<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 );">Issuance of restricted stock &amp; performance stock (in shares)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">761<span></span>
</td>
<td class="text">&#160;<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_AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation', window );">Shares received in lieu of tax withholding on vested stock</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="num">$ (36)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(36)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SharesPaidForTaxWithholdingForShareBasedCompensation', window );">Shares received in lieu of tax withholding on vested stock (in shares)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(185)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue', window );">Stock-based compensation</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">445<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_DividendsCommonStockCash', window );">Dividends</a></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">(8,049)<span></span>
</td>
<td class="num">(8,049)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_TreasuryStockValueAcquiredCostMethod', window );">Share repurchase</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="num">$ (1,787)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(1,787)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_TreasuryStockSharesAcquired', window );">Share repurchase (in shares)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(10,250)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rc">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockholdersEquity', window );">BALANCE at Sep. 30, 2023</a></td>
<td class="nump">$ 411<span></span>
</td>
<td class="num">$ (197,085)<span></span>
</td>
<td class="nump">338,830<span></span>
</td>
<td class="nump">1,065,006<span></span>
</td>
<td class="nump">1,207,162<span></span>
</td>
</tr>
<tr class="rc">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CommonStockSharesIssued', window );">BALANCE (in shares) at Sep. 30, 2023</a></td>
<td class="nump">41,123,365<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_TreasuryStockCommonShares', window );">BALANCE (in shares) at Sep. 30, 2023</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(5,363,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="rc">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockholdersEquity', window );">BALANCE at Dec. 31, 2023</a></td>
<td class="nump">$ 411<span></span>
</td>
<td class="num">$ (209,807)<span></span>
</td>
<td class="nump">339,562<span></span>
</td>
<td class="nump">1,147,663<span></span>
</td>
<td class="nump">$ 1,277,829<span></span>
</td>
</tr>
<tr class="rc">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CommonStockSharesIssued', window );">BALANCE (in shares) at Dec. 31, 2023</a></td>
<td class="nump">41,123,365<span></span>
</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">41,123,365<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_TreasuryStockCommonShares', window );">BALANCE (in shares) at Dec. 31, 2023</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(5,438,625)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">5,438,625<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward', window );"><strong>Increase (Decrease) in Stockholders' Equity</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_ProfitLoss', window );">Net income</a></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">96,319<span></span>
</td>
<td class="nump">$ 96,319<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockIssuedDuringPeriodSharebasedCompensationAbstract', window );"><strong>Issuance of Stock:</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_StockIssuedDuringPeriodValueStockOptionsExercised', window );">Issuance of shares for options exercised</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 53<span></span>
</td>
<td class="num">(26)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">27<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised', window );">Issuance of shares for options exercised (in shares)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">1,369<span></span>
</td>
<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 );">Issuance of restricted stock &amp; performance stock</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 657<span></span>
</td>
<td class="nump">4,696<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">5,353<span></span>
</td>
</tr>
<tr class="ro">
<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 );">Issuance of restricted stock &amp; performance stock (in shares)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">17,018<span></span>
</td>
<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_AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation', window );">Shares received in lieu of tax withholding on vested stock</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="num">$ (2,126)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(2,126)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SharesPaidForTaxWithholdingForShareBasedCompensation', window );">Shares received in lieu of tax withholding on vested stock (in shares)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(6,763)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue', window );">Stock-based compensation</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">4,350<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">4,350<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DividendsCommonStockCash', window );">Dividends</a></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">(8,921)<span></span>
</td>
<td class="num">(8,921)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_TreasuryStockValueAcquiredCostMethod', window );">Share repurchase</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="num">$ (295)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(295)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_TreasuryStockSharesAcquired', window );">Share repurchase (in shares)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(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>
</tr>
<tr class="rc">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockholdersEquity', window );">BALANCE at Mar. 31, 2024</a></td>
<td class="nump">$ 411<span></span>
</td>
<td class="num">$ (211,518)<span></span>
</td>
<td class="nump">348,582<span></span>
</td>
<td class="nump">1,235,061<span></span>
</td>
<td class="nump">1,372,536<span></span>
</td>
</tr>
<tr class="rc">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CommonStockSharesIssued', window );">BALANCE (in shares) at Mar. 31, 2024</a></td>
<td class="nump">41,123,365<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_TreasuryStockCommonShares', window );">BALANCE (in shares) at Mar. 31, 2024</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(5,428,501)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rc">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockholdersEquity', window );">BALANCE at Dec. 31, 2023</a></td>
<td class="nump">$ 411<span></span>
</td>
<td class="num">$ (209,807)<span></span>
</td>
<td class="nump">339,562<span></span>
</td>
<td class="nump">1,147,663<span></span>
</td>
<td class="nump">$ 1,277,829<span></span>
</td>
</tr>
<tr class="rc">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CommonStockSharesIssued', window );">BALANCE (in shares) at Dec. 31, 2023</a></td>
<td class="nump">41,123,365<span></span>
</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">41,123,365<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_TreasuryStockCommonShares', window );">BALANCE (in shares) at Dec. 31, 2023</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(5,438,625)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">5,438,625<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward', window );"><strong>Increase (Decrease) in Stockholders' Equity</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_ProfitLoss', window );">Net income</a></td>
<td class="text">&#160;<span></span>
</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">$ 376,563<span></span>
</td>
</tr>
<tr class="rc">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockholdersEquity', window );">BALANCE at Sep. 30, 2024</a></td>
<td class="nump">$ 411<span></span>
</td>
<td class="num">$ (256,775)<span></span>
</td>
<td class="nump">350,182<span></span>
</td>
<td class="nump">1,493,904<span></span>
</td>
<td class="nump">$ 1,587,722<span></span>
</td>
</tr>
<tr class="rc">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CommonStockSharesIssued', window );">BALANCE (in shares) at Sep. 30, 2024</a></td>
<td class="nump">41,123,365<span></span>
</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">41,123,365<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_TreasuryStockCommonShares', window );">BALANCE (in shares) at Sep. 30, 2024</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(5,530,807)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">5,530,807<span></span>
</td>
</tr>
<tr class="rc">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockholdersEquity', window );">BALANCE at Mar. 31, 2024</a></td>
<td class="nump">$ 411<span></span>
</td>
<td class="num">$ (211,518)<span></span>
</td>
<td class="nump">348,582<span></span>
</td>
<td class="nump">1,235,061<span></span>
</td>
<td class="nump">$ 1,372,536<span></span>
</td>
</tr>
<tr class="rc">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CommonStockSharesIssued', window );">BALANCE (in shares) at Mar. 31, 2024</a></td>
<td class="nump">41,123,365<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_TreasuryStockCommonShares', window );">BALANCE (in shares) at Mar. 31, 2024</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(5,428,501)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward', window );"><strong>Increase (Decrease) in Stockholders' Equity</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_ProfitLoss', window );">Net income</a></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">134,009<span></span>
</td>
<td class="nump">134,009<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockIssuedDuringPeriodSharebasedCompensationAbstract', window );"><strong>Issuance of Stock:</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_StockIssuedDuringPeriodValueShareBasedCompensation', window );">Issuance of restricted stock &amp; performance stock</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 1,851<span></span>
</td>
<td class="num">(1,851)<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 );">Issuance of restricted stock &amp; performance stock (in shares)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">47,344<span></span>
</td>
<td class="text">&#160;<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_AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation', window );">Shares received in lieu of tax withholding on vested stock</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="num">$ (5,062)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(5,062)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SharesPaidForTaxWithholdingForShareBasedCompensation', window );">Shares received in lieu of tax withholding on vested stock (in shares)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(15,817)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue', window );">Stock-based compensation</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">2,368<span></span>
</td>
<td class="text">&#160;<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_DividendsCommonStockCash', window );">Dividends</a></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">(10,713)<span></span>
</td>
<td class="num">(10,713)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_TreasuryStockValueAcquiredCostMethod', window );">Share repurchase</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="num">$ (10,844)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(10,844)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_TreasuryStockSharesAcquired', window );">Share repurchase (in shares)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(34,997)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rc">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockholdersEquity', window );">BALANCE at Jun. 30, 2024</a></td>
<td class="nump">$ 411<span></span>
</td>
<td class="num">$ (225,573)<span></span>
</td>
<td class="nump">349,099<span></span>
</td>
<td class="nump">1,358,357<span></span>
</td>
<td class="nump">1,482,294<span></span>
</td>
</tr>
<tr class="rc">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CommonStockSharesIssued', window );">BALANCE (in shares) at Jun. 30, 2024</a></td>
<td class="nump">41,123,365<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_TreasuryStockCommonShares', window );">BALANCE (in shares) at Jun. 30, 2024</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(5,431,971)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward', window );"><strong>Increase (Decrease) in Stockholders' Equity</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_ProfitLoss', window );">Net income</a></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">146,235<span></span>
</td>
<td class="nump">146,235<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockIssuedDuringPeriodSharebasedCompensationAbstract', window );"><strong>Issuance of Stock:</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_StockIssuedDuringPeriodValueShareBasedCompensation', window );">Issuance of restricted stock &amp; performance stock</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 66<span></span>
</td>
<td class="num">(66)<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 );">Issuance of restricted stock &amp; performance stock (in shares)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">1,434<span></span>
</td>
<td class="text">&#160;<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_AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation', window );">Shares received in lieu of tax withholding on vested stock</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="num">$ (104)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(104)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SharesPaidForTaxWithholdingForShareBasedCompensation', window );">Shares received in lieu of tax withholding on vested stock (in shares)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(309)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue', window );">Stock-based compensation</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">1,149<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">1,149<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DividendsCommonStockCash', window );">Dividends</a></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">(10,688)<span></span>
</td>
<td class="num">(10,688)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_TreasuryStockValueAcquiredCostMethod', window );">Share repurchase</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="num">$ (31,164)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(31,164)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_TreasuryStockSharesAcquired', window );">Share repurchase (in shares)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(99,961)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rc">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockholdersEquity', window );">BALANCE at Sep. 30, 2024</a></td>
<td class="nump">$ 411<span></span>
</td>
<td class="num">$ (256,775)<span></span>
</td>
<td class="nump">$ 350,182<span></span>
</td>
<td class="nump">$ 1,493,904<span></span>
</td>
<td class="nump">$ 1,587,722<span></span>
</td>
</tr>
<tr class="rc">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CommonStockSharesIssued', window );">BALANCE (in shares) at Sep. 30, 2024</a></td>
<td class="nump">41,123,365<span></span>
</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">41,123,365<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_TreasuryStockCommonShares', window );">BALANCE (in shares) at Sep. 30, 2024</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(5,530,807)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">5,530,807<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_AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of decrease to equity for grantee's tax withholding obligation for award under share-based payment arrangement.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of increase to additional paid-in capital (APIC) for recognition of cost for award under share-based payment arrangement.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 35<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480483/718-10-35-2<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 20<br> -Section 55<br> -Paragraph 13<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481089/718-20-55-13<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 20<br> -Section 55<br> -Paragraph 12<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481089/718-20-55-12<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_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_DividendsCommonStockCash">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of paid and unpaid common stock dividends declared with the form of settlement in cash.</p></div>
<a href="javascript: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_DividendsCommonStockCash</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_IncreaseDecreaseInStockholdersEquityRollForward">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>A roll forward is a reconciliation of a concept from the beginning of a period to the end of a period.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncreaseDecreaseInStockholdersEquityRollForward</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_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 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-6<br><br>Reference 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 805<br> -SubTopic 60<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (g)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476176/805-60-65-1<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 323<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 2<br> -Subparagraph (g)(3)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478666/740-323-65-2<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(ii))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 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 7: 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 8: 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 9: 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 10: 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 11: 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/2147479168/946-830-55-11<br><br>Reference 12: 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/2147478009/946-205-45-3<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 7<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479105/946-220-45-7<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(16))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477250/944-220-S99-1<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.6-07(9))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479134/946-220-S99-1<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3<br> -Subparagraph (SX 210.6-09(1)(d))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479134/946-220-S99-3<br><br>Reference 17: 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 18: 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 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 942<br> -SubTopic 235<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-05(b)(2))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477314/942-235-S99-1<br><br>Reference 30: 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 31: 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 32: 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 33: 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 34: 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 35: 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 36: 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 37: 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_SharesPaidForTaxWithholdingForShareBasedCompensation">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Number of shares used to settle grantee's tax withholding obligation for award under share-based payment arrangement.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SharesPaidForTaxWithholdingForShareBasedCompensation</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_StockIssuedDuringPeriodSharebasedCompensationAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_StockIssuedDuringPeriodSharebasedCompensationAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</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 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(29))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 505<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.3-04)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480008/505-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(28))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(29))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(iv)(02)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 5: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 505<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.3-04)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480008/505-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_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 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(29))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 505<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.3-04)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480008/505-10-S99-1<br><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 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(29))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(30))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(31))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 5: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 505<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.3-04)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480008/505-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_StockholdersEquity">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of equity (deficit) attributable to parent. Excludes temporary equity and equity attributable to noncontrolling interest.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(29))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 2: http://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 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(31))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 4: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 852<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481372/852-10-55-10<br><br>Reference 5: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 946<br> -SubTopic 830<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 12<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479168/946-830-55-12<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.6-04(19))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479170/946-210-S99-1<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.6-05(4))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479170/946-210-S99-2<br><br>Reference 8: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3<br> -Subparagraph (SX 210.6-09(4)(b))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479134/946-220-S99-3<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3<br> -Subparagraph (SX 210.6-09(6))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479134/946-220-S99-3<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3<br> -Subparagraph (SX 210.6-09(7))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479134/946-220-S99-3<br><br>Reference 11: 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 12: 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 13: 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 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_TreasuryStockCommonShares">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Number of previously issued common shares repurchased by the issuing entity and held in treasury.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 505<br> -SubTopic 30<br> -Section 45<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481549/505-30-45-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_TreasuryStockCommonShares</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_TreasuryStockSharesAcquired">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 are being held in treasury.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -SubTopic 10<br> -Topic 505<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481112/505-10-50-2<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(29))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 505<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.3-04)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480008/505-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_TreasuryStockSharesAcquired</td>
</tr>
<tr>
<td style="padding-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_TreasuryStockValueAcquiredCostMethod">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 cost of common and preferred stock that were repurchased during the period. Recorded using the cost method.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -SubTopic 10<br> -Topic 505<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481112/505-10-50-2<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 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 505<br> -SubTopic 30<br> -Section 45<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481549/505-30-45-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_TreasuryStockValueAcquiredCostMethod</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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>17
<FILENAME>R6.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.24.3</span><table class="report" border="0" cellspacing="2" id="idm46664927858096">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>CONSOLIDATED STATEMENTS OF STOCKHOLDERS' EQUITY (Parenthetical) - $ / shares<br></strong></div></th>
<th class="th" colspan="6">3 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Sep. 30, 2024</div></th>
<th class="th"><div>Jun. 30, 2024</div></th>
<th class="th"><div>Mar. 31, 2024</div></th>
<th class="th"><div>Sep. 30, 2023</div></th>
<th class="th"><div>Jun. 30, 2023</div></th>
<th class="th"><div>Mar. 31, 2023</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StatementOfStockholdersEquityAbstract', window );"><strong>CONSOLIDATED STATEMENTS OF STOCKHOLDERS' EQUITY</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_CommonStockDividendsPerShareDeclared', window );">Dividends (per share)</a></td>
<td class="nump">$ 0.30<span></span>
</td>
<td class="nump">$ 0.30<span></span>
</td>
<td class="nump">$ 0.25<span></span>
</td>
<td class="nump">$ 0.225<span></span>
</td>
<td class="nump">$ 0.20<span></span>
</td>
<td class="nump">$ 0.175<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_CommonStockDividendsPerShareDeclared">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 dividends declared during the period for each share of common stock outstanding.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -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_CommonStockDividendsPerShareDeclared</td>
</tr>
<tr>
<td style="padding-right: 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_StatementOfStockholdersEquityAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_StatementOfStockholdersEquityAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>18
<FILENAME>R7.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.24.3</span><table class="report" border="0" cellspacing="2" id="idm46664927026704">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>CONSOLIDATED STATEMENTS OF CASH FLOWS - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="2">9 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Sep. 30, 2024</div></th>
<th class="th"><div>Sep. 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">$ 376,563<span></span>
</td>
<td class="nump">$ 231,817<span></span>
</td>
</tr>
<tr class="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 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_AmortizationOfIntangibleAssets', window );">Amortization of identifiable intangible assets</a></td>
<td class="nump">75,224<span></span>
</td>
<td class="nump">32,273<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_Depreciation', window );">Depreciation expense</a></td>
<td class="nump">35,377<span></span>
</td>
<td class="nump">27,717<span></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_fix_ChangeInRightOfUseAssets', window );">Change in right-of-use assets</a></td>
<td class="nump">22,400<span></span>
</td>
<td class="nump">19,630<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ProvisionForDoubtfulAccounts', window );">Bad debt expense</a></td>
<td class="nump">5,464<span></span>
</td>
<td class="nump">2,849<span></span>
</td>
</tr>
<tr class="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 tax provision (benefit)</a></td>
<td class="num">(32,511)<span></span>
</td>
<td class="nump">116,355<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AmortizationOfFinancingCosts', window );">Amortization of debt financing costs</a></td>
<td class="nump">514<span></span>
</td>
<td class="nump">512<span></span>
</td>
</tr>
<tr class="ro">
<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 assets</a></td>
<td class="num">(2,778)<span></span>
</td>
<td class="num">(1,683)<span></span>
</td>
</tr>
<tr class="re">
<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 );">Changes in the fair value of contingent earn-out obligations</a></td>
<td class="nump">44,434<span></span>
</td>
<td class="nump">14,207<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensation', window );">Stock-based compensation</a></td>
<td class="nump">12,129<span></span>
</td>
<td class="nump">9,128<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncreaseDecreaseInOperatingAssetsAbstract', window );"><strong>(Increase) decrease in-</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncreaseDecreaseInAccountsReceivable', window );">Receivables, net</a></td>
<td class="num">(262,958)<span></span>
</td>
<td class="num">(376,282)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncreaseDecreaseInInventories', window );">Inventories</a></td>
<td class="nump">10,088<span></span>
</td>
<td class="num">(18,272)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets', window );">Prepaid expenses and other current assets</a></td>
<td class="nump">15,174<span></span>
</td>
<td class="nump">2,504<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncreaseDecreaseInContractWithCustomerAsset', window );">Costs and estimated earnings in excess of billings and unbilled accounts receivable</a></td>
<td class="num">(58,473)<span></span>
</td>
<td class="num">(5,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_IncreaseDecreaseInOtherOperatingAssets', window );">Other noncurrent assets</a></td>
<td class="num">(1,882)<span></span>
</td>
<td class="num">(247)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncreaseDecreaseInOperatingLiabilitiesAbstract', window );"><strong>Increase (decrease) in-</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncreaseDecreaseInAccountsPayableAndAccruedLiabilities', window );">Accounts payable and accrued liabilities</a></td>
<td class="nump">323,756<span></span>
</td>
<td class="nump">185,382<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncreaseDecreaseInContractWithCustomerLiability', window );">Billings in excess of costs and estimated earnings and deferred revenue</a></td>
<td class="nump">80,448<span></span>
</td>
<td class="nump">217,148<span></span>
</td>
</tr>
<tr class="ro">
<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 long-term liabilities</a></td>
<td class="num">(4,375)<span></span>
</td>
<td class="nump">8,848<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_NetCashProvidedByUsedInOperatingActivities', window );">Net cash provided by operating activities</a></td>
<td class="nump">638,594<span></span>
</td>
<td class="nump">466,560<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract', window );"><strong>CASH FLOWS FROM INVESTING ACTIVITIES:</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PaymentsToAcquirePropertyPlantAndEquipment', window );">Purchases of property and equipment</a></td>
<td class="num">(70,395)<span></span>
</td>
<td class="num">(69,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_ProceedsFromSaleOfPropertyPlantAndEquipment', window );">Proceeds from sales of property and equipment</a></td>
<td class="nump">3,611<span></span>
</td>
<td class="nump">5,093<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired', window );">Cash paid for acquisitions, net of cash acquired</a></td>
<td class="num">(235,466)<span></span>
</td>
<td class="num">(53,404)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PaymentsToAcquireInvestments', window );">Payments for investments</a></td>
<td class="num">(1,770)<span></span>
</td>
<td class="num">(1,240)<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_NetCashProvidedByUsedInInvestingActivities', window );">Net cash used in investing activities</a></td>
<td class="num">(304,020)<span></span>
</td>
<td class="num">(119,125)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract', window );"><strong>CASH FLOWS FROM FINANCING ACTIVITIES:</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ProceedsFromLongTermLinesOfCredit', window );">Proceeds from revolving credit facility</a></td>
<td class="nump">182,000<span></span>
</td>
<td class="nump">285,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_RepaymentsOfLongTermLinesOfCredit', window );">Payments on revolving credit facility</a></td>
<td class="num">(182,000)<span></span>
</td>
<td class="num">(500,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_ProceedsFromOtherDebt', window );">Proceeds from other debt</a></td>
<td class="nump">640<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RepaymentsOfOtherDebt', window );">Payments on other debt</a></td>
<td class="num">(26,550)<span></span>
</td>
<td class="num">(1,980)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PaymentsOfDividendsCommonStock', window );">Payments of dividends to stockholders</a></td>
<td class="num">(30,322)<span></span>
</td>
<td class="num">(21,455)<span></span>
</td>
</tr>
<tr class="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 );">Share repurchases</a></td>
<td class="num">(42,024)<span></span>
</td>
<td class="num">(8,563)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PaymentsRelatedToTaxWithholdingForShareBasedCompensation', window );">Shares received in lieu of tax withholding</a></td>
<td class="num">(7,292)<span></span>
</td>
<td class="num">(4,725)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ProceedsFromStockOptionsExercised', window );">Proceeds from exercise of options</a></td>
<td class="nump">27<span></span>
</td>
<td class="nump">18<span></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_fix_DeferredAcquisitionPayments', window );">Deferred acquisition payments</a></td>
<td class="num">(50)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PaymentForContingentConsiderationLiabilityFinancingActivities', window );">Payments for contingent consideration arrangements</a></td>
<td class="num">(18,570)<span></span>
</td>
<td class="num">(15,321)<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_NetCashProvidedByUsedInFinancingActivities', window );">Net cash used in financing activities</a></td>
<td class="num">(124,141)<span></span>
</td>
<td class="num">(267,026)<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_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect', window );">NET INCREASE IN CASH AND CASH EQUIVALENTS</a></td>
<td class="nump">210,433<span></span>
</td>
<td class="nump">80,409<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents', window );">CASH AND CASH EQUIVALENTS, beginning of period</a></td>
<td class="nump">205,150<span></span>
</td>
<td class="nump">57,214<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents', window );">CASH AND CASH EQUIVALENTS, end of period</a></td>
<td class="nump">$ 415,583<span></span>
</td>
<td class="nump">$ 137,623<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_fix_ChangeInRightOfUseAssets">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of change in right-of-use 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;">fix_ChangeInRightOfUseAssets</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>fix_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_fix_DeferredAcquisitionPayments">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 acquisition payments.</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;">fix_DeferredAcquisitionPayments</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>fix_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_AmortizationOfFinancingCosts">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></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 expense attributable to debt issuance costs.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -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><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://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-28<br><br>Reference 4: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 835<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 3<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482925/835-30-45-3<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AmortizationOfFinancingCosts</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_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://www.xbrl.org/2003/role/exampleRef<br> -Topic 350<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 40<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482640/350-30-55-40<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482665/350-30-50-2<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482686/350-30-45-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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_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_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of cash and cash equivalents, and cash and cash equivalents restricted to withdrawal or usage. Excludes amount for disposal group and discontinued operations. Cash includes, but is not limited to, currency on hand, demand deposits with banks or financial institutions, and other accounts with general characteristics of demand deposits. Cash equivalents include, but are not limited to, short-term, highly liquid investments that are both readily convertible to known amounts of cash and so near their maturity that they present insignificant risk of changes in value because of changes in interest rates.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 8<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482913/230-10-50-8<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 24<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-24<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-4<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of increase (decrease) in cash, cash equivalents, and cash and cash equivalents restricted to withdrawal or usage; including effect from exchange rate change. Cash includes, but is not limited to, currency on hand, demand deposits with banks or financial institutions, and other accounts with general characteristics of demand deposits. Cash equivalents include, but are not limited to, short-term, highly liquid investments that are both readily convertible to known amounts of cash and so near their maturity that they present insignificant risk of changes in value because of changes in interest rates.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 24<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-24<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -SubTopic 230<br> -Topic 830<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477401/830-230-45-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DeferredIncomeTaxExpenseBenefit">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of deferred income tax expense (benefit) pertaining to income (loss) from continuing operations.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -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> -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_Depreciation">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The amount of expense recognized in the current period that reflects the allocation of the cost of tangible assets over the assets' useful lives. Includes production and non-production related depreciation.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (b)<br> -SubTopic 10<br> -Topic 230<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-28<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 360<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482099/360-10-50-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_Depreciation</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_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_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_IncreaseDecreaseInContractWithCustomerAsset">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></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 right to consideration in exchange for good or service transferred to customer when right is conditioned on something other than passage of time.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/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_IncreaseDecreaseInContractWithCustomerAsset</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_IncreaseDecreaseInContractWithCustomerLiability">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of increase (decrease) in obligation to transfer good or service to customer for which consideration has been received or is receivable.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 912<br> -SubTopic 310<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 11<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478345/912-310-45-11<br><br>Reference 2: 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_IncreaseDecreaseInContractWithCustomerLiability</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_IncreaseDecreaseInOperatingAssetsAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncreaseDecreaseInOperatingAssetsAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncreaseDecreaseInOperatingLiabilitiesAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncreaseDecreaseInOperatingLiabilitiesAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncreaseDecreaseInOtherOperatingAssets">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of increase (decrease) in operating assets classified as other.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -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_IncreaseDecreaseInOtherOperatingAssets</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_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_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_PaymentForContingentConsiderationLiabilityFinancingActivities">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></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, not made soon after acquisition date of business combination, to settle contingent consideration liability up to amount recognized at acquisition date, including, but not limited to, measurement period adjustment and less amount paid soon after 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> -Section 45<br> -Paragraph 15<br> -Subparagraph (f)<br> -SubTopic 10<br> -Topic 230<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_PaymentForContingentConsiderationLiabilityFinancingActivities</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 15<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-15<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PaymentsForRepurchaseOfCommonStock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PaymentsOfDividendsCommonStock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></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 in the form of ordinary dividends to common shareholders of the 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 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 15<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-15<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PaymentsOfDividendsCommonStock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PaymentsRelatedToTaxWithholdingForShareBasedCompensation">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of cash outflow to satisfy grantee's tax withholding obligation for award under share-based payment arrangement.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 15<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-15<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PaymentsRelatedToTaxWithholdingForShareBasedCompensation</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 a business, net of the cash acquired from the purchase.</p></div>
<a href="javascript: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 13<br> -Subparagraph (b)<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_PaymentsToAcquireBusinessesNetOfCashAcquired</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_PaymentsToAcquireInvestments">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 purchase of all investments (debt, security, other) during the period.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 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_PaymentsToAcquireInvestments</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_ProceedsFromLongTermLinesOfCredit">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The cash inflow from a 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 maturities due beyond one year or the operating cycle, if longer.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 14<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-14<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ProceedsFromLongTermLinesOfCredit</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ProceedsFromOtherDebt">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of cash inflow from debt classified as other.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 14<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-14<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ProceedsFromOtherDebt</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ProceedsFromSaleOfPropertyPlantAndEquipment">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The cash inflow from the sale of long-lived, physical assets that are used in the normal conduct of business to produce goods and services and not intended for resale.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 12<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-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_ProceedsFromSaleOfPropertyPlantAndEquipment</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ProceedsFromStockOptionsExercised">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of cash inflow from exercise of option under share-based payment arrangement.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 14<br> -Subparagraph (a)<br> -SubTopic 10<br> -Topic 230<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-14<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2A<br> -Subparagraph (a)<br> -SubTopic 10<br> -Topic 718<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2A<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ProceedsFromStockOptionsExercised</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_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 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-6<br><br>Reference 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 805<br> -SubTopic 60<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (g)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476176/805-60-65-1<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 323<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 2<br> -Subparagraph (g)(3)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478666/740-323-65-2<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(ii))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 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 7: 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 8: 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 9: 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 10: 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 11: 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/2147479168/946-830-55-11<br><br>Reference 12: 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/2147478009/946-205-45-3<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 7<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479105/946-220-45-7<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(16))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477250/944-220-S99-1<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.6-07(9))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479134/946-220-S99-1<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3<br> -Subparagraph (SX 210.6-09(1)(d))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479134/946-220-S99-3<br><br>Reference 17: 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 18: 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 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 942<br> -SubTopic 235<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-05(b)(2))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477314/942-235-S99-1<br><br>Reference 30: 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 31: 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 32: 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 33: 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 34: 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 35: 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 36: 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 37: 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_RepaymentsOfLongTermLinesOfCredit">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 the settlement of obligation drawn 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 maturities due beyond one year or the operating cycle, if longer.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 15<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-15<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_RepaymentsOfLongTermLinesOfCredit</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_RepaymentsOfOtherDebt">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of cash outflow for the payment of debt classified as other.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 15<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-15<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_RepaymentsOfOtherDebt</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensation">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of noncash expense for share-based payment arrangement.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (a)<br> -SubTopic 10<br> -Topic 230<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-28<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensation</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>19
<FILENAME>R8.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.24.3</span><table class="report" border="0" cellspacing="2" id="idm46664933918608">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Business and Organization<br></strong></div></th>
<th class="th" colspan="1">9 Months Ended</th>
</tr>
<tr><th class="th"><div>Sep. 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>Business and Organization</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_NatureOfOperations', window );">Business and Organization</a></td>
<td class="text"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">1. Business and Organization</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">Comfort Systems USA, Inc., a Delaware corporation, provides comprehensive mechanical and electrical contracting services, which principally includes heating, ventilation and air conditioning (&#8220;HVAC&#8221;), plumbing, electrical, piping and controls, as well as off-site construction, monitoring and fire protection. We build, install, maintain, repair and replace mechanical, electrical and plumbing (&#8220;MEP&#8221;) systems throughout the United States. The terms &#8220;Comfort Systems,&#8221; &#8220;we,&#8221; &#8220;us,&#8221; or the &#8220;Company,&#8221; refer to Comfort Systems USA,&#160;Inc. or Comfort Systems USA,&#160;Inc. and its consolidated subsidiaries, as appropriate in the context.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</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_NatureOfOperations">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The entire disclosure for the nature of an entity's business, major products or services, principal markets including location, and the relative importance of its operations in each business and the basis for the determination, including but not limited to, assets, revenues, or earnings. For an entity that has not commenced principal operations, disclosures about the risks and uncertainties related to the activities in which the entity is currently engaged and an understanding of what those activities are being directed toward.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Name Accounting Standards Codification<br> -Topic 275<br> -Publisher FASB<br> -URI https://asc.fasb.org/275/tableOfContent<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -SubTopic 10<br> -Topic 275<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482861/275-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_NatureOfOperations</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OrganizationConsolidationAndPresentationOfFinancialStatementsAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OrganizationConsolidationAndPresentationOfFinancialStatementsAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>20
<FILENAME>R9.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.24.3</span><table class="report" border="0" cellspacing="2" id="idm46664933759488">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Summary of Significant Accounting Policies and Estimates<br></strong></div></th>
<th class="th" colspan="1">9 Months Ended</th>
</tr>
<tr><th class="th"><div>Sep. 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_AccountingPoliciesAbstract', window );"><strong>Summary of Significant Accounting Policies and Estimates</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BasisOfPresentationAndSignificantAccountingPoliciesTextBlock', window );">Summary of Significant Accounting Policies and Estimates</a></td>
<td class="text"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">2. Summary of Significant Accounting Policies and Estimates</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 0pt 36pt;"><span style="font-style:italic;font-weight:bold;margin-left:0pt;visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 0pt 36pt;"><span style="font-style:italic;font-weight:bold;">Basis of Presentation</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">These interim statements should be read in conjunction with the historical Consolidated Financial Statements and related notes of Comfort Systems included in the Annual Report on Form&#160;10-K as filed with the Securities and Exchange Commission (&#8220;SEC&#8221;) for the year ended December 31, 2023 (the &#8220;Form&#160;10-K&#8221;).</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">The accompanying unaudited consolidated financial statements were prepared using generally accepted accounting principles for interim financial information and the instructions to Form&#160;10-Q and applicable rules of Regulation&#160;S-X of the SEC. Accordingly, these financial statements do not include all the footnotes required by generally accepted accounting principles for complete financial statements and should be read in conjunction with the Form&#160;10-K. We believe all adjustments necessary for a fair presentation of these interim statements have been included and are of a normal and recurring nature. The results of operations for interim periods are not necessarily indicative of the results for the full fiscal year. </p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 0pt 36pt;"><span style="font-style:italic;font-weight:bold;">Use of Estimates</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">The preparation of financial statements in conformity with generally accepted accounting principles requires the use of estimates and assumptions by management in determining the reported amounts of assets and liabilities, revenue and expenses and disclosures regarding contingent assets and liabilities. Actual results could differ from those estimates. The most significant estimates used in our financial statements affect revenue and cost recognition for construction contracts, self-insurance accruals, accounting for income taxes, fair value accounting for acquisitions and the quantification of fair value for reporting units in connection with our goodwill impairment testing. </p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 0pt 36pt;"><span style="font-style:italic;font-weight:bold;">Recent Accounting Pronouncements</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-style:italic;visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><i style="font-style:italic;">Recent Accounting Pronouncements Not Yet Adopted</i></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">In November 2023, the Financial Accounting Standards Board (&#8220;FASB&#8221;) issued ASU 2023-07, &#8220;Segment Reporting (Topic 280): Improvements to Reportable Segment Disclosures.&#8221; This standard requires entities to disclose, on an annual and interim basis, significant segment expenses that are regularly provided to the chief decision maker and included within each reported measure of segment profit and loss. ASU 2023-07 is effective for fiscal years beginning after December 15, 2023, and interim periods within fiscal years beginning after December 15, 2024. Early adoption is permitted. ASU 2023-07 will not have an impact on our consolidated financial position, results of operations or cash flows, but will affect our financial statement disclosures as discussed above.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">In December 2023, the FASB issued ASU 2023-09, &#8220;Income Taxes (Topic 740): Improvements to Income Tax Disclosures.&#8221; <span style="background:#ffffff;">This standard requires entities to disclose more detailed information in the reconciliation of their statutory </span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="background:#ffffff;">tax rate to their effective tax rate. The standard also requires entities to make additional disclosures on income taxes paid as well as on certain income statement-related items. ASU 2023-09 is effective for fiscal years beginning after December 15, 2024</span><span style="background:#ffffff;">.</span><span style="background:#ffffff;"> Early adoption is permitted. This standard will not have an impact on our consolidated financial position, results of operations or cash flows, but will affect our financial statement disclosures as discussed above.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="font-style:italic;font-weight:bold;visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 0pt 36pt;"><span style="font-style:italic;font-weight:bold;">Revenue Recognition</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">We recognize revenue over time for all of our services as we perform them because (i) control continuously transfers to that customer as work progresses, and (ii) we have the right to bill the customer as costs are incurred. The customer typically controls the work in process, as evidenced either by contractual termination clauses or by our rights to payment for work performed to date, plus a reasonable profit, for delivery of products or services that do not have an alternative use to the Company.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="white-space:pre-wrap;"> For the reasons listed above, revenue is recognized based on the extent of progress towards completion of the performance obligation. The selection of the method to measure progress towards completion requires judgment and is based on the nature of the products or services to be provided. We generally use a cost-to-cost input method to measure our progress towards satisfaction of the performance obligation for our contracts, as it best depicts the transfer of assets to the customer that occurs as we incur costs on our contracts. Under the cost-to-cost input method, the extent of progress towards completion is measured based on the ratio of costs incurred to date to the total estimated costs at completion of the performance obligation. Revenue, including estimated fees or profits, is recorded proportionally as costs are incurred. Costs to fulfill include labor, materials, subcontractors&#8217; costs, other direct costs and an allocation of indirect costs.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">For a small portion of our business in which our services are delivered in the form of service maintenance agreements for existing systems to be repaired and maintained, as opposed to constructed, our performance obligation is to maintain the customer&#8217;s mechanical system for a specific period of time. Similar to construction jobs, we recognize revenue over time; however, for service maintenance agreements in which the full cost to provide services may not be known, we generally use an input method to recognize revenue, which is based on the amount of time we have provided our services out of the total time we have been contracted to perform those services. Our revenue recognition policy is further discussed in Note&#160;3 &#8220;Revenue from Contracts with Customers.&#8221;</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="font-style:italic;font-weight:bold;">Accounts Receivable and Allowance for Credit Losses</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">We are required to estimate and record the expected credit losses over the contractual life of our financial assets measured at amortized cost, including billed and unbilled accounts receivable, other receivables and contract assets. Accounts receivable include amounts from work completed in which we have billed or have an unconditional right to bill our customers. Our trade receivables are contractually due in less than a year.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">We estimate our credit losses using a loss-rate method for each of our identified portfolio segments. Our portfolio segments are construction, service and other. While our construction and service financial assets are often with the same subset of customers and industries, our construction financial assets will generally have a lower loss-rate than service financial assets due to lien rights, which we are more likely to have on construction jobs. These lien rights result in lower credit loss expenses on average compared to receivables that do not have lien rights. Financial assets classified as &#8220;other&#8221; include receivables that are not related to our core revenue producing activities, such as receivables related to our acquisition activity from former owners, our vendor rebate program or receivables for estimated losses in excess of our insurance deductible, which are accrued with a corresponding accrued insurance liability.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">Loss rates for our portfolios are based on numerous factors, including our history of credit loss expense by portfolio, the financial strength of our customers and counterparties in each portfolio, the aging of our receivables, our expectation of likelihood of payment, macroeconomic trends in the U.S. and the current and forecasted nonresidential construction market trends in the U.S.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">In addition to the loss-rate calculations discussed above, we also record allowance for credit losses for specific receivables that are deemed to have a higher risk profile than the rest of the respective pool of receivables (<i style="font-style:italic;">e.g.</i>, when we hold concerns about a specific customer going bankrupt and no longer being able to pay the receivables due to us).</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="font-style:italic;font-weight:bold;">Unbilled Accounts Receivable</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">Unbilled accounts receivable are amounts due to us that we have earned under a contract where our right to payment is unconditional. A right to consideration is unconditional if only the passage of time is required before payment of the consideration is due. </p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="font-style:italic;font-weight:bold;">Income Taxes</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">We conduct business throughout the United States in virtually all fifty states. Our effective tax rate changes based upon our relative profitability, or lack thereof, in the federal and various state jurisdictions with differing tax rates and rules. In addition, discrete items such as tax law changes, judgments and legal structures, can impact our effective tax rate. These items can also include the tax treatment for impairment of goodwill and other intangible assets, changes in fair value of acquisition-related assets and liabilities, uncertain tax positions, and accounting for losses associated with underperforming operations. </p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">The Inflation Reduction Act was enacted on August 16, 2022. This law, among other provisions, provides a corporate alternative minimum tax on adjusted financial statement income over $1 billion, which is effective for tax years beginning after December 31, 2022, and a 1% excise tax on net corporate stock repurchases after December 31, 2022. The impact of the excise tax is recorded in &#8220;Treasury Stock&#8221; within our Consolidated Balance Sheet. These provisions were not material to our current year overall financial results, financial position and cash flows. </p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">In early September 2023, the IRS issued interim guidance addressing, together with other topics, the treatment of research and experimental (&#8220;R&amp;E&#8221;) expenditures for taxpayers using the percentage of completion method to account for taxable income from long-term contracts. We relied on such guidance for the 2022 tax year, and the resultant reduction in taxable revenue offsets the deferral of tax deductions for R&amp;E expenditures pursuant to the Tax Cuts and Jobs Act (2017) for the 2022 tax year. We filed our 2022 federal tax return in October 2023 requesting a refund of our $107.1 million overpayment, which had not been received as of September 30, 2024.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="font-style:italic;font-weight:bold;visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="font-style:italic;font-weight:bold;">Financial Instruments</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">Our financial instruments consist of cash and cash equivalents, accounts receivable, other receivables, accounts payable and life insurance policies, for which we deem the carrying values approximate their fair values due to the short-term nature of these instruments, as well as notes to former owners and a revolving credit facility. </p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="font-style:italic;font-weight:bold;">Investments</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">We have a $6.1 million investment in a construction-focused technology fund with a fair value that is not readily determinable and is recorded at cost. This investment is included in &#8220;Other Noncurrent Assets&#8221; in our Consolidated Balance Sheet and is reviewed quarterly for impairment.&#160;We did not recognize any impairments in the current year related to this investment.</p><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AccountingPoliciesAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AccountingPoliciesAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BasisOfPresentationAndSignificantAccountingPoliciesTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The entire disclosure for the basis of presentation and significant accounting policies concepts. Basis of presentation describes the underlying basis used to prepare the financial statements (for example, US Generally Accepted Accounting Principles, Other Comprehensive Basis of Accounting, IFRS). Accounting policies describe all significant accounting policies of the reporting entity.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 235<br> -Name Accounting Standards Codification<br> -Publisher FASB<br> -URI https://asc.fasb.org/235/tableOfContent<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BasisOfPresentationAndSignificantAccountingPoliciesTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>21
<FILENAME>R10.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.24.3</span><table class="report" border="0" cellspacing="2" id="idm46664933254272">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Revenue from Contracts with Customers<br></strong></div></th>
<th class="th" colspan="1">9 Months Ended</th>
</tr>
<tr><th class="th"><div>Sep. 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_RevenueFromContractWithCustomerAbstract', window );"><strong>Revenue from Contracts with Customers</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_RevenueFromContractWithCustomerTextBlock', window );">Revenue from Contracts with Customers</a></td>
<td class="text"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">3. Revenue from Contracts with Customers</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">Revenue is recognized when control of the promised goods or services is transferred to our customers, in an amount that reflects the consideration to which we expect to be entitled in exchange for those goods or services. Sales-based taxes are excluded from revenue.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">We provide mechanical and electrical contracting services. Our mechanical segment principally includes HVAC, plumbing, piping and controls, as well as off-site construction, monitoring and fire protection. Our electrical segment includes installation and servicing of electrical systems. We build, install, maintain, repair and replace products and systems throughout the United States. All of our revenue is recognized over time as we deliver goods and services to our customers. Revenue can be earned based on an agreed-upon fixed price or based on actual costs incurred, marked up at an agreed-upon percentage.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">We account for a contract when: (i) it has approval and commitment from both parties, (ii) the rights of the parties are identified, (iii) payment terms are identified, (iv) the contract has commercial substance, and (v) collectability of consideration is probable. We consider the start of a project to be when the above criteria have been met and we either have written authorization from the customer to proceed or an executed contract.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">We generally do not incur significant incremental costs related to obtaining or fulfilling a contract prior to the start of a project. On rare occasions, when significant pre-contract costs are incurred, they are capitalized and amortized over the life of the contract using a cost-to-cost input method to measure progress towards contract completion. We do not currently have any capitalized obtainment or fulfillment costs in our Consolidated Balance Sheet and have not incurred any impairment loss on such costs in the current year.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">Due to the nature of the work required to be performed on many of our performance obligations, the estimation of total revenue and cost at completion (the process described below in more detail) is complex, subject to many variables and requires significant judgment. The consideration to which we are entitled on our long-term contracts may include both fixed and variable amounts. Variable amounts can either increase or decrease the transaction price. A common example of variable amounts that can either increase or decrease contract value are pending change orders that represent contract modifications for which a change in scope has been authorized or acknowledged by our customer, but the final adjustment to contract price is yet to be negotiated. Other examples of positive variable revenue include amounts awarded upon achievement of certain performance metrics, program milestones or cost of completion date targets and can be based upon customer discretion. Variable amounts can result in a deduction from contract revenue if we fail to meet stated performance requirements, such as complying with the construction schedule.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">We include estimated amounts of variable consideration in the contract price to the extent it is probable that a significant reversal of cumulative revenue recognized will not occur when the uncertainty associated with the variable consideration is resolved. Our estimates of variable consideration and determination of whether to include estimated amounts in the contract price are based largely on an assessment of our anticipated performance and all information (historical, current and forecasted) that is reasonably available to us. We reassess the amount of variable consideration each accounting period until the uncertainty associated with the variable consideration is resolved. Changes in the assessed amount of variable consideration are accounted for prospectively as a cumulative adjustment to revenue recognized in the current period.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">Contracts are often modified to account for changes in contract specifications and requirements. We consider contract modifications to exist when the modification either creates new, or changes the existing, enforceable rights and obligations. Most of our contract modifications are for goods or services that are not distinct from the existing performance obligation(s). The effect of a contract modification on the transaction price, and our measure of progress for the performance obligation to which it relates, is recognized as an adjustment to revenue (either as an increase or decrease) on a cumulative catch-up basis. </p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">We have a Company-wide policy requiring periodic review of the Estimate at Completion in which management reviews the progress and execution of our performance obligations and estimated remaining obligations. As part of this process, management reviews information including, but not limited to, any outstanding key contract matters, progress towards completion and the related program schedule, identified risks and opportunities and the related changes in estimates of revenue and costs. The risks and opportunities include management's judgment about the ability and cost to achieve the schedule (<i style="font-style:italic;">e.g.</i>, the number and type of milestone events), technical requirements (<i style="font-style:italic;">e.g.</i>, a newly developed product versus a mature product) and other contract requirements. Management must make assumptions and estimates regarding labor productivity and availability, the complexity of the work to be performed, the availability of materials, the length of time to complete the performance obligation (<i style="font-style:italic;">e.g.</i>, to estimate increases in wages and prices for materials and related support cost allocations), execution by our subcontractors, the availability and timing of funding from our customer, and overhead cost rates, among other variables. </p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">Based on this analysis, any adjustments to revenue, cost of services, and the related impact to operating income are recognized as necessary in the quarter when they become known. These adjustments may result from positive program performance if we determine we will be successful in mitigating risks surrounding the technical, schedule and cost aspects of those performance obligations or realizing related opportunities and may result in an increase in operating income during the performance of individual performance obligations. Likewise, if we determine we will not be </p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">successful in mitigating these risks or realizing related opportunities, these adjustments may result in a decrease in operating income. Changes in estimates of revenue, cost of services and the related impact to operating income are recognized quarterly on a cumulative catch-up basis, meaning we recognize in the current period the cumulative effect of the changes on current and prior periods based on our <span style="background:#ffffff;">progress towards complete satisfaction of a performance obligation</span>. A significant change in one or more of these estimates could affect the profitability of one or more of our performance obligations. For projects in which estimates of total costs to be incurred on a performance obligation exceed total estimates of revenue to be earned, a provision for the entire loss on the performance obligation is recognized in the period the loss is determined. </p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">During the three months ended September 30, 2024 and 2023, net revenue recognized from our performance obligations partially satisfied in the previous period positively impacted revenue by 1.7% and 0.8%, respectively, as a result of changes in estimates associated with performance obligations on contracts. During the nine months ended September 30, 2024 and 2023, net revenue recognized from our performance obligations partially satisfied in the previous period positively impacted revenue by 2.7% and 1.3%<span style="white-space:pre-wrap;">, respectively, as a result of changes in estimates associated with performance obligations on contracts.   </span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="font-style:italic;font-weight:bold;">Disaggregation of Revenue</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">Our consolidated 2024 revenue was derived from contracts to provide service activities in the mechanical and electrical segments we serve. Refer to Note 11 &#8220;Segment Information&#8221; for additional information on our reportable segments. We disaggregate our revenue from contracts with customers by activity, customer type and service provided, as we believe it best depicts how the nature, amount, timing and uncertainty of our revenue and cash flows are affected by economic factors. See details in the following tables (dollars in thousands):</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 0pt 36pt;"><span style="margin-left:0pt;visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:24.07%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:24.07%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="10" style="vertical-align:bottom;white-space:nowrap;width:35.03%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Three Months Ended September 30, </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="11" style="vertical-align:bottom;white-space:nowrap;width:36.57%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Nine Months Ended September 30, </b></p></td></tr><tr><td style="vertical-align:bottom;width:24.07%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><b style="font-weight:bold;">Revenue by Service Provided</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;</b></p></td><td colspan="4" style="vertical-align:bottom;white-space:nowrap;width:16.04%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2024</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;</b></p></td><td colspan="4" style="vertical-align:bottom;white-space:nowrap;width:16.04%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2023</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;</b></p></td><td colspan="4" style="vertical-align:bottom;white-space:nowrap;width:16.04%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2024</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;</b></p></td><td colspan="4" style="vertical-align:bottom;white-space:nowrap;width:16.04%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2023</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:24.07%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">Mechanical Segment</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 1,438,617</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">&#160;&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 79.4</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 1,031,310</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">&#160;&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 74.8</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 4,075,305</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">&#160;&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 79.0</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 2,925,848</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">&#160;&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 76.0</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">%</p></td></tr><tr><td style="vertical-align:bottom;width:24.07%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">Electrical Segment</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 373,749</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 20.6</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 346,814</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 25.2</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 1,084,367</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 21.0</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 923,346</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 24.0</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">%</p></td></tr><tr><td style="vertical-align:bottom;width:24.07%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">Total </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.48%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 1,812,366</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 100.0</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.48%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 1,378,124</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 100.0</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.48%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 5,159,672</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 100.0</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.48%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 3,849,194</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 100.0</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">%</p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:24.07%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:24.07%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="10" style="vertical-align:bottom;white-space:nowrap;width:35.03%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Three Months Ended September 30, </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="11" style="vertical-align:bottom;white-space:nowrap;width:36.57%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Nine Months Ended September 30, </b></p></td></tr><tr><td style="vertical-align:bottom;width:24.07%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><b style="font-weight:bold;">Revenue by Type of Customer</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="4" style="vertical-align:bottom;white-space:nowrap;width:16.04%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2024</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="4" style="vertical-align:bottom;white-space:nowrap;width:16.04%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2023</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="4" style="vertical-align:bottom;white-space:nowrap;width:16.04%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2024</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="4" style="vertical-align:bottom;white-space:nowrap;width:16.04%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2023</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td></tr><tr><td style="vertical-align:bottom;width:24.07%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">Technology</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 615,398</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 34.0</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 303,847</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 22.0</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 1,641,525</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 31.8</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 795,327</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 20.7</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">%</p></td></tr><tr><td style="vertical-align:bottom;width:24.07%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">Manufacturing</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 452,157</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 24.9</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 469,173</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 34.0</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 1,439,772</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 27.9</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 1,271,348</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 33.0</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">%</p></td></tr><tr><td style="vertical-align:bottom;width:24.07%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">Education</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 195,737</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 10.8</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 139,206</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 10.1</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 523,153</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 10.1</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 376,637</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 9.8</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">%</p></td></tr><tr><td style="vertical-align:bottom;width:24.07%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">Healthcare</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 149,974</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 8.3</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 133,130</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 9.7</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 424,450</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 8.2</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 431,329</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 11.2</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">%</p></td></tr><tr><td style="vertical-align:bottom;width:24.07%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">Office Buildings</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 109,233</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 6.0</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 104,937</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 7.6</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 326,137</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 6.3</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 299,103</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 7.8</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">%</p></td></tr><tr><td style="vertical-align:bottom;width:24.07%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">Retail, Restaurants and Entertainment</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 114,572</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 6.3</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 77,802</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 5.6</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 309,658</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 6.0</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 234,779</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 6.1</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">%</p></td></tr><tr><td style="vertical-align:bottom;width:24.07%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">Government</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 92,555</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 5.1</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 85,220</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 6.3</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 271,429</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 5.3</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 227,232</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 5.9</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">%</p></td></tr><tr><td style="vertical-align:bottom;width:24.07%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">Multi-Family and Residential</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 33,838</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 1.9</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 45,523</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 3.3</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 110,870</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 2.2</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 136,825</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 3.5</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">%</p></td></tr><tr><td style="vertical-align:bottom;width:24.07%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">Other</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.48%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 48,902</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 2.7</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.48%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 19,286</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 1.4</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.48%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 112,678</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 2.2</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.48%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 76,614</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 2.0</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">%</p></td></tr><tr><td style="vertical-align:bottom;width:24.07%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">Total </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.48%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 1,812,366</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 100.0</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.48%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 1,378,124</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 100.0</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.48%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 5,159,672</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 100.0</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.48%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 3,849,194</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 100.0</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">%</p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:24.07%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:24.07%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="10" style="vertical-align:bottom;white-space:nowrap;width:35.03%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Three Months Ended September 30, </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="11" style="vertical-align:bottom;white-space:nowrap;width:36.57%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Nine Months Ended September 30, </b></p></td></tr><tr><td style="vertical-align:bottom;width:24.07%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><b style="font-weight:bold;">Revenue by Activity Type</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="4" style="vertical-align:bottom;white-space:nowrap;width:16.04%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2024</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="4" style="vertical-align:bottom;white-space:nowrap;width:16.04%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2023</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="4" style="vertical-align:bottom;white-space:nowrap;width:16.04%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2024</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="4" style="vertical-align:bottom;white-space:nowrap;width:16.04%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2023</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td></tr><tr><td style="vertical-align:bottom;width:24.07%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">New Construction</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 949,035</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 52.4</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 798,289</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 57.9</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 2,930,283</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 56.8</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 2,108,153</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 54.8</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">%</p></td></tr><tr><td style="vertical-align:bottom;width:24.07%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">Existing Building Construction</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 570,288</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 31.5</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 305,795</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 22.2</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 1,407,231</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 27.3</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 974,085</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 25.3</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">%</p></td></tr><tr><td style="vertical-align:bottom;width:24.07%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">Service Projects</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 125,249</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 6.9</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 117,202</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 8.5</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 355,643</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 6.9</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 335,053</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 8.7</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">%</p></td></tr><tr><td style="vertical-align:bottom;width:24.07%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">Service Calls, Maintenance and Monitoring</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 167,794</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 9.2</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 156,838</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 11.4</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 466,515</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 9.0</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 431,903</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 11.2</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">%</p></td></tr><tr><td style="vertical-align:bottom;width:24.07%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">Total </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.48%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 1,812,366</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 100.0</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.48%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 1,378,124</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 100.0</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.48%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 5,159,672</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 100.0</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.48%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 3,849,194</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 100.0</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">%</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="font-style:italic;font-weight:bold;">Contract Assets and Liabilities</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">Contract assets include unbilled amounts typically resulting from sales under long term contracts when the cost-to-cost method of revenue recognition is used, revenue recognized exceeds the amount billed to the customer and right to </p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">payment is conditional or subject to completing a milestone, such as a phase of the project. Contract assets are not considered to have a significant financing component, as they are intended to protect the customer in the event that we do not perform our obligations under the contract. </p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">Contract liabilities consist of advance payments and billings in excess of revenue recognized. Advanced payments from customers related to work not yet started are classified as deferred revenue. Contract liabilities are not considered to have a significant financing component, as they are used to meet working capital requirements that are generally higher in the early stages of a contract and are intended to protect us from the other party failing to meet its obligations under the contract. Our contract assets and liabilities are reported in a net position on a contract-by-contract basis at the end of each reporting period. </p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">Contract assets and liabilities in the Consolidated Balance Sheet consisted of the following amounts as of September 30, 2024 and December 31, 2023 (in thousands):</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:middle;width:61.71%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="position:absolute;top:50%;transform:translate(0,-50%);width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:3.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:14.19%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:3.87%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:3.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:14.15%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:middle;width:61.71%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:17.22%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0.05pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">September 30, 2024</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0.05pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:17.18%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0.05pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">December 31, 2023</b></p></td></tr><tr><td style="vertical-align:middle;width:61.71%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;">Contract assets:</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.19%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.15%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:middle;width:61.71%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="white-space:pre-wrap;">   Costs and estimated earnings in excess of billings, less allowance for credit losses</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.19%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"> 73,934</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.15%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"> 28,084</p></td></tr><tr><td style="vertical-align:middle;width:61.71%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;">Contract liabilities:</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.19%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.15%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:middle;width:61.71%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="white-space:pre-wrap;">   Billings in excess of costs and estimated earnings and deferred revenue</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.19%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"> 1,197,532</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.15%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"> 909,538</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="margin-bottom:5pt;margin-top:5pt;visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 13.19pt 0pt;">In the first nine months of 2024 and 2023, we recognized revenue of $767.3 million and $482.9 million related to our contract liabilities at January 1, 2024 and January 1, 2023, respectively.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">We did not have any impairment losses recognized on our receivables or contract assets in the first nine months of 2024 and 2023.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="font-style:italic;font-weight:bold;">Remaining Performance Obligations</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="font-style:italic;font-weight:bold;visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">Remaining construction performance obligations represent the remaining transaction price of firm orders for which work has not been performed and exclude unexercised contract options. As of September 30, 2024, the aggregate amount of the transaction price allocated to remaining performance obligations was $5.68 billion. The Company expects to recognize revenue on approximately 65-75% of the remaining performance obligations over the next 12 months, with the remaining recognized thereafter. Our service maintenance agreements are generally one-year renewable agreements. We have adopted the practical expedient that allows us to not include service maintenance contracts with a total term of one<span style="white-space:pre-wrap;"> year or less; therefore, we do not report unfulfilled performance obligations for service maintenance agreements.  </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_RevenueFromContractWithCustomerAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_RevenueFromContractWithCustomerAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_RevenueFromContractWithCustomerTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 of revenue from contract with customer to transfer good or service and to transfer nonfinancial asset. Includes, but is not limited to, disaggregation of revenue, credit loss recognized from contract with customer, judgment and change in judgment related to contract with customer, and asset recognized from cost incurred to obtain or fulfill contract with customer. Excludes insurance and lease contracts.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 9<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479806/606-10-50-9<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 10<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479806/606-10-50-10<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 15<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479806/606-10-50-15<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 12<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479806/606-10-50-12<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 12<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479806/606-10-50-12<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 12<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479806/606-10-50-12<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 12<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479806/606-10-50-12<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 12<br> -Subparagraph (e)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479806/606-10-50-12<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 13<br> -Subparagraph (b)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479806/606-10-50-13<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Name Accounting Standards Codification<br> -Topic 606<br> -Publisher FASB<br> -URI https://asc.fasb.org/606/tableOfContent<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_RevenueFromContractWithCustomerTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>22
<FILENAME>R11.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.24.3</span><table class="report" border="0" cellspacing="2" id="idm46665026192656">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Fair Value Measurements<br></strong></div></th>
<th class="th" colspan="1">9 Months Ended</th>
</tr>
<tr><th class="th"><div>Sep. 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_FairValueDisclosuresAbstract', window );"><strong>Fair Value Measurements</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_FairValueDisclosuresTextBlock', window );">Fair Value Measurements</a></td>
<td class="text"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">4. Fair Value Measurements</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 6pt 0pt;"><span style="display:inline-block;text-indent:0pt;width:36pt;"></span><span style="font-style:italic;font-weight:bold;">Interest Rate Risk Management and Derivative Instruments</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">At times, we use derivative instruments to manage exposure to market risk,&#160;including&#160;interest rate risk. Unsettled amounts under our interest rate swaps, if any,&#160;are recorded in the Consolidated Balance Sheet at fair value in &#8220;Other Receivables&#8221; or &#8220;Other Current Liabilities.&#8221; Gains and losses on our interest rate swaps are recorded in the Consolidated Statement of Operations in &#8220;Interest Expense.&#8221; We currently do not have any derivatives that are accounted for as hedges under ASC 815.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="display:inline-block;text-indent:0pt;width:36pt;"></span><span style="font-style:italic;font-weight:bold;">Fair Value Measurement</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">We classify and disclose assets and liabilities carried at fair value in one of the following three categories:</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;width:100%;border:0pt;"><tr><td style="width:36pt;"></td><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">&#9679;</td><td style="padding:0pt;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">Level&#160;1&#8212;quoted prices in active markets for identical assets and liabilities;</span></td></tr></table><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;width:100%;border:0pt;"><tr><td style="width:36pt;"></td><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">&#9679;</td><td style="padding:0pt;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">Level&#160;2&#8212;observable market-based inputs or unobservable inputs that are corroborated by market data; and</span></td></tr></table><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;width:100%;border:0pt;"><tr><td style="width:36pt;"></td><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">&#9679;</td><td style="padding:0pt;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">Level&#160;3&#8212;significant unobservable inputs in which little or no market data exists, therefore requiring an entity to develop its own assumptions.</span></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">The following table summarizes the fair values, and levels within the fair value hierarchy in which the fair value measurements are included, for assets and liabilities measured on a recurring basis as of September 30, 2024 and December 31, 2023 (in thousands):</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:58.98%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:7.81%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:6.86%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:7.81%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:7.81%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:58.98%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="11" style="vertical-align:bottom;white-space:nowrap;width:39.37%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Fair&#160;Value&#160;Measurements&#160;at&#160;September 30, 2024</b></p></td></tr><tr><td style="vertical-align:bottom;width:58.98%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:8.84%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Level&#160;1</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:7.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Level&#160;2</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:8.84%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Level&#160;3</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:8.84%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Total</b></p></td></tr><tr><td style="vertical-align:bottom;width:58.98%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Cash and cash equivalents</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.81%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 415,583</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.86%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.81%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.81%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 415,583</p></td></tr><tr><td style="vertical-align:bottom;width:58.98%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Contingent earn-out obligations</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.81%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.81%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 103,238</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.81%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 103,238</p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:58.98%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:11pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:11pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:11pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.81%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:11pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:11pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:11pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:11pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:11pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:11pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.81%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:11pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:11pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:11pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.81%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:11pt;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:58.98%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="11" style="vertical-align:bottom;white-space:nowrap;width:39.37%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Fair&#160;Value&#160;Measurements&#160;at&#160;December 31, 2023</b></p></td></tr><tr><td style="vertical-align:bottom;width:58.98%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:8.84%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Level&#160;1</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:7.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Level&#160;2</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:8.84%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Level&#160;3</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:8.84%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Total</b></p></td></tr><tr><td style="vertical-align:bottom;width:58.98%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Cash and cash equivalents</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.81%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 205,150</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.86%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.81%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.81%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 205,150</p></td></tr><tr><td style="vertical-align:bottom;width:58.98%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Life insurance&#8212;cash surrender value</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.81%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 7,473</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.81%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.81%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 7,473</p></td></tr><tr><td style="vertical-align:bottom;width:58.98%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Contingent earn-out obligations</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.81%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.86%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.81%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 44,222</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.81%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 44,222</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">Cash and cash equivalents consist primarily of deposit accounts and highly rated money market funds at a variety of well-known institutions with original maturities of three months or less. The original cost of these assets approximates fair value due to their short-term maturity. We believe the carrying value of our debt associated with our revolving credit facility approximates its fair value due to the variable rate on such debt. We believe the carrying values of our notes to former owners approximate their fair values due to the relatively short remaining terms on these notes.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">As of December 31, 2023, we had life insurance policies covering 131 employees with a combined face value of $87.8 million. The policies are invested in several investment vehicles, and the fair value measurement of the cash surrender balance associated with these policies is determined using Level&#160;2 inputs within the fair value hierarchy and will vary with investment performance. The cash surrender value of these policies is included in &#8220;Other Noncurrent Assets&#8221; in our Consolidated Balance Sheets.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">We value contingent earn-out obligations using a probability weighted discounted cash flow method. This fair value measurement is based on significant unobservable inputs in the market and thus represents a Level&#160;3 measurement within the fair value hierarchy. This analysis reflects the contractual terms of the purchase agreements (<i style="font-style:italic;">e.g.</i>, minimum and maximum payments, length of earn-out periods, manner of calculating any amounts due, etc.) and utilizes assumptions with regard to future cash flows and operating income, probabilities of achieving such future cash flows and operating income and a weighted average cost of capital. Significant changes in any of these assumptions could result in a significantly higher or lower potential liability. The contingent earn-out obligations are measured at fair value each reporting period, and changes in estimates of fair value are recognized in earnings. As of September 30, 2024, cash flows were discounted using a weighted average cost of capital ranging from 16.0% to 19.0%.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">The table below presents a reconciliation of the fair value of our contingent earn-out obligations that use significant unobservable inputs (Level 3) (in thousands):</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:70.19%;"><tr style="height:1pt;"><td style="vertical-align:bottom;white-space:nowrap;width:52.96%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.65%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:3.19%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:18.15%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.65%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.84%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:16.12%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:0.73%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:0.67%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:52.96%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:21.35%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Nine Months Ended </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:18.96%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Year Ended</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.73%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:52.96%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:21.35%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">September 30, 2024</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:18.96%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">December 31, 2023</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.73%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:52.96%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Balance at beginning of period</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.65%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';">&#160;&#160;&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.19%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:18.15%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 44,222</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.65%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';">&#160;&#160;&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.84%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:16.12%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 32,317</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.73%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';">&#160;</span></p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:52.96%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Issuances</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.19%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:18.15%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 51,784</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.84%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:16.12%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 4,315</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.73%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:52.96%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Settlements</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.65%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.19%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:18.15%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (37,202)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.65%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.84%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:16.12%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;">(16,017)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.73%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:52.96%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Adjustments to fair value</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.19%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:18.15%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 44,434</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.84%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:16.12%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 23,607</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.73%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:52.96%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Balance at end of period</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.65%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.19%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:18.15%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 103,238</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.65%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.84%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:16.12%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 44,222</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.73%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</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_FairValueDisclosuresAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FairValueDisclosuresAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FairValueDisclosuresTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The entire disclosure for the fair value of financial instruments (as defined), including financial assets and financial liabilities (collectively, as defined), and the measurements of those instruments as well as disclosures related to the fair value of non-financial assets and liabilities. Such disclosures about the financial instruments, assets, and liabilities would include: (1) the fair value of the required items together with their carrying amounts (as appropriate); (2) for items for which it is not practicable to estimate fair value, disclosure would include: (a) information pertinent to estimating fair value (including, carrying amount, effective interest rate, and maturity, and (b) the reasons why it is not practicable to estimate fair value; (3) significant concentrations of credit risk including: (a) information about the activity, region, or economic characteristics identifying a concentration, (b) the maximum amount of loss the entity is exposed to based on the gross fair value of the related item, (c) policy for requiring collateral or other security and information as to accessing such collateral or security, and (d) the nature and brief description of such collateral or security; (4) quantitative information about market risks and how such risks are managed; (5) for items measured on both a recurring and nonrecurring basis information regarding the inputs used to develop the fair value measurement; and (6) for items presented in the financial statement for which fair value measurement is elected: (a) information necessary to understand the reasons for the election, (b) discussion of the effect of fair value changes on earnings, (c) a description of [similar groups] items for which the election is made and the relation thereof to the balance sheet, the aggregate carrying value of items included in the balance sheet that are not eligible for the election; (7) all other required (as defined) and desired 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/exampleRef<br> -Topic 820<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 107<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482078/820-10-55-107<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 820<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 100<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482078/820-10-55-100<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 820<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(3)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482106/820-10-50-2<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 820<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6A<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482106/820-10-50-6A<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 820<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2E<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482106/820-10-50-2E<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 820<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6A<br> -Subparagraph (h)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482106/820-10-50-6A<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 820<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6A<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482106/820-10-50-6A<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 820<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6A<br> -Subparagraph (e)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482106/820-10-50-6A<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 820<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6A<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482106/820-10-50-6A<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 820<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (h)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482106/820-10-50-2<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 820<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (g)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482106/820-10-50-2<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 940<br> -SubTopic 820<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478119/940-820-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_FairValueDisclosuresTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>23
<FILENAME>R12.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.24.3</span><table class="report" border="0" cellspacing="2" id="idm46664933254272">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Acquisitions<br></strong></div></th>
<th class="th" colspan="1">9 Months Ended</th>
</tr>
<tr><th class="th"><div>Sep. 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>Acquisitions</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</a></td>
<td class="text"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">5. Acquisitions</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="display:inline-block;text-indent:0pt;width:36pt;"></span><span style="font-style:italic;font-weight:bold;">Summit Industrial Construction, LLC Acquisition</span><span style="display:inline-block;width:10.1pt;"></span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="display:inline-block;text-indent:0pt;width:36pt;"></span>On February 1, 2024, we acquired Summit Industrial Construction, LLC (&#8220;Summit&#8221;). Summit is headquartered in Houston, Texas, and is a specialty industrial contractor offering engineering, design-assist and turnkey, direct hire construction services of systems serving the advanced technology, power, and industrial sectors. As a result of the </p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">acquisition, Summit is a wholly owned subsidiary of the Company reported in our mechanical segment. Revenue attributable to Summit was $256.2 million for the eight months from the acquisition date. </p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="display:inline-block;text-indent:0pt;width:36pt;"></span>The following summarizes the acquisition date fair value of consideration transferred and the acquisition date fair value of the identifiable assets acquired and liabilities assumed, including an amount for goodwill (in thousands):</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="display:inline-block;text-indent:0pt;width:36pt;"></span><span style="visibility:hidden;">&#8203;</span></p><div style="padding-left:40.5pt;"><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:83.34%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:81.03%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.29%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:16.66%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:81.03%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Consideration transferred:</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:16.66%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:81.03%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="white-space:pre-wrap;">  Cash paid at closing</span></p></td><td style="vertical-align:middle;width:2.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:16.66%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 267,500</p></td></tr><tr><td style="vertical-align:bottom;width:81.03%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="white-space:pre-wrap;">  Working capital adjustment </span></p></td><td style="vertical-align:middle;width:2.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="color:#ff0000;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:16.66%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 14,602</p></td></tr><tr><td style="vertical-align:bottom;width:81.03%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="white-space:pre-wrap;">  Notes issued to former owners</span></p></td><td style="vertical-align:middle;width:2.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:16.66%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 35,000</p></td></tr><tr><td style="vertical-align:bottom;width:81.03%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="white-space:pre-wrap;">  Estimated fair value of contingent earn-out payments</span></p></td><td style="vertical-align:middle;width:2.29%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:16.66%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 42,732</p></td></tr><tr><td style="vertical-align:bottom;width:81.03%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:middle;width:2.29%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:16.66%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 359,834</p></td></tr><tr><td style="vertical-align:bottom;width:81.03%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Recognized amounts of identifiable assets acquired and liabilities assumed:</p></td><td style="vertical-align:middle;width:2.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:16.66%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:81.03%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="white-space:pre-wrap;">  Cash and cash equivalents</span></p></td><td style="vertical-align:middle;width:2.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:16.66%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 171,027</p></td></tr><tr><td style="vertical-align:bottom;width:81.03%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="white-space:pre-wrap;">  Billed and unbilled accounts receivable</span></p></td><td style="vertical-align:middle;width:2.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:16.66%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 59,846</p></td></tr><tr><td style="vertical-align:bottom;width:81.03%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="white-space:pre-wrap;">  Prepaid expenses and other</span></p></td><td style="vertical-align:middle;width:2.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:16.66%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 1,476</p></td></tr><tr><td style="vertical-align:bottom;width:81.03%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="white-space:pre-wrap;">  Cost and estimated earnings in excess of billings</span></p></td><td style="vertical-align:middle;width:2.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:16.66%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 578</p></td></tr><tr><td style="vertical-align:bottom;width:81.03%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="white-space:pre-wrap;">  Property and equipment</span></p></td><td style="vertical-align:middle;width:2.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:16.66%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 2,528</p></td></tr><tr><td style="vertical-align:bottom;width:81.03%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="white-space:pre-wrap;">  Lease right-of-use asset</span></p></td><td style="vertical-align:middle;width:2.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:16.66%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 2,364</p></td></tr><tr><td style="vertical-align:bottom;width:81.03%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="white-space:pre-wrap;">  Goodwill</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:16.66%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 155,345</p></td></tr><tr><td style="vertical-align:bottom;width:81.03%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="white-space:pre-wrap;">  Identifiable intangible assets</span></p></td><td style="vertical-align:middle;width:2.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:16.66%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 170,100</p></td></tr><tr><td style="vertical-align:bottom;width:81.03%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="white-space:pre-wrap;">  Other noncurrent assets</span></p></td><td style="vertical-align:middle;width:2.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:16.66%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 136</p></td></tr><tr><td style="vertical-align:bottom;width:81.03%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="white-space:pre-wrap;">  Accounts payable</span></p></td><td style="vertical-align:middle;width:2.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:16.66%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (15,130)</p></td></tr><tr><td style="vertical-align:bottom;width:81.03%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="white-space:pre-wrap;">  Billings in excess of costs and estimated earnings and deferred revenue</span></p></td><td style="vertical-align:middle;width:2.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:16.66%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (179,895)</p></td></tr><tr><td style="vertical-align:bottom;width:81.03%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="white-space:pre-wrap;">  Current operating lease liabilities</span></p></td><td style="vertical-align:middle;width:2.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:16.66%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (1,495)</p></td></tr><tr><td style="vertical-align:bottom;width:81.03%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="white-space:pre-wrap;">  Accrued expenses and other current liabilities</span></p></td><td style="vertical-align:middle;width:2.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:16.66%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (6,293)</p></td></tr><tr><td style="vertical-align:bottom;width:81.03%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="white-space:pre-wrap;">  Long-term operating lease liabilities</span></p></td><td style="vertical-align:middle;width:2.29%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:16.66%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (753)</p></td></tr><tr><td style="vertical-align:bottom;width:81.03%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:middle;width:2.29%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:16.66%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 359,834</p></td></tr></table></div><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="display:inline-block;text-indent:0pt;width:36pt;"></span><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="display:inline-block;text-indent:0pt;width:36pt;"></span>The allocation of the purchase price to the assets acquired and liabilities assumed is preliminary and, therefore, subject to change pending the completion of the final valuation of intangible assets and accrued liabilities. Goodwill represents the future economic benefits arising from other assets acquired that cannot be individually identified and separately recognized. The goodwill recognized as a result of the Summit acquisition is deductible for tax purposes.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="white-space:pre-wrap;">In estimating the fair value of the acquired intangible assets, we utilized the valuation methodology determined to be the most appropriate for the individual intangible asset. In order to estimate the fair value of the backlog and customer relationships, we utilized an excess earnings methodology, which consisted of the projected cash flows attributable to these assets discounted to present value using a risk-adjusted discount rate that represented the required rate of return. The trade name value was determined based on the relief-from-royalty method, which applies a royalty rate to the revenue stream attributable to this asset, and the resulting royalty payment is tax effected and discounted to present value. Some of the more significant estimates and assumptions inherent in determining the fair value of the identifiable intangible assets are associated with forecasting cash flows and profitability, which represent Level 3 inputs.  The primary assumptions used were generally based upon the present value of anticipated cash flows discounted at rates ranging from </span>18.5% to 20.5%. Estimated years of projected earnings generally follow the range of estimated remaining useful lives for each intangible asset class. </p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">The acquired intangible assets include the following (dollars in thousands):</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><div style="padding-left:40.5pt;"><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:84.17%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:48.39%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.19%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;width:20.3%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;width:12.51%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;width:1.72%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;width:1.72%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;width:11.41%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:48.39%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.19%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;width:20.3%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Valuation Method</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;width:12.51%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Estimated Useful Life</b></p></td><td style="vertical-align:bottom;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;width:1.72%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;width:11.41%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Estimated Fair Value</b></p></td></tr><tr><td style="vertical-align:bottom;width:48.39%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Backlog</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.19%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;width:20.3%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;">Excess earnings</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.51%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;">1.8 years</p></td><td style="vertical-align:bottom;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.41%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 35,800</p></td></tr><tr><td style="vertical-align:bottom;width:48.39%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Trade Name</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.19%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;width:20.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;">Relief-from-royalty</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.51%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;">22.9 years</p></td><td style="vertical-align:bottom;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 11,300</p></td></tr><tr><td style="vertical-align:bottom;width:48.39%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Customer Relationships</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.19%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;width:20.3%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;">Excess earnings</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.51%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;">10 years</p></td><td style="vertical-align:bottom;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;width:1.72%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.41%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 123,000</p></td></tr><tr><td style="vertical-align:bottom;width:48.39%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Total</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.19%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;width:20.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;width:12.51%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;width:1.72%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.41%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 170,100</p></td></tr></table></div><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">The contingent earn-out obligation is associated with the achievement of four earnings milestones over a <span style="-sec-ix-hidden:Hidden_D6Z90bw5WUGuPqOyL_t0uw;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">47-month</span></span> period, and the range of each estimated milestone payment is $2.6 million to $20.5 million. We determined the initial fair value of the contingent earn-out obligation based on the Monte Carlo Simulation method, which represents a Level 3 measurement.&#160;Cash flows were discounted using discount rates ranging from 18.2% to 19.5%, which we believe is appropriate and representative of a market participant assumption.&#160;Subsequent to the acquisition date, the contingent earn-out obligation is remeasured at fair value each reporting period.&#160;Changes in the estimated fair value of the contingent payments subsequent to the acquisition date are recognized immediately in earnings.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="display:inline-block;text-indent:0pt;width:36pt;"></span><span style="font-style:italic;font-weight:bold;">J &amp; S Mechanical Contractors, Inc. Acquisition</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="display:inline-block;text-indent:0pt;width:36pt;"></span>On February 1, 2024, we acquired all of the issued and outstanding shares of capital stock of J &amp; S Mechanical Contractors, Inc. (&#8220;J&amp;S&#8221;). J&amp;S is headquartered in West Jordan, Utah, and provides mechanical construction services to commercial and industrial sectors, specializing in data center HVAC systems and hospital medical gas systems. As a result of the acquisition, J&amp;S is a wholly owned subsidiary of the Company reported in our mechanical segment. Revenue attributable to J&amp;S was $106.3 million for the eight months from the acquisition date. </p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="display:inline-block;text-indent:0pt;width:36pt;"></span>The following summarizes the acquisition date fair value of consideration transferred and the acquisition date fair value of the identifiable assets acquired and liabilities assumed, including an amount for goodwill (in thousands):</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="display:inline-block;text-indent:0pt;width:36pt;"></span><span style="visibility:hidden;">&#8203;</span></p><div style="padding-left:40.5pt;"><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:85.59%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:82.58%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:3.43%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:13.97%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:82.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Consideration transferred:</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:82.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="white-space:pre-wrap;">  Cash paid at closing</span></p></td><td style="vertical-align:middle;width:3.43%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 100,000</p></td></tr><tr><td style="vertical-align:bottom;width:82.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="white-space:pre-wrap;">  Working capital adjustment </span></p></td><td style="vertical-align:middle;width:3.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="color:#ff0000;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 1,587</p></td></tr><tr><td style="vertical-align:bottom;width:82.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="white-space:pre-wrap;">  Notes issued to former owners</span></p></td><td style="vertical-align:middle;width:3.43%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 10,000</p></td></tr><tr><td style="vertical-align:bottom;width:82.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="white-space:pre-wrap;">  Estimated fair value of contingent earn-out payments</span></p></td><td style="vertical-align:middle;width:3.43%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.97%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 9,052</p></td></tr><tr><td style="vertical-align:bottom;width:82.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:middle;width:3.43%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.97%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 120,639</p></td></tr><tr><td style="vertical-align:bottom;width:82.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Recognized amounts of identifiable assets acquired and liabilities assumed:</p></td><td style="vertical-align:middle;width:3.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:82.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="white-space:pre-wrap;">  Cash and cash equivalents</span></p></td><td style="vertical-align:middle;width:3.43%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 14,802</p></td></tr><tr><td style="vertical-align:bottom;width:82.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="white-space:pre-wrap;">  Billed and unbilled accounts receivable</span></p></td><td style="vertical-align:middle;width:3.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 38,411</p></td></tr><tr><td style="vertical-align:bottom;width:82.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="white-space:pre-wrap;">  Inventory</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.43%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:11pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 230</p></td></tr><tr><td style="vertical-align:bottom;width:82.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="white-space:pre-wrap;">  Prepaid expenses and other</span></p></td><td style="vertical-align:middle;width:3.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 393</p></td></tr><tr><td style="vertical-align:bottom;width:82.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="white-space:pre-wrap;">  Costs and estimated earnings in excess of billings</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.43%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:11pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 728</p></td></tr><tr><td style="vertical-align:bottom;width:82.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="white-space:pre-wrap;">  Property and equipment</span></p></td><td style="vertical-align:middle;width:3.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 2,674</p></td></tr><tr><td style="vertical-align:bottom;width:82.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="white-space:pre-wrap;">  Lease right-of-use asset</span></p></td><td style="vertical-align:middle;width:3.43%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 4,552</p></td></tr><tr><td style="vertical-align:bottom;width:82.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="white-space:pre-wrap;">  Goodwill</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 40,706</p></td></tr><tr><td style="vertical-align:bottom;width:82.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="white-space:pre-wrap;">  Identifiable intangible assets</span></p></td><td style="vertical-align:middle;width:3.43%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 63,300</p></td></tr><tr><td style="vertical-align:bottom;width:82.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="white-space:pre-wrap;">  Other noncurrent assets</span></p></td><td style="vertical-align:middle;width:3.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 10</p></td></tr><tr><td style="vertical-align:bottom;width:82.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="white-space:pre-wrap;">  Accounts payable</span></p></td><td style="vertical-align:middle;width:3.43%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (20,649)</p></td></tr><tr><td style="vertical-align:bottom;width:82.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="white-space:pre-wrap;">  Billings in excess of costs and estimated earnings and deferred revenue</span></p></td><td style="vertical-align:middle;width:3.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (19,188)</p></td></tr><tr><td style="vertical-align:bottom;width:82.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="white-space:pre-wrap;">  Current operating lease liabilities</span></p></td><td style="vertical-align:middle;width:3.43%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (133)</p></td></tr><tr><td style="vertical-align:bottom;width:82.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="white-space:pre-wrap;">  Accrued expenses and other current liabilities</span></p></td><td style="vertical-align:middle;width:3.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (826)</p></td></tr><tr><td style="vertical-align:bottom;width:82.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="white-space:pre-wrap;">  Long-term debt</span></p></td><td style="vertical-align:middle;width:3.43%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (59)</p></td></tr><tr><td style="vertical-align:bottom;width:82.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="white-space:pre-wrap;">  Long-term operating lease liabilities</span></p></td><td style="vertical-align:middle;width:3.43%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.97%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (4,312)</p></td></tr><tr><td style="vertical-align:bottom;width:82.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:middle;width:3.43%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.97%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 120,639</p></td></tr></table></div><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="display:inline-block;text-indent:0pt;width:36pt;"></span>The allocation of the purchase price to the assets acquired and liabilities assumed is preliminary and, therefore, subject to change pending the completion of the final valuation of intangible assets and accrued liabilities. Goodwill represents the future economic benefits arising from other assets acquired that cannot be individually identified and separately recognized. The goodwill recognized as a result of the J&amp;S acquisition is deductible for tax purposes.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">In estimating the fair value of the acquired intangible assets, we utilized the valuation methodology determined to be the most appropriate for the individual intangible asset. In order to estimate the fair value of the backlog and customer relationships, we utilized an excess earnings methodology, which consisted of the projected cash flows attributable to these assets discounted to present value using a risk-adjusted discount rate that represented the required rate of return. The trade name value was determined based on the relief-from-royalty method, which applies a royalty </p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="white-space:pre-wrap;">rate to the revenue stream attributable to this asset, and the resulting royalty payment is tax effected and discounted to present value. Some of the more significant estimates and assumptions inherent in determining the fair value of the identifiable intangible assets are associated with forecasting cash flows and profitability, which represent Level 3 inputs.  The primary assumptions used were generally based upon the present value of anticipated cash flows discounted at rates ranging from </span>15.5% to 17.0%. Estimated years of projected earnings generally follow the range of estimated remaining useful lives for each intangible asset class. </p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">The acquired intangible assets include the following (dollars in thousands):</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><div style="padding-left:40.5pt;"><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:85.17%;"><tr style="height:1pt;"><td style="vertical-align:bottom;white-space:nowrap;width:49.12%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.24%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:19.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.24%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:14.76%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.25%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.21%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:49.12%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:19.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.76%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Estimated</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.25%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Estimated</b></p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:49.12%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:19.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Valuation Method</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.76%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Useful Life</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.25%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.3%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Fair Value</b></p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:49.12%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Backlog</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:19.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;">Excess earnings</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.76%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;">1.8 years</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.25%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.21%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 12,900</p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:49.12%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Trade Name</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:19.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;">Relief-from-royalty</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.76%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;">22 years</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.25%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.21%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 10,600</p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:49.12%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Customer Relationships</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:19.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;">Excess earnings</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.76%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;">9 years</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.25%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.21%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.08%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 39,800</p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:49.12%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Total</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:19.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.76%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.25%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.21%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.08%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 63,300</p></td></tr></table></div><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">The contingent earn-out obligation is associated with the achievement of three earnings milestones over a <span style="-sec-ix-hidden:Hidden_7S33M40-vka_9FZRu5HBlg;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">35-month</span></span> period, and the range of each estimated milestone payment is $1.1 million to $4.7 million. We determined the initial fair value of the contingent earn-out obligation based on the Monte Carlo Simulation method, which represents a Level 3 measurement.&#160;Cash flows were discounted using discount rates ranging from 15.4% to 16.5%, which we believe is appropriate and representative of a market participant assumption.&#160;Subsequent to the acquisition date, the contingent earn-out obligation is remeasured at fair value each reporting period.&#160;Changes in the estimated fair value of the contingent payments subsequent to the acquisition date are recognized immediately in earnings.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="font-style:italic;font-weight:bold;">Other Acquisitions</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">On May 1, 2024, we acquired all of the issued and outstanding membership interests of a plumbing service provider in North Carolina for a total preliminary purchase price of $39.9 million, which is reported in our mechanical segment. </p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">On October 2, 2023, we acquired all of the issued and outstanding shares of capital stock of DECCO, Inc. (&#8220;DECCO&#8221;), headquartered in Nashua, New Hampshire, for a total purchase price of $59.8 million, which included $48.8 million of cash paid on the closing date, $7.0 million in notes payable to the former owners, an earn-out that will be paid if certain financial targets are met after the acquisition date and a working capital adjustment. DECCO operates in the Northeastern region of the United States and performs mechanical and plumbing services with specialties in piping systems, steam, power, biotechnical processes and conveying systems, in addition to turnkey tool and equipment installation, critical equipment handling services and associated maintenance and support services. As a result of the acquisition, DECCO is a wholly owned subsidiary of the Company reported in our mechanical segment.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">On February 1, 2023, we acquired all of the issued and outstanding shares of capital stock of Eldeco, Inc. (&#8220;Eldeco&#8221;), headquartered in South Carolina, for a total purchase price of $74.0 million, which included $60.8 million of cash paid on the closing date, $8.0 million in notes payable to the former owners, an earn-out that will be paid if certain financial targets are met after the acquisition date and a working capital adjustment. Eldeco performs electrical design and construction services in the Southeastern region of the United States. As a result of the acquisition, Eldeco is a wholly owned subsidiary of the Company reported in our electrical segment.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">The results of operations of acquisitions are included in our consolidated financial statements from their respective acquisition dates. Our Consolidated Balance Sheet includes preliminary allocations of the purchase price to the assets acquired and liabilities assumed for the applicable acquisitions pending the completion of the final valuation of intangible assets and accrued liabilities. The acquisitions completed in the current and prior year were not material, individually or in the aggregate. Additional contingent purchase price (&#8220;earn-out&#8221;) has been or will be paid if certain acquisitions achieve predetermined profitability targets. Such earn-outs, when they are not subject to the continued employment of the sellers, are estimated as of the purchase date and included as part of the consideration paid for the acquisition. If we have an earn-out under which continued employment is a condition to receipt of payment, then the earn-out is recorded as compensation expense over the period earned. </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>24
<FILENAME>R13.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.24.3</span><table class="report" border="0" cellspacing="2" id="idm46664933748304">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Goodwill and Identifiable Intangible Assets, Net<br></strong></div></th>
<th class="th" colspan="1">9 Months Ended</th>
</tr>
<tr><th class="th"><div>Sep. 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 Identifiable Intangible Assets, Net</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 Identifiable Intangible Assets, Net</a></td>
<td class="text"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">6. Goodwill and Identifiable Intangible Assets, Net</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="font-style:italic;font-weight:bold;">Goodwill</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="font-style:italic;font-weight:bold;visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">The changes in the carrying amount of goodwill are as follows (in thousands):</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:-0.20061874%;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:58.58%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.63%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.42%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:13.1%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.63%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.35%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:11.8%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.63%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:7.78%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:58.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.63%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:14.53%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Mechanical Segment</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.63%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:13.15%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Electrical Segment</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.63%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:8.81%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Total</b></p></td></tr><tr><td style="vertical-align:bottom;width:58.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Balance at December 31, 2022</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.63%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.42%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.1%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 363,929</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.63%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.8%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 247,860</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.63%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.78%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 611,789</p></td></tr><tr><td style="vertical-align:bottom;width:58.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Acquisitions and purchase price adjustments (See Note&#160;5)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.63%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.42%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.1%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 29,347</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.63%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.35%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.8%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 25,698</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.63%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.78%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 55,045</p></td></tr><tr><td style="vertical-align:bottom;width:58.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Balance at December 31, 2023</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.63%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.42%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.1%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 393,276</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.63%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.8%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 273,558</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.63%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.78%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 666,834</p></td></tr><tr><td style="vertical-align:bottom;width:58.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Acquisitions and purchase price adjustments (See Note&#160;5)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.63%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.42%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.1%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 208,159</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.63%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.35%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.8%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 200</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.63%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.78%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 208,359</p></td></tr><tr><td style="vertical-align:bottom;width:58.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Balance at September 30, 2024</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.63%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.42%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.1%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 601,435</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.63%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.35%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.8%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 273,758</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.63%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.78%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 875,193</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="font-style:italic;font-weight:bold;">Identifiable Intangible Assets, Net</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="font-style:italic;font-weight:bold;visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">At September 30, 2024, future amortization expense of identifiable intangible assets is as follows (in thousands):</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:60%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:81.36%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:3.42%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.88%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:13.03%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:0.29%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:81.36%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Year ending December 31&#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;&#160;&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.88%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.03%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;&#160;&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:81.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">2024 (remainder of the year)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.42%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.88%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:11pt;">$</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.03%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 22,042</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:81.36%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">2025</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.88%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.03%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 66,576</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:81.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">2026</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.42%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.88%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.03%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 55,961</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:81.36%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">2027</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.88%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.03%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 53,650</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:81.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">2028</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.42%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.88%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.03%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 52,103</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:81.36%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">Thereafter</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.88%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.03%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 206,127</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:81.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 18pt;">Total</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.42%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.88%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.03%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 456,459</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</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://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 350<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Publisher FASB<br> -URI https://asc.fasb.org/350-30/tableOfContent<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Publisher FASB<br> -URI https://asc.fasb.org/350-20/tableOfContent<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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>25
<FILENAME>R14.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.24.3</span><table class="report" border="0" cellspacing="2" id="idm46664934558352">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Debt Obligations<br></strong></div></th>
<th class="th" colspan="1">9 Months Ended</th>
</tr>
<tr><th class="th"><div>Sep. 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 Obligations</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 );">Debt Obligations</a></td>
<td class="text"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">7. Debt Obligations</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">Debt obligations consist of the following (in thousands):</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:79.99%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:70.79%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;width:2.05%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.81%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.76%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.05%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.27%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;width:0.51%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:70.79%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;width:2.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:12.57%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">September 30, </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.99%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">December 31, </b></p></td><td style="vertical-align:bottom;width:0.51%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:70.79%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;width:2.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:12.57%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2024 </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.99%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2023</b></p></td><td style="vertical-align:bottom;width:0.51%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td></tr><tr><td style="vertical-align:bottom;width:70.79%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Revolving credit facility</p></td><td style="vertical-align:bottom;width:2.05%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.81%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.76%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.05%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.27%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;width:0.51%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:70.79%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Notes to former owners</p></td><td style="vertical-align:bottom;width:2.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.81%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.76%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 67,593</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.27%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 44,070</p></td><td style="vertical-align:bottom;width:0.51%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:70.79%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Other debt</p></td><td style="vertical-align:bottom;width:2.05%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.81%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.76%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 768</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.05%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.27%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 142</p></td><td style="vertical-align:bottom;width:0.51%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:70.79%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">Total debt</p></td><td style="vertical-align:bottom;width:2.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;"><span style="margin-left:0pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.81%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.76%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 68,361</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.27%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 44,212</p></td><td style="vertical-align:bottom;width:0.51%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;"><span style="margin-left:0pt;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:70.79%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">Less&#8212;current portion</p></td><td style="vertical-align:bottom;width:2.05%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;"><span style="margin-left:0pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.81%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.76%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (6,046)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.05%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.27%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (4,867)</p></td><td style="vertical-align:bottom;width:0.51%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;"><span style="margin-left:0pt;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:70.79%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">Total long-term portion of debt</p></td><td style="vertical-align:bottom;width:2.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;"><span style="margin-left:0pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.81%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.76%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 62,315</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.27%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 39,345</p></td><td style="vertical-align:bottom;width:0.51%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;"><span style="margin-left:0pt;visibility:hidden;">&#8203;</span></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 0pt 36pt;"><span style="font-style:italic;font-weight:bold;">Revolving Credit Facility </span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">We have an $850.0 million senior credit facility (the &#8220;Facility&#8221;) provided by a syndicate of banks, which is composed of a revolving credit line guaranteed by certain of our subsidiaries. The Facility also provides for an accordion or increase option not to exceed the greater of (a) $250 million and (b) 1.0x Credit Facility Adjusted EBITDA (as defined below), as well as a sublimit of up to $175.0 million issuable in the form of letters of credit. The Facility expires in July 2027 and is secured by a first lien on substantially all of our personal property except for assets related to projects subject to surety bonds and the equity of, and assets held by, certain unrestricted subsidiaries and our wholly owned captive insurance company, and a second lien on our assets related to projects subject to surety bonds. As of September 30, 2024, we had no outstanding borrowings on the revolving credit facility, $80.0&#160;million in letters of credit outstanding and $770.0&#160;million of credit available.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">There are two interest rate options for borrowings under the Facility, the Base Rate Loan (as defined in the Facility) option and the Secured Overnight Financing Rate (&#8220;SOFR&#8221;) Loan option. These rates are floating rates </p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">determined by the broad financial markets, meaning they can and do move up and down from time to time. Additional margins are then added to these two rates: </p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:53.32%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;width:7.13%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.71%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;width:7.55%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.74%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;width:6.5%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.74%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;width:6.39%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.71%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;width:6.79%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.71%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:53.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="9" style="vertical-align:bottom;white-space:nowrap;width:43.31%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Net Leverage Ratio</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.71%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:53.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;width:7.13%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Less&#160;than&#160;</b><b style="font-weight:bold;"><br/></b><b style="font-weight:bold;">1.00</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.71%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;width:7.55%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">1.00&#160;to&#160;less than 1.75</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;width:6.5%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">1.75&#160;to less than&#160;2.50</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;width:6.39%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2.50&#160;to less than 3.00</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.71%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;width:6.79%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">3.00 or greater</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.71%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:53.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Additional Per Annum Interest Margin Added Under:</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.13%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.71%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.55%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.5%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.39%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.71%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.79%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.71%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:53.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">Base Rate Loan Option</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.13%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">0.00 </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.71%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.55%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 0.25</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">%&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.5%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 0.50</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">%&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.39%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 0.75</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.71%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.79%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 1.00</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.71%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">%</p></td></tr><tr><td style="vertical-align:bottom;width:53.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">SOFR Loan Option</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.13%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 1.00</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.71%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.55%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 1.25</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.5%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 1.50</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.39%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 1.75</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.71%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.79%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 2.00</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.71%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">%</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">There were no outstanding borrowings on the revolving credit facility as of September 30, 2024 and December 31, 2023.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">Certain of our vendors require letters of credit to ensure reimbursement for amounts they are disbursing on our behalf, such as to beneficiaries under our self-funded insurance programs. We have also occasionally used letters of credit to guarantee performance under our contracts and to ensure payment to our subcontractors and vendors under those contracts. Our lenders issue such letters of credit through the Facility. A letter of credit commits the lenders to pay specified amounts to the holder of the letter of credit if the holder demonstrates that we have failed to perform specified actions. If this were to occur, we would be required to reimburse the lenders for amounts they fund to honor the letter of credit holder&#8217;s claim. Absent a claim, there is no payment or reserving of funds by us in connection with a letter of credit. However, because a claim on a letter of credit would require immediate reimbursement by us to our lenders, letters of credit are treated as a use of Facility capacity. The letter of credit fees range from 1.00% to 2.00% per annum, based on the Net Leverage Ratio.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">Commitment fees are payable on the portion of the revolving loan capacity not in use for borrowings or letters of credit at any given time. These fees range from 0.15% to 0.25% per annum, based on the Net Leverage Ratio.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">The Facility contains financial covenants defining various financial measures and the levels of these measures with which we must comply. Covenant compliance is assessed as of each quarter end. We were in compliance with all of our financial covenants as of September 30, 2024.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-style:italic;font-weight:bold;">Notes to Former Owners</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">As part of the consideration used to acquire eight companies, we have outstanding notes to the former owners. Together, these notes had an outstanding balance of $67.6 million as of September 30, 2024. At September 30, 2024, future principal payments of notes to former owners by maturity year are as follows (dollars in thousands):</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:79.99%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:52.88%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:3.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.86%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:19.49%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:3.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:16.1%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:3.53%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:52.88%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;width:3.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:21.36%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Balance at</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:19.63%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Range of Stated</b></p></td></tr><tr><td style="vertical-align:bottom;width:52.88%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;width:3.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:21.36%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">September 30, 2024</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:19.63%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;"> Interest Rates</b></p></td></tr><tr><td style="vertical-align:bottom;width:52.88%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">2025</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.86%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:11pt;">$</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:19.49%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 5,968</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:16.1%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">2.3 - 2.5</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:11pt;">%</span></p></td></tr><tr><td style="vertical-align:bottom;width:52.88%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">2026</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:19.49%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 30,625</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:16.1%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">2.5 - 5.5</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:11pt;">%</span></p></td></tr><tr><td style="vertical-align:bottom;width:52.88%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">2027</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.86%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:19.49%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 26,000</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:16.1%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 5.5</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:11pt;">%</span></p></td></tr><tr><td style="vertical-align:bottom;width:52.88%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">2028</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.86%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:19.49%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 5,000</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:16.1%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 5.5</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:11pt;">%</span></p></td></tr><tr><td style="vertical-align:bottom;width:52.88%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 18pt;">Total</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.86%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:19.49%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 67,593</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:16.1%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:11pt;visibility:hidden;">&#8203;</span></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:1pt;text-indent:36pt;margin:0pt;">F</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 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481544/470-10-50-6<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481544/470-10-50-6<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 405<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477092/405-40-50-1<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 405<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)(3)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477092/405-40-50-1<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 405<br> -SubTopic 40<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/2147477092/405-40-50-1<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 405<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477092/405-40-50-1<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 405<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477092/405-40-50-1<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 1B<br> -Subparagraph (h)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481139/470-20-50-1B<br><br>Reference 9: 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 10: 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 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 835<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482925/835-30-45-2<br><br>Reference 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> -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 (g)<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 (i)<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 1C<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481139/470-20-50-1C<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 1C<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481139/470-20-50-1C<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 1C<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481139/470-20-50-1C<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 (b)<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 1I<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481139/470-20-50-1I<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 1I<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481139/470-20-50-1I<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 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>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.3</span><table class="report" border="0" cellspacing="2" id="idm46664933972912">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Leases<br></strong></div></th>
<th class="th" colspan="1">9 Months Ended</th>
</tr>
<tr><th class="th"><div>Sep. 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_LeasesAbstract', window );"><strong>Leases</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LesseeOperatingLeasesTextBlock', window );">Leases</a></td>
<td class="text"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">8. Leases</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">We lease certain facilities, vehicles and equipment primarily under noncancelable operating leases. The most significant portion of these noncancelable operating leases is for the facilities occupied by our corporate office and our operating locations. Leases with an initial term of 12 months or less are not recorded in the Consolidated Balance Sheet. We do not separate lease components from their associated non-lease components pursuant to lease accounting guidance. We have certain leases with variable payments based on an index as well as short-term leases on equipment and facilities. Variable lease expense and short-term lease expense aggregated to $26.4 million and $17.0 million for the three months ended September 30, 2024 and 2023, respectively. Variable lease expense and short-term lease expense </p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">aggregated to $67.1 million and $38.8 million in the first nine months of 2024 and 2023, respectively. These expenses were primarily related to short-term equipment rentals. Lease right-of-use assets and liabilities are recognized at commencement date based on the present value of lease payments over the lease term. As most of our leases do not provide an implicit rate, we generally use our incremental borrowing rate based on the information available at commencement date in determining the present value of lease payments. The weighted average discount rate for our operating leases as of September 30, 2024 and December 31, 2023 was 6.0% and 5.8%, respectively. We recognize operating lease expense, including escalating lease payments and lease incentives, on a straight-line basis over the lease term. Operating lease expense for the three months ended September 30, 2024 and 2023 was $37.1 million and $25.7 million, respectively. Operating lease expense for the nine months ended September 30, 2024 and 2023 was $98.6 million and $61.7 million, respectively.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">The lease terms generally range from <span style="-sec-ix-hidden:Hidden_ObkJycMSt02VXygggL-EOg;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">three</span></span> to ten years. Some leases include one or more options to renew, which may be exercised to extend the lease term. We include the exercise of lease renewal options in the lease term when it is reasonably certain that we will exercise the option and such exercise is at our sole discretion. In the third quarter of 2023, we commenced two large real estate leases to support our expected growth in off-site construction, with lease terms longer than our typical terms. The weighted average remaining lease term for our operating leases was 11.1 years at September 30, 2024 and 10.9 years at December 31, 2023.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">A majority of the Company&#8217;s real property leases are with individuals or entities with whom we have no other business relationship. However, in certain instances the Company enters into real property leases with current or former employees. Rent paid to related parties for the three months ended September 30, 2024 and 2023 was approximately $2.4 million and $1.9 million, respectively. Rent paid to related parties for the nine months ended September 30, 2024 and 2023 was approximately $7.1 million and $5.6 million, respectively.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">If we decide to cancel or terminate a lease before the end of its term, we would typically owe the lessor the remaining lease payments under the term of the lease. Our lease agreements do not contain any material residual value guarantees or material restrictive covenants. On rare occasions, we rent or sublease certain real estate assets that we no longer use to third parties.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">The following table summarizes the operating lease assets and liabilities included in the Consolidated Balance Sheet as follows (in thousands):</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:75%;"><tr style="height:1pt;"><td style="vertical-align:bottom;white-space:nowrap;width:60.43%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:3.15%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:15.19%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:3.47%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:3.04%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:14.69%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:60.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.15%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:15.19%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.47%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.69%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:middle;width:60.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:18.35%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">September 30, 2024</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.47%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:17.73%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">December 31, 2023</b></p></td></tr><tr><td style="vertical-align:middle;width:60.43%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Operating lease right-of-use assets</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.15%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:15.19%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 225,301</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.47%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.69%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 205,712</p></td></tr><tr><td style="vertical-align:middle;width:60.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Operating lease liabilities:</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.15%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:15.19%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.47%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.69%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:middle;width:60.43%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="-sec-ix-hidden:Hidden_CXTdk2oMZES1sCPvqd8w5w;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;white-space:pre-wrap;">   Other current liabilities</span></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.15%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:15.19%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 26,979</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.47%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.69%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 24,426</p></td></tr><tr><td style="vertical-align:middle;width:60.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="white-space:pre-wrap;">   Long-term operating lease liabilities</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.15%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:15.19%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 208,268</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.47%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.04%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.69%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 188,136</p></td></tr><tr><td style="vertical-align:middle;width:60.43%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Total operating lease liabilities</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.15%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:15.19%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 235,247</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.47%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.04%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.69%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 212,562</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">The maturities of operating lease liabilities are as follows (in thousands):</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:79.99%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:85.46%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;width:2.54%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;width:1.54%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;width:10.44%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:85.46%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Year ending December 31&#8212;</p></td><td style="vertical-align:bottom;width:2.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;width:1.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;width:10.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;"><span style="margin-left:0pt;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:85.46%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">2024 (excluding the nine months ended September 30, 2024)</p></td><td style="vertical-align:bottom;width:2.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;"><span style="margin-left:0pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;width:1.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0pt 0pt;"> 10,146</p></td></tr><tr><td style="vertical-align:bottom;width:85.46%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">2025</p></td><td style="vertical-align:bottom;width:2.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;"><span style="margin-left:0pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;width:1.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0pt 0pt;"> 39,434</p></td></tr><tr><td style="vertical-align:bottom;width:85.46%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">2026</p></td><td style="vertical-align:bottom;width:2.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;"><span style="margin-left:0pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;width:1.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0pt 0pt;"> 35,646</p></td></tr><tr><td style="vertical-align:bottom;width:85.46%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">2027</p></td><td style="vertical-align:bottom;width:2.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;"><span style="margin-left:0pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;width:1.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0pt 0pt;"> 31,101</p></td></tr><tr><td style="vertical-align:bottom;width:85.46%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">2028</p></td><td style="vertical-align:bottom;width:2.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;"><span style="margin-left:0pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;width:1.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0pt 0pt;"> 27,234</p></td></tr><tr><td style="vertical-align:bottom;width:85.46%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">Thereafter</p></td><td style="vertical-align:bottom;width:2.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;"><span style="margin-left:0pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;width:1.54%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.44%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0pt 0pt;"> 189,877</p></td></tr><tr><td style="vertical-align:bottom;width:85.46%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 24pt;">Total lease payments</p></td><td style="vertical-align:bottom;width:2.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 24pt;"><span style="margin-left:0pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;width:1.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0pt 0pt;"> 333,438</p></td></tr><tr><td style="vertical-align:bottom;width:85.46%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 24pt;">Less&#8212;present value discount</p></td><td style="vertical-align:bottom;width:2.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 24pt;"><span style="margin-left:0pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;width:1.54%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.44%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (98,191)</p></td></tr><tr><td style="vertical-align:bottom;width:85.46%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 24pt;">Present value of operating lease liabilities</p></td><td style="vertical-align:bottom;width:2.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 24pt;"><span style="margin-left:0pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;width:1.54%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.44%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0pt 0pt;"> 235,247</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">Supplemental information related to operating leases was as follows (in thousands):</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:middle;width:48.32%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="position:absolute;top:50%;transform:translate(0,-50%);width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.29%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.68%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.28%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.59%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.25%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.22%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.61%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.24%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.21%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:48.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="5" style="vertical-align:bottom;white-space:nowrap;width:25.47%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Three Months Ended September 30, </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="5" style="vertical-align:bottom;white-space:nowrap;width:24.55%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Nine Months Ended September 30, </b></p></td></tr><tr><td style="vertical-align:bottom;width:48.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.9%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2024</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.68%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.88%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2023</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2024</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.61%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.46%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2023</b></p></td></tr><tr><td style="vertical-align:middle;width:48.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">Cash paid for amounts included in the measurement of operating lease liabilities</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 10,061</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.68%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.28%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.59%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 7,293</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.25%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 29,377</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.61%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.21%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 21,362</p></td></tr><tr><td style="vertical-align:middle;width:48.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">Operating lease right-of-use assets obtained in exchange for lease liabilities</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 6,657</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.68%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.28%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.59%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 82,352</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.25%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 41,989</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.61%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.21%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 98,102</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;font-weight:bold;visibility:hidden;">&#8203;</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_LeasesAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LeasesAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LesseeOperatingLeasesTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The entire disclosure for operating leases of lessee. Includes, but is not limited to, description of operating lease and maturity analysis of operating lease liability.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Publisher FASB<br> -URI https://asc.fasb.org/842-20/tableOfContent<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LesseeOperatingLeasesTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>27
<FILENAME>R16.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.24.3</span><table class="report" border="0" cellspacing="2" id="idm46664933219248">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Commitments and Contingencies<br></strong></div></th>
<th class="th" colspan="1">9 Months Ended</th>
</tr>
<tr><th class="th"><div>Sep. 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</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CommitmentsAndContingenciesDisclosureTextBlock', window );">Commitments and Contingencies</a></td>
<td class="text"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">9. Commitments and Contingencies</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 0pt 36pt;"><span style="font-style:italic;font-weight:bold;margin-left:0pt;visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 0pt 36pt;"><span style="font-style:italic;font-weight:bold;">Claims and Lawsuits</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">We are subject to certain legal and regulatory claims, including lawsuits arising in the normal course of business. We maintain various insurance coverages to minimize financial risk associated with these claims. We have estimated and provided accruals for probable losses and related legal fees associated with certain litigation in the accompanying consolidated financial statements. While we cannot predict the outcome of these proceedings, in management&#8217;s opinion and based on reports of counsel, any liability arising from these matters individually and in the aggregate will not have a material effect on our operating results, cash flows or financial condition, after giving effect to provisions already recorded.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">In the first quarter of 2023, we recorded a pre-tax gain of $6.8 million from legal developments and settlements that primarily relate to disputes with customers regarding the outcome of completed projects as well as an obligation to perform subcontract work under two executed letters of intent for subsequent projects that we believed were not enforceable. The pre-tax gain of $6.8 million was recorded as an increase in gross profit of $6.6 million, a reduction in SG&amp;A of $0.7 million, an increase in interest income of $1.3 million and an increase in the change in fair value of contingent earn-out obligations expense of $1.8 million in our Consolidated Statements of Operations.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">As of September 30, 2024, we recorded an accrual for unresolved matters, which is not material to our financial statements, based on our analysis of likely outcomes related to the respective matters; however, it is possible that the ultimate outcome and associated costs will deviate from our estimates and that, in the event of an unexpectedly adverse outcome, we may experience additional costs and expenses in future periods.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 0pt 36pt;"><span style="margin-left:0pt;visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 0pt 36pt;"><span style="font-style:italic;font-weight:bold;">Surety</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">Many customers, particularly in connection with new construction, require us to post performance and payment bonds issued by a financial institution known as a surety. If we fail to perform under the terms of a contract or to pay subcontractors and vendors who provided goods or services under a contract, the customer may demand that the surety make payments or provide services under the bond. We must reimburse the surety for any expenses or outlays it incurs. </p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">Current market conditions for surety markets and bonding capacity are adequate, with acceptable terms and conditions. Historically, approximately 10% to 20% of our business has required bonds. While we currently have strong surety relationships to support our bonding needs, future market conditions or changes in the sureties&#8217; assessment of our operating and financial risk could cause the sureties to decline to issue bonds for our work. If that were to occur, the alternatives include doing more business that does not require bonds, posting other forms of collateral for project performance, such as letters of credit or cash, and seeking bonding capacity from other sureties. We would likely also encounter concerns from customers, suppliers and other market participants as to our creditworthiness. While we believe our general operating and financial characteristics would enable us to ultimately respond effectively to an interruption in the availability of bonding capacity, such an interruption would likely cause our revenue and profits to decline in the near term.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 0pt 36pt;"><span style="font-style:italic;font-weight:bold;">Self-Insurance</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">We are substantially self-insured for workers&#8217; compensation, employer&#8217;s liability, auto liability, general liability and employee group health claims, in view of the relatively high per-incident deductibles we absorb under our insurance arrangements for these risks. Losses are estimated and accrued based upon known facts, historical trends and industry </p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">averages. Estimated losses in excess of our deductible, which have not already been paid, are included in our accrual with a corresponding receivable from our insurance carrier. Loss estimates associated with the larger and longer-developing risks, such as workers&#8217; compensation, auto liability and general liability, are reviewed by a third-party actuary quarterly.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</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/2009/role/commonPracticeRef<br> -Topic 405<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Publisher FASB<br> -URI https://asc.fasb.org/405-30/tableOfContent<br><br>Reference 2: 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 3: 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 4: 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/2147478522/954-440-50-1<br><br>Reference 5: 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 6: 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>28
<FILENAME>R17.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.24.3</span><table class="report" border="0" cellspacing="2" id="idm46664938684928">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Stockholders' Equity<br></strong></div></th>
<th class="th" colspan="1">9 Months Ended</th>
</tr>
<tr><th class="th"><div>Sep. 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_StockholdersEquityNoteAbstract', window );"><strong>Stockholders' Equity</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_StockholdersEquityNoteDisclosureTextBlock', window );">Stockholders' Equity</a></td>
<td class="text"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">10. Stockholders&#8217; Equity</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 0pt 36pt;"><span style="font-style:italic;font-weight:bold;margin-left:0pt;visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 0pt 36pt;"><span style="font-style:italic;font-weight:bold;">Earnings Per Share</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">Basic earnings per share (&#8220;EPS&#8221;) is computed by dividing net income by the weighted average number of shares of common stock outstanding during the year. Diluted EPS is computed considering the dilutive effect of stock options, restricted stock, restricted stock units and performance stock units. The vesting of unvested, contingently issuable performance stock units is based on the achievement of certain earnings per share targets and total shareholder return. These shares are considered contingently issuable shares for purposes of calculating diluted earnings per share. These shares are not included in the diluted earnings per share denominator until the performance criteria are met, if it is assumed that the end of the reporting period was the end of the contingency period.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">Unvested restricted stock, restricted stock units and performance stock units are included in diluted earnings per share, weighted outstanding until the shares and units vest. Upon vesting, the vested restricted stock, restricted stock units and performance stock units are included in basic earnings per share weighted outstanding from the vesting date.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">There were zero anti-dilutive stock options excluded from the calculation of diluted EPS for the three and nine months ended September 30, 2024 and 2023. </p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">The following table reconciles the number of shares outstanding with the number of shares used in computing basic and diluted earnings per share for each of the periods presented (in thousands):</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:90%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:60.12%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.82%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.39%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.82%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:7.64%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.82%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.4%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.82%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:7.65%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:0.45%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:60.12%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td colspan="3" style="vertical-align:bottom;white-space:nowrap;width:17.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Three Months Ended </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td colspan="3" style="vertical-align:bottom;white-space:nowrap;width:17.88%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Nine Months Ended </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.45%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:60.12%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="3" style="vertical-align:bottom;white-space:nowrap;width:17.86%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">September 30, </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="3" style="vertical-align:bottom;white-space:nowrap;width:17.88%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">September 30, </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.45%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:60.12%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.39%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2024</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.64%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2023</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.4%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2024</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.65%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2023</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.45%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td></tr><tr><td style="vertical-align:bottom;width:60.12%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Common shares outstanding, end of period</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.39%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 35,593</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 35,760</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.4%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 35,593</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.65%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 35,760</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.45%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:60.12%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Effect of using weighted average common shares outstanding</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.39%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 76</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.64%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 60</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.4%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 125</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.65%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 59</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.45%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:60.12%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Shares used in computing earnings per share&#8212;basic</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.39%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 35,669</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 35,820</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.4%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 35,718</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.65%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 35,819</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.45%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:60.12%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Effect of shares issuable under stock option plans based on the treasury stock method</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.39%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 30</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 28</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.4%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 30</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 26</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.45%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:60.12%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Effect of restricted and contingently issuable shares</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.39%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 56</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.64%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 69</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.4%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 56</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.65%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 65</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.45%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:60.12%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Shares used in computing earnings per share&#8212;diluted</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.39%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 35,755</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.64%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 35,917</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.4%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 35,804</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.65%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 35,910</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.45%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 0pt 36pt;"><span style="font-style:italic;font-weight:bold;">Share Repurchase Program</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 0pt 36pt;"><span style="margin-left:0pt;visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">On March&#160;29, 2007, our Board of Directors (the &#8220;Board&#8221;) approved a stock repurchase program to acquire up to 1.0&#160;million shares of our outstanding common stock. Subsequently, the Board has from time to time increased the number of shares that may be acquired under the program and approved extensions of the program. On August 7, 2024, the Board approved an extension to the program by increasing the shares authorized for repurchase by 0.4 million shares. Since the inception of the repurchase program, the Board has approved 11.4&#160;million shares to be repurchased. As of September 30, 2024, we have repurchased a cumulative total of 10.4&#160;million shares at an average price of $29.99 per share under the repurchase program.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">The share repurchases will be made from time to time at our discretion in the open market or privately negotiated transactions, as permitted by securities laws and other legal requirements, and subject to market conditions and other factors. The Board may modify, suspend, extend or terminate the program at any time. During the nine months ended September 30, 2024, we repurchased 0.1 million shares for approximately $42.3 million at an average price of $310.02 per share. </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_StockholdersEquityNoteAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_StockholdersEquityNoteAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_StockholdersEquityNoteDisclosureTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 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 505<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 13<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481112/505-10-50-13<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 505<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 13<br> -Subparagraph (h)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481112/505-10-50-13<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 505<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 14<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481112/505-10-50-14<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 235<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477968/946-235-50-2<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 235<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477968/946-235-50-2<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 505<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478448/946-505-50-6<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 815<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480237/815-40-50-6<br><br>Reference 8: 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 9: 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(e)(1))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br><br>Reference 10: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 505<br> -Name Accounting Standards Codification<br> -Publisher FASB<br> -URI https://asc.fasb.org/505/tableOfContent<br><br>Reference 11: 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> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481112/505-10-50-13<br><br>Reference 12: 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 (g)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481112/505-10-50-13<br><br>Reference 13: 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 (i)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481112/505-10-50-13<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 505<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 14<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481112/505-10-50-14<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 505<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 14<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481112/505-10-50-14<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 505<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 16<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481112/505-10-50-16<br><br>Reference 17: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 505<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 18<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481112/505-10-50-18<br><br>Reference 18: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 505<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 18<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481112/505-10-50-18<br><br>Reference 19: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 505<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 18<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481112/505-10-50-18<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_StockholdersEquityNoteDisclosureTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>29
<FILENAME>R18.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.24.3</span><table class="report" border="0" cellspacing="2" id="idm46664938486480">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Segment Information<br></strong></div></th>
<th class="th" colspan="1">9 Months Ended</th>
</tr>
<tr><th class="th"><div>Sep. 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 Information</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SegmentReportingDisclosureTextBlock', window );">Segment Information</a></td>
<td class="text"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 12pt 0pt;"><b style="font-weight:bold;">11. Segment Information</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">Our activities are within the mechanical services industry and the electrical services industry, which represent our two reportable segments. We aggregate our operating segments into two reportable segments, as the operating segments meet all of the aggregation criteria. The following tables present information about our reportable segments (in thousands):</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:89%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:34.37%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.39%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.39%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.99%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:34.37%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="11" style="vertical-align:bottom;white-space:nowrap;width:62.8%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Three Months Ended September 30, 2024</b></p></td></tr><tr><td style="vertical-align:bottom;width:34.37%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;width:2.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td colspan="2" style="vertical-align:bottom;width:13.11%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Mechanical Segment</b></p></td><td style="vertical-align:bottom;width:2.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td colspan="2" style="vertical-align:bottom;width:13.11%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Electrical Segment</b></p></td><td style="vertical-align:bottom;width:2.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td colspan="2" style="vertical-align:bottom;width:14.37%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Corporate</b></p></td><td style="vertical-align:bottom;width:2.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td colspan="2" style="vertical-align:bottom;width:13.72%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Consolidated</b></p></td></tr><tr><td style="vertical-align:bottom;width:34.37%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Revenue</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.39%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 1,438,617</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.39%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 373,749</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.65%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.99%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 1,812,366</p></td></tr><tr><td style="vertical-align:bottom;width:34.37%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Gross Profit</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.39%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 292,372</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.39%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 89,342</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.99%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 381,714</p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:34.37%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:11pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:11pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:11pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.39%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:11pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:11pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:11pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.39%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:11pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:11pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:11pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:11pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:11pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:11pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.99%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:11pt;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:34.37%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="11" style="vertical-align:bottom;white-space:nowrap;width:62.8%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Three Months Ended September 30, 2023</b></p></td></tr><tr><td style="vertical-align:bottom;width:34.37%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;width:2.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td colspan="2" style="vertical-align:bottom;width:13.11%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Mechanical Segment</b></p></td><td style="vertical-align:bottom;width:2.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td colspan="2" style="vertical-align:bottom;width:13.11%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Electrical Segment</b></p></td><td style="vertical-align:bottom;width:2.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td colspan="2" style="vertical-align:bottom;width:14.37%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Corporate</b></p></td><td style="vertical-align:bottom;width:2.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td colspan="2" style="vertical-align:bottom;width:13.72%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Consolidated</b></p></td></tr><tr><td style="vertical-align:bottom;width:34.37%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Revenue</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.39%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 1,031,310</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.39%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 346,814</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.65%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.99%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 1,378,124</p></td></tr><tr><td style="vertical-align:bottom;width:34.37%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Gross Profit</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.39%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 210,147</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.39%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 67,352</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.99%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 277,499</p></td></tr><tr><td style="vertical-align:bottom;width:34.37%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.39%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.39%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.99%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:34.37%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="11" style="vertical-align:bottom;white-space:nowrap;width:62.8%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Nine Months Ended September 30, 2024</b></p></td></tr><tr><td style="vertical-align:bottom;width:34.37%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;width:2.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td colspan="2" style="vertical-align:bottom;width:13.11%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Mechanical Segment</b></p></td><td style="vertical-align:bottom;width:2.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td colspan="2" style="vertical-align:bottom;width:13.11%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Electrical Segment</b></p></td><td style="vertical-align:bottom;width:2.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td colspan="2" style="vertical-align:bottom;width:14.37%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Corporate</b></p></td><td style="vertical-align:bottom;width:2.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td colspan="2" style="vertical-align:bottom;width:13.72%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Consolidated</b></p></td></tr><tr><td style="vertical-align:bottom;width:34.37%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Revenue</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.39%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 4,075,305</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.39%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 1,084,367</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.65%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.99%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 5,159,672</p></td></tr><tr><td style="vertical-align:bottom;width:34.37%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Gross Profit</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.39%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 789,056</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.39%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 253,617</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.99%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 1,042,673</p></td></tr><tr><td style="vertical-align:bottom;width:34.37%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.39%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.39%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.99%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:34.37%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="11" style="vertical-align:bottom;white-space:nowrap;width:62.8%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Nine Months Ended September 30, 2023</b></p></td></tr><tr><td style="vertical-align:bottom;width:34.37%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;width:2.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td colspan="2" style="vertical-align:bottom;width:13.11%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Mechanical Segment</b></p></td><td style="vertical-align:bottom;width:2.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td colspan="2" style="vertical-align:bottom;width:13.11%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Electrical Segment</b></p></td><td style="vertical-align:bottom;width:2.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td colspan="2" style="vertical-align:bottom;width:14.37%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Corporate</b></p></td><td style="vertical-align:bottom;width:2.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td colspan="2" style="vertical-align:bottom;width:13.72%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Consolidated</b></p></td></tr><tr><td style="vertical-align:bottom;width:34.37%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Revenue</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.39%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 2,925,848</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.39%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 923,346</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.65%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.99%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 3,849,194</p></td></tr><tr><td style="vertical-align:bottom;width:34.37%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Gross Profit</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.39%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 547,695</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.39%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 163,129</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.99%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 710,824</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</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_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/exampleRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 48<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482785/280-10-55-48<br><br>Reference 2: http://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 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 270<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (i)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482964/270-10-50-1<br><br>Reference 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 (ee)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 5: http://fasb.org/us-gaap/role/ref/otherTransitionRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 6: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 54<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482785/280-10-55-54<br><br>Reference 7: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 47<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482785/280-10-55-47<br><br>Reference 8: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 54<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482785/280-10-55-54<br><br>Reference 9: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 47<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482785/280-10-55-47<br><br>Reference 10: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 54<br> -Subparagraph (e)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482785/280-10-55-54<br><br>Reference 11: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 47<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482785/280-10-55-47<br><br>Reference 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 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 14: 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 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 26C<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-26C<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 26B<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-26B<br><br>Reference 17: 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 18: 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 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> -Name Accounting Standards Codification<br> -Publisher FASB<br> -URI https://asc.fasb.org/280/tableOfContent<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 26<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-26<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> -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 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 24: 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 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 (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>30
<FILENAME>R19.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.24.3</span><table class="report" border="0" cellspacing="2" id="idm46665036071536">
<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">9 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Sep. 30, 2024</div></th>
<th class="th"><div>Sep. 30, 2023</div></th>
<th class="th"><div>Sep. 30, 2024</div></th>
<th class="th"><div>Sep. 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">$ 146,235<span></span>
</td>
<td class="nump">$ 105,125<span></span>
</td>
<td class="nump">$ 376,563<span></span>
</td>
<td class="nump">$ 231,817<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 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-6<br><br>Reference 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 805<br> -SubTopic 60<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (g)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476176/805-60-65-1<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 323<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 2<br> -Subparagraph (g)(3)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478666/740-323-65-2<br><br>Reference 5: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(20))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483621/220-10-S99-2<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(ii))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 323<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481687/323-10-50-3<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 825<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 28<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482907/825-10-50-28<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 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 10: 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 11: 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 12: 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 13: 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 14: 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 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 11<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-11<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-4<br><br>Reference 17: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 946<br> -SubTopic 830<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479168/946-830-55-10<br><br>Reference 18: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 7<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479105/946-220-45-7<br><br>Reference 19: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-04(18))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477250/944-220-S99-1<br><br>Reference 20: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.6-07(9))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479134/946-220-S99-1<br><br>Reference 21: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3<br> -Subparagraph (SX 210.6-09(1)(d))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479134/946-220-S99-3<br><br>Reference 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)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 23: 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 24: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iii)(A))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 25: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 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 26: 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 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)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 28: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(A))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 29: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(B))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 30: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iv))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 31: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(5))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 32: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 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 33: 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 34: 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 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://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 942<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-04(22))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478524/942-220-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_NetIncomeLoss</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>31
<FILENAME>R20.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.24.3</span><table class="report" border="0" cellspacing="2" id="idm46664933786320">
<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>Sep. 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>32
<FILENAME>R21.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.24.3</span><table class="report" border="0" cellspacing="2" id="idm46664934526560">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Summary of Significant Accounting Policies and Estimates (Policies)<br></strong></div></th>
<th class="th" colspan="1">9 Months Ended</th>
</tr>
<tr><th class="th"><div>Sep. 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_AccountingPoliciesAbstract', window );"><strong>Summary of Significant Accounting Policies and Estimates</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BasisOfAccountingPolicyPolicyTextBlock', window );">Basis of Presentation</a></td>
<td class="text"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 0pt 36pt;"><span style="font-style:italic;font-weight:bold;">Basis of Presentation</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">These interim statements should be read in conjunction with the historical Consolidated Financial Statements and related notes of Comfort Systems included in the Annual Report on Form&#160;10-K as filed with the Securities and Exchange Commission (&#8220;SEC&#8221;) for the year ended December 31, 2023 (the &#8220;Form&#160;10-K&#8221;).</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">The accompanying unaudited consolidated financial statements were prepared using generally accepted accounting principles for interim financial information and the instructions to Form&#160;10-Q and applicable rules of Regulation&#160;S-X of the SEC. Accordingly, these financial statements do not include all the footnotes required by generally accepted accounting principles for complete financial statements and should be read in conjunction with the Form&#160;10-K. We believe all adjustments necessary for a fair presentation of these interim statements have been included and are of a normal and recurring nature. The results of operations for interim periods are not necessarily indicative of the results for the full fiscal year. </p><span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_UseOfEstimates', window );">Use of Estimates</a></td>
<td class="text"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 0pt 36pt;"><span style="font-style:italic;font-weight:bold;">Use of Estimates</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">The preparation of financial statements in conformity with generally accepted accounting principles requires the use of estimates and assumptions by management in determining the reported amounts of assets and liabilities, revenue and expenses and disclosures regarding contingent assets and liabilities. Actual results could differ from those estimates. The most significant estimates used in our financial statements affect revenue and cost recognition for construction contracts, self-insurance accruals, accounting for income taxes, fair value accounting for acquisitions and the quantification of fair value for reporting units in connection with our goodwill impairment testing. </p><span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock', window );">Recent Accounting Pronouncements</a></td>
<td class="text"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 0pt 36pt;"><span style="font-style:italic;font-weight:bold;">Recent Accounting Pronouncements</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-style:italic;visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><i style="font-style:italic;">Recent Accounting Pronouncements Not Yet Adopted</i></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">In November 2023, the Financial Accounting Standards Board (&#8220;FASB&#8221;) issued ASU 2023-07, &#8220;Segment Reporting (Topic 280): Improvements to Reportable Segment Disclosures.&#8221; This standard requires entities to disclose, on an annual and interim basis, significant segment expenses that are regularly provided to the chief decision maker and included within each reported measure of segment profit and loss. ASU 2023-07 is effective for fiscal years beginning after December 15, 2023, and interim periods within fiscal years beginning after December 15, 2024. Early adoption is permitted. ASU 2023-07 will not have an impact on our consolidated financial position, results of operations or cash flows, but will affect our financial statement disclosures as discussed above.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">In December 2023, the FASB issued ASU 2023-09, &#8220;Income Taxes (Topic 740): Improvements to Income Tax Disclosures.&#8221; <span style="background:#ffffff;">This standard requires entities to disclose more detailed information in the reconciliation of their statutory </span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="background:#ffffff;">tax rate to their effective tax rate. The standard also requires entities to make additional disclosures on income taxes paid as well as on certain income statement-related items. ASU 2023-09 is effective for fiscal years beginning after December 15, 2024</span><span style="background:#ffffff;">.</span><span style="background:#ffffff;"> Early adoption is permitted. This standard will not have an impact on our consolidated financial position, results of operations or cash flows, but will affect our financial statement disclosures as discussed above.</span></p><span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerPolicyTextBlock', window );">Revenue Recognition</a></td>
<td class="text"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 0pt 36pt;"><span style="font-style:italic;font-weight:bold;">Revenue Recognition</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">We recognize revenue over time for all of our services as we perform them because (i) control continuously transfers to that customer as work progresses, and (ii) we have the right to bill the customer as costs are incurred. The customer typically controls the work in process, as evidenced either by contractual termination clauses or by our rights to payment for work performed to date, plus a reasonable profit, for delivery of products or services that do not have an alternative use to the Company.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="white-space:pre-wrap;"> For the reasons listed above, revenue is recognized based on the extent of progress towards completion of the performance obligation. The selection of the method to measure progress towards completion requires judgment and is based on the nature of the products or services to be provided. We generally use a cost-to-cost input method to measure our progress towards satisfaction of the performance obligation for our contracts, as it best depicts the transfer of assets to the customer that occurs as we incur costs on our contracts. Under the cost-to-cost input method, the extent of progress towards completion is measured based on the ratio of costs incurred to date to the total estimated costs at completion of the performance obligation. Revenue, including estimated fees or profits, is recorded proportionally as costs are incurred. Costs to fulfill include labor, materials, subcontractors&#8217; costs, other direct costs and an allocation of indirect costs.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">For a small portion of our business in which our services are delivered in the form of service maintenance agreements for existing systems to be repaired and maintained, as opposed to constructed, our performance obligation is to maintain the customer&#8217;s mechanical system for a specific period of time. Similar to construction jobs, we recognize revenue over time; however, for service maintenance agreements in which the full cost to provide services may not be known, we generally use an input method to recognize revenue, which is based on the amount of time we have provided our services out of the total time we have been contracted to perform those services. Our revenue recognition policy is further discussed in Note&#160;3 &#8220;Revenue from Contracts with Customers.&#8221;</p><span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CreditLossFinancialInstrumentPolicyTextBlock', window );">Accounts Receivable and Allowance for Credit Losses</a></td>
<td class="text"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="font-style:italic;font-weight:bold;">Accounts Receivable and Allowance for Credit Losses</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">We are required to estimate and record the expected credit losses over the contractual life of our financial assets measured at amortized cost, including billed and unbilled accounts receivable, other receivables and contract assets. Accounts receivable include amounts from work completed in which we have billed or have an unconditional right to bill our customers. Our trade receivables are contractually due in less than a year.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">We estimate our credit losses using a loss-rate method for each of our identified portfolio segments. Our portfolio segments are construction, service and other. While our construction and service financial assets are often with the same subset of customers and industries, our construction financial assets will generally have a lower loss-rate than service financial assets due to lien rights, which we are more likely to have on construction jobs. These lien rights result in lower credit loss expenses on average compared to receivables that do not have lien rights. Financial assets classified as &#8220;other&#8221; include receivables that are not related to our core revenue producing activities, such as receivables related to our acquisition activity from former owners, our vendor rebate program or receivables for estimated losses in excess of our insurance deductible, which are accrued with a corresponding accrued insurance liability.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">Loss rates for our portfolios are based on numerous factors, including our history of credit loss expense by portfolio, the financial strength of our customers and counterparties in each portfolio, the aging of our receivables, our expectation of likelihood of payment, macroeconomic trends in the U.S. and the current and forecasted nonresidential construction market trends in the U.S.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">In addition to the loss-rate calculations discussed above, we also record allowance for credit losses for specific receivables that are deemed to have a higher risk profile than the rest of the respective pool of receivables (<i style="font-style:italic;">e.g.</i>, when we hold concerns about a specific customer going bankrupt and no longer being able to pay the receivables due to us).</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_TradeAndOtherAccountsReceivableUnbilledReceivablesPolicy', window );">Unbilled Accounts Receivable</a></td>
<td class="text"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="font-style:italic;font-weight:bold;">Unbilled Accounts Receivable</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">Unbilled accounts receivable are amounts due to us that we have earned under a contract where our right to payment is unconditional. A right to consideration is unconditional if only the passage of time is required before payment of the consideration is due. </p><span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncomeTaxPolicyTextBlock', window );">Income Taxes</a></td>
<td class="text"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="font-style:italic;font-weight:bold;">Income Taxes</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">We conduct business throughout the United States in virtually all fifty states. Our effective tax rate changes based upon our relative profitability, or lack thereof, in the federal and various state jurisdictions with differing tax rates and rules. In addition, discrete items such as tax law changes, judgments and legal structures, can impact our effective tax rate. These items can also include the tax treatment for impairment of goodwill and other intangible assets, changes in fair value of acquisition-related assets and liabilities, uncertain tax positions, and accounting for losses associated with underperforming operations. </p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">The Inflation Reduction Act was enacted on August 16, 2022. This law, among other provisions, provides a corporate alternative minimum tax on adjusted financial statement income over $1 billion, which is effective for tax years beginning after December 31, 2022, and a 1% excise tax on net corporate stock repurchases after December 31, 2022. The impact of the excise tax is recorded in &#8220;Treasury Stock&#8221; within our Consolidated Balance Sheet. These provisions were not material to our current year overall financial results, financial position and cash flows. </p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">In early September 2023, the IRS issued interim guidance addressing, together with other topics, the treatment of research and experimental (&#8220;R&amp;E&#8221;) expenditures for taxpayers using the percentage of completion method to account for taxable income from long-term contracts. We relied on such guidance for the 2022 tax year, and the resultant reduction in taxable revenue offsets the deferral of tax deductions for R&amp;E expenditures pursuant to the Tax Cuts and Jobs Act (2017) for the 2022 tax year. We filed our 2022 federal tax return in October 2023 requesting a refund of our $107.1 million overpayment, which had not been received as of September 30, 2024.</p><span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FairValueOfFinancialInstrumentsPolicy', window );">Financial Instruments</a></td>
<td class="text"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="font-style:italic;font-weight:bold;">Financial Instruments</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">Our financial instruments consist of cash and cash equivalents, accounts receivable, other receivables, accounts payable and life insurance policies, for which we deem the carrying values approximate their fair values due to the short-term nature of these instruments, as well as notes to former owners and a revolving credit facility. </p><span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValuePolicyTextBlock', window );">Investments</a></td>
<td class="text"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="font-style:italic;font-weight:bold;">Investments</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">We have a $6.1 million investment in a construction-focused technology fund with a fair value that is not readily determinable and is recorded at cost. This investment is included in &#8220;Other Noncurrent Assets&#8221; in our Consolidated Balance Sheet and is reviewed quarterly for impairment.&#160;We did not recognize any impairments in the current year related to this investment.</p><span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LesseeLeasesPolicyTextBlock', window );">Leases</a></td>
<td class="text"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">We lease certain facilities, vehicles and equipment primarily under noncancelable operating leases. The most significant portion of these noncancelable operating leases is for the facilities occupied by our corporate office and our operating locations. Leases with an initial term of 12 months or less are not recorded in the Consolidated Balance Sheet. We do not separate lease components from their associated non-lease components pursuant to lease accounting guidance. We have certain leases with variable payments based on an index as well as short-term leases on equipment and facilities. Variable lease expense and short-term lease expense aggregated to $26.4 million and $17.0 million for the three months ended September 30, 2024 and 2023, respectively. Variable lease expense and short-term lease expense </p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">aggregated to $67.1 million and $38.8 million in the first nine months of 2024 and 2023, respectively. These expenses were primarily related to short-term equipment rentals. Lease right-of-use assets and liabilities are recognized at commencement date based on the present value of lease payments over the lease term. As most of our leases do not provide an implicit rate, we generally use our incremental borrowing rate based on the information available at commencement date in determining the present value of lease payments. The weighted average discount rate for our operating leases as of September 30, 2024 and December 31, 2023 was 6.0% and 5.8%, respectively. We recognize operating lease expense, including escalating lease payments and lease incentives, on a straight-line basis over the lease term. Operating lease expense for the three months ended September 30, 2024 and 2023 was $37.1 million and $25.7 million, respectively. Operating lease expense for the nine months ended September 30, 2024 and 2023 was $98.6 million and $61.7 million, respectively.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">The lease terms generally range from <span style="-sec-ix-hidden:Hidden_ObkJycMSt02VXygggL-EOg;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">three</span></span> to ten years. Some leases include one or more options to renew, which may be exercised to extend the lease term. We include the exercise of lease renewal options in the lease term when it is reasonably certain that we will exercise the option and such exercise is at our sole discretion. In the third quarter of 2023, we commenced two large real estate leases to support our expected growth in off-site construction, with lease terms longer than our typical terms. The weighted average remaining lease term for our operating leases was 11.1 years at September 30, 2024 and 10.9 years at December 31, 2023.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">A majority of the Company&#8217;s real property leases are with individuals or entities with whom we have no other business relationship. However, in certain instances the Company enters into real property leases with current or former employees. Rent paid to related parties for the three months ended September 30, 2024 and 2023 was approximately $2.4 million and $1.9 million, respectively. Rent paid to related parties for the nine months ended September 30, 2024 and 2023 was approximately $7.1 million and $5.6 million, respectively.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">If we decide to cancel or terminate a lease before the end of its term, we would typically owe the lessor the remaining lease payments under the term of the lease. Our lease agreements do not contain any material residual value guarantees or material restrictive covenants. On rare occasions, we rent or sublease certain real estate assets that we no longer use to third parties.</p><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AccountingPoliciesAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AccountingPoliciesAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BasisOfAccountingPolicyPolicyTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Disclosure of accounting policy for basis of accounting, or basis of presentation, used to prepare the financial statements (for example, US Generally Accepted Accounting Principles, Other Comprehensive Basis of Accounting, IFRS).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BasisOfAccountingPolicyPolicyTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CreditLossFinancialInstrumentPolicyTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Disclosure of accounting policy for credit loss on financial instrument measured at amortized cost basis, net investment in lease, off-balance sheet credit exposure, and available-for-sale debt security. Includes, but is not limited to, methodology used to estimate allowance for credit loss, how writeoff of uncollectible amount is recognized, and determination of past due status and nonaccrual status.</p></div>
<a href="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 S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 6.M.2.Q4)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483530/326-20-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 50<br> -Paragraph 14<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479319/326-20-50-14<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 326<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 30<br> -Paragraph 5A<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479391/326-20-30-5A<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 326<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3C<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479319/326-20-50-3C<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 326<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 35<br> -Paragraph 8A<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479366/326-20-35-8A<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 326<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3D<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479319/326-20-50-3D<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 326<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 5<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479344/326-20-45-5<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 326<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 30<br> -Paragraph 1B<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479175/326-30-30-1B<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 326<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3C<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479106/326-30-50-3C<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 326<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3A<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479106/326-30-50-3A<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 326<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3D<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479106/326-30-50-3D<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 326<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 35<br> -Paragraph 13A<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479148/326-30-35-13A<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 326<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 30<br> -Paragraph 4A<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479391/326-20-30-4A<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 326<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 35<br> -Paragraph 7A<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479148/326-30-35-7A<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 326<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 21<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479319/326-20-50-21<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 326<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 11<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479319/326-20-50-11<br><br>Reference 17: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 326<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 7<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479106/326-30-50-7<br><br>Reference 18: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 326<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 17<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479319/326-20-50-17<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CreditLossFinancialInstrumentPolicyTextBlock</td>
</tr>
<tr>
<td style="padding-right: 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_EquitySecuritiesWithoutReadilyDeterminableFairValuePolicyTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Disclosure of accounting policy for investment in equity security without readily determinable fair value, which does not qualify for practical expedient to estimate fair value using net asset value per share. Includes, but is not limited to, information considered for determining upward and downward adjustment from observable price change.</p></div>
<a href="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 321<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479536/321-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_EquitySecuritiesWithoutReadilyDeterminableFairValuePolicyTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FairValueOfFinancialInstrumentsPolicy">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Disclosure of accounting policy for determining the fair value of financial instruments.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -SubTopic 10<br> -Topic 825<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482907/825-10-50-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FairValueOfFinancialInstrumentsPolicy</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncomeTaxPolicyTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Disclosure of accounting policy for income taxes, which may include its accounting policies for recognizing and measuring deferred tax assets and liabilities and related valuation allowances, recognizing investment tax credits, operating loss carryforwards, tax credit carryforwards, and other carryforwards, methodologies for determining its effective income tax rate and the characterization of interest and penalties in the financial statements.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 20<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-20<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 19<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-19<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 25<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482525/740-10-45-25<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3<br> -Subparagraph (SX 210.6-03(h)(1))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479886/946-10-S99-3<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 17<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-17<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 9<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-9<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 28<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482525/740-10-45-28<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482765/220-10-50-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncomeTaxPolicyTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LesseeLeasesPolicyTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Disclosure of accounting policy for leasing arrangement entered into by lessee.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478964/842-20-50-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LesseeLeasesPolicyTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Disclosure of accounting policy pertaining to new accounting pronouncements that may impact the entity's financial reporting. Includes, but is not limited to, quantification of the expected or actual impact.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_RevenueFromContractWithCustomerPolicyTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Disclosure of accounting policy for revenue from contract with customer.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 17<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479806/606-10-50-17<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 19<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479806/606-10-50-19<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 18<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479806/606-10-50-18<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 18<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479806/606-10-50-18<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 20<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479806/606-10-50-20<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 20<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479806/606-10-50-20<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 20<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479806/606-10-50-20<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 20<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479806/606-10-50-20<br><br>Reference 9: http://www.xbrl.org/2003/role/exampleRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (e)<br> -SubTopic 10<br> -Topic 235<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483426/235-10-50-4<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Name Accounting Standards Codification<br> -Topic 606<br> -Publisher FASB<br> -URI https://asc.fasb.org/606/tableOfContent<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_RevenueFromContractWithCustomerPolicyTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_TradeAndOtherAccountsReceivableUnbilledReceivablesPolicy">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Disclosure of accounting policy for treatment of receivables that are billable but have not been billed as of the balance sheet date.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(3)(c)(2))<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 310<br> -Name Accounting Standards Codification<br> -Publisher FASB<br> -URI https://asc.fasb.org/310/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_TradeAndOtherAccountsReceivableUnbilledReceivablesPolicy</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_UseOfEstimates">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Disclosure of accounting policy for the use of estimates in the preparation of financial statements in conformity with generally accepted accounting principles.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 275<br> -SubTopic 10<br> -Section 50<br> -Paragraph 9<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482861/275-10-50-9<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 275<br> -SubTopic 10<br> -Section 50<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482861/275-10-50-4<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)<br> -SubTopic 10<br> -Topic 275<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482861/275-10-50-1<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)<br> -SubTopic 10<br> -Topic 275<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482861/275-10-50-1<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 11<br> -SubTopic 10<br> -Topic 275<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482861/275-10-50-11<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 12<br> -SubTopic 10<br> -Topic 275<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482861/275-10-50-12<br><br>Reference 7: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 275<br> -SubTopic 10<br> -Section 50<br> -Paragraph 8<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482861/275-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_UseOfEstimates</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>33
<FILENAME>R22.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.24.3</span><table class="report" border="0" cellspacing="2" id="idm46664934651680">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Revenue from Contracts with Customers (Tables)<br></strong></div></th>
<th class="th" colspan="1">9 Months Ended</th>
</tr>
<tr><th class="th"><div>Sep. 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_RevenueFromContractWithCustomerAbstract', window );"><strong>Revenue from Contracts with Customers</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DisaggregationOfRevenueTableTextBlock', window );">Schedule of disaggregation of revenue</a></td>
<td class="text">See details in the following tables (dollars in thousands):<p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 0pt 36pt;"><span style="margin-left:0pt;visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:24.07%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:24.07%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="10" style="vertical-align:bottom;white-space:nowrap;width:35.03%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Three Months Ended September 30, </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="11" style="vertical-align:bottom;white-space:nowrap;width:36.57%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Nine Months Ended September 30, </b></p></td></tr><tr><td style="vertical-align:bottom;width:24.07%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><b style="font-weight:bold;">Revenue by Service Provided</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;</b></p></td><td colspan="4" style="vertical-align:bottom;white-space:nowrap;width:16.04%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2024</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;</b></p></td><td colspan="4" style="vertical-align:bottom;white-space:nowrap;width:16.04%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2023</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;</b></p></td><td colspan="4" style="vertical-align:bottom;white-space:nowrap;width:16.04%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2024</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;</b></p></td><td colspan="4" style="vertical-align:bottom;white-space:nowrap;width:16.04%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2023</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:24.07%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">Mechanical Segment</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 1,438,617</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">&#160;&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 79.4</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 1,031,310</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">&#160;&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 74.8</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 4,075,305</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">&#160;&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 79.0</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 2,925,848</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">&#160;&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 76.0</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">%</p></td></tr><tr><td style="vertical-align:bottom;width:24.07%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">Electrical Segment</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 373,749</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 20.6</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 346,814</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 25.2</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 1,084,367</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 21.0</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 923,346</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 24.0</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">%</p></td></tr><tr><td style="vertical-align:bottom;width:24.07%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">Total </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.48%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 1,812,366</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 100.0</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.48%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 1,378,124</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 100.0</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.48%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 5,159,672</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 100.0</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.48%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 3,849,194</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 100.0</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">%</p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:24.07%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:24.07%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="10" style="vertical-align:bottom;white-space:nowrap;width:35.03%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Three Months Ended September 30, </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="11" style="vertical-align:bottom;white-space:nowrap;width:36.57%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Nine Months Ended September 30, </b></p></td></tr><tr><td style="vertical-align:bottom;width:24.07%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><b style="font-weight:bold;">Revenue by Type of Customer</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="4" style="vertical-align:bottom;white-space:nowrap;width:16.04%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2024</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="4" style="vertical-align:bottom;white-space:nowrap;width:16.04%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2023</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="4" style="vertical-align:bottom;white-space:nowrap;width:16.04%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2024</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="4" style="vertical-align:bottom;white-space:nowrap;width:16.04%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2023</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td></tr><tr><td style="vertical-align:bottom;width:24.07%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">Technology</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 615,398</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 34.0</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 303,847</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 22.0</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 1,641,525</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 31.8</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 795,327</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 20.7</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">%</p></td></tr><tr><td style="vertical-align:bottom;width:24.07%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">Manufacturing</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 452,157</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 24.9</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 469,173</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 34.0</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 1,439,772</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 27.9</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 1,271,348</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 33.0</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">%</p></td></tr><tr><td style="vertical-align:bottom;width:24.07%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">Education</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 195,737</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 10.8</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 139,206</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 10.1</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 523,153</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 10.1</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 376,637</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 9.8</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">%</p></td></tr><tr><td style="vertical-align:bottom;width:24.07%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">Healthcare</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 149,974</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 8.3</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 133,130</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 9.7</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 424,450</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 8.2</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 431,329</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 11.2</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">%</p></td></tr><tr><td style="vertical-align:bottom;width:24.07%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">Office Buildings</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 109,233</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 6.0</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 104,937</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 7.6</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 326,137</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 6.3</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 299,103</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 7.8</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">%</p></td></tr><tr><td style="vertical-align:bottom;width:24.07%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">Retail, Restaurants and Entertainment</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 114,572</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 6.3</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 77,802</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 5.6</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 309,658</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 6.0</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 234,779</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 6.1</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">%</p></td></tr><tr><td style="vertical-align:bottom;width:24.07%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">Government</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 92,555</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 5.1</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 85,220</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 6.3</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 271,429</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 5.3</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 227,232</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 5.9</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">%</p></td></tr><tr><td style="vertical-align:bottom;width:24.07%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">Multi-Family and Residential</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 33,838</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 1.9</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 45,523</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 3.3</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 110,870</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 2.2</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 136,825</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 3.5</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">%</p></td></tr><tr><td style="vertical-align:bottom;width:24.07%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">Other</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.48%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 48,902</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 2.7</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.48%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 19,286</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 1.4</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.48%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 112,678</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 2.2</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.48%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 76,614</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 2.0</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">%</p></td></tr><tr><td style="vertical-align:bottom;width:24.07%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">Total </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.48%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 1,812,366</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 100.0</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.48%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 1,378,124</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 100.0</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.48%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 5,159,672</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 100.0</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.48%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 3,849,194</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 100.0</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">%</p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:24.07%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:24.07%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="10" style="vertical-align:bottom;white-space:nowrap;width:35.03%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Three Months Ended September 30, </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="11" style="vertical-align:bottom;white-space:nowrap;width:36.57%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Nine Months Ended September 30, </b></p></td></tr><tr><td style="vertical-align:bottom;width:24.07%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><b style="font-weight:bold;">Revenue by Activity Type</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="4" style="vertical-align:bottom;white-space:nowrap;width:16.04%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2024</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="4" style="vertical-align:bottom;white-space:nowrap;width:16.04%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2023</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="4" style="vertical-align:bottom;white-space:nowrap;width:16.04%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2024</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="4" style="vertical-align:bottom;white-space:nowrap;width:16.04%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2023</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td></tr><tr><td style="vertical-align:bottom;width:24.07%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">New Construction</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 949,035</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 52.4</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 798,289</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 57.9</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 2,930,283</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 56.8</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 2,108,153</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 54.8</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">%</p></td></tr><tr><td style="vertical-align:bottom;width:24.07%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">Existing Building Construction</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 570,288</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 31.5</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 305,795</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 22.2</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 1,407,231</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 27.3</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 974,085</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 25.3</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">%</p></td></tr><tr><td style="vertical-align:bottom;width:24.07%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">Service Projects</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 125,249</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 6.9</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 117,202</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 8.5</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 355,643</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 6.9</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 335,053</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 8.7</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">%</p></td></tr><tr><td style="vertical-align:bottom;width:24.07%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">Service Calls, Maintenance and Monitoring</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 167,794</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 9.2</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 156,838</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 11.4</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 466,515</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 9.0</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 431,903</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 11.2</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">%</p></td></tr><tr><td style="vertical-align:bottom;width:24.07%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">Total </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.48%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 1,812,366</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 100.0</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.48%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 1,378,124</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 100.0</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.48%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 5,159,672</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 100.0</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.48%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 3,849,194</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 100.0</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">%</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ContractWithCustomerAssetAndLiabilityTableTextBlock', window );">Schedule of contract assets and liabilities</a></td>
<td class="text"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">Contract assets and liabilities in the Consolidated Balance Sheet consisted of the following amounts as of September 30, 2024 and December 31, 2023 (in thousands):</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:middle;width:61.71%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="position:absolute;top:50%;transform:translate(0,-50%);width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:3.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:14.19%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:3.87%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:3.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:14.15%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:middle;width:61.71%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:17.22%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0.05pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">September 30, 2024</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0.05pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:17.18%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0.05pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">December 31, 2023</b></p></td></tr><tr><td style="vertical-align:middle;width:61.71%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;">Contract assets:</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.19%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.15%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:middle;width:61.71%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="white-space:pre-wrap;">   Costs and estimated earnings in excess of billings, less allowance for credit losses</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.19%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"> 73,934</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.15%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"> 28,084</p></td></tr><tr><td style="vertical-align:middle;width:61.71%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;">Contract liabilities:</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.19%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.15%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:middle;width:61.71%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="white-space:pre-wrap;">   Billings in excess of costs and estimated earnings and deferred revenue</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.19%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"> 1,197,532</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.15%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"> 909,538</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_DisaggregationOfRevenueTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of disaggregation of revenue into categories depicting how nature, amount, timing, and uncertainty of revenue and cash flows are affected by economic factor.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 5<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479806/606-10-50-5<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DisaggregationOfRevenueTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_RevenueFromContractWithCustomerAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_RevenueFromContractWithCustomerAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>34
<FILENAME>R23.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.24.3</span><table class="report" border="0" cellspacing="2" id="idm46664935108176">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Fair Value Measurements (Tables)<br></strong></div></th>
<th class="th" colspan="1">9 Months Ended</th>
</tr>
<tr><th class="th"><div>Sep. 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_FairValueDisclosuresAbstract', window );"><strong>Fair Value Measurements</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_ScheduleOfFairValueAssetsAndLiabilitiesMeasuredOnRecurringBasisTableTextBlock', window );">Summary of fair values and levels within the fair value hierarchy in which the fair value measurements fall for assets and liabilities measured on a recurring basis</a></td>
<td class="text"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">The following table summarizes the fair values, and levels within the fair value hierarchy in which the fair value measurements are included, for assets and liabilities measured on a recurring basis as of September 30, 2024 and December 31, 2023 (in thousands):</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:58.98%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:7.81%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:6.86%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:7.81%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:7.81%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:58.98%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="11" style="vertical-align:bottom;white-space:nowrap;width:39.37%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Fair&#160;Value&#160;Measurements&#160;at&#160;September 30, 2024</b></p></td></tr><tr><td style="vertical-align:bottom;width:58.98%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:8.84%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Level&#160;1</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:7.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Level&#160;2</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:8.84%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Level&#160;3</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:8.84%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Total</b></p></td></tr><tr><td style="vertical-align:bottom;width:58.98%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Cash and cash equivalents</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.81%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 415,583</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.86%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.81%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.81%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 415,583</p></td></tr><tr><td style="vertical-align:bottom;width:58.98%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Contingent earn-out obligations</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.81%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.81%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 103,238</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.81%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 103,238</p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:58.98%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:11pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:11pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:11pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.81%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:11pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:11pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:11pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:11pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:11pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:11pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.81%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:11pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:11pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:11pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.81%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:11pt;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:58.98%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="11" style="vertical-align:bottom;white-space:nowrap;width:39.37%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Fair&#160;Value&#160;Measurements&#160;at&#160;December 31, 2023</b></p></td></tr><tr><td style="vertical-align:bottom;width:58.98%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:8.84%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Level&#160;1</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:7.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Level&#160;2</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:8.84%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Level&#160;3</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:8.84%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Total</b></p></td></tr><tr><td style="vertical-align:bottom;width:58.98%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Cash and cash equivalents</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.81%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 205,150</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.86%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.81%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.81%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 205,150</p></td></tr><tr><td style="vertical-align:bottom;width:58.98%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Life insurance&#8212;cash surrender value</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.81%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 7,473</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.81%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.81%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 7,473</p></td></tr><tr><td style="vertical-align:bottom;width:58.98%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Contingent earn-out obligations</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.81%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.86%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.81%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 44,222</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.81%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 44,222</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationTextBlock', window );">Schedule of reconciliation of the fair value of contingent earn-out obligations that use significant unobservable inputs (Level 3)</a></td>
<td class="text"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">The table below presents a reconciliation of the fair value of our contingent earn-out obligations that use significant unobservable inputs (Level 3) (in thousands):</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:70.19%;"><tr style="height:1pt;"><td style="vertical-align:bottom;white-space:nowrap;width:52.96%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.65%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:3.19%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:18.15%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.65%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.84%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:16.12%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:0.73%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:0.67%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:52.96%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:21.35%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Nine Months Ended </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:18.96%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Year Ended</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.73%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:52.96%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:21.35%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">September 30, 2024</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:18.96%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">December 31, 2023</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.73%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:52.96%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Balance at beginning of period</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.65%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';">&#160;&#160;&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.19%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:18.15%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 44,222</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.65%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';">&#160;&#160;&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.84%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:16.12%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 32,317</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.73%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';">&#160;</span></p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:52.96%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Issuances</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.19%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:18.15%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 51,784</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.84%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:16.12%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 4,315</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.73%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:52.96%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Settlements</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.65%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.19%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:18.15%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (37,202)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.65%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.84%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:16.12%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;">(16,017)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.73%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:52.96%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Adjustments to fair value</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.19%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:18.15%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 44,434</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.84%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:16.12%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 23,607</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.73%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:52.96%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Balance at end of period</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.65%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.19%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:18.15%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 103,238</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.65%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.84%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:16.12%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 44,222</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.73%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</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_FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 fair value measurement of assets using significant unobservable inputs (Level 3), a reconciliation of the beginning and ending balances, separately presenting changes during the period attributable to the following: (1) total gains or losses for the period (realized and unrealized), segregating those gains or losses included in earnings (or changes in net assets) and gains or losses recognized in other comprehensive income (loss), and a description of where those gains or losses included in earnings (or changes in net assets) are reported in the statement of income (or activities); (2) purchases, sales, issues, and settlements (each type disclosed separately); and (3) transfers in and transfers out of Level 3 (for example, transfers due to changes in the observability of significant inputs), by class of asset.</p></div>
<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 820<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 101<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482078/820-10-55-101<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 820<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482106/820-10-50-3<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 820<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482106/820-10-50-2<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 820<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482106/820-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_FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationTextBlock</td>
</tr>
<tr>
<td style="padding-right: 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_FairValueDisclosuresAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FairValueDisclosuresAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ScheduleOfFairValueAssetsAndLiabilitiesMeasuredOnRecurringBasisTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 and liabilities, including [financial] instruments measured at fair value that are classified in stockholders' equity, if any, that are measured at fair value on a recurring basis. The disclosures contemplated herein include the fair value measurements at the reporting date 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 (Level 1), significant other observable inputs (Level 2), and significant unobservable inputs (Level 3).</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 820<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482106/820-10-50-2<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 820<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/2147482106/820-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_ScheduleOfFairValueAssetsAndLiabilitiesMeasuredOnRecurringBasisTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 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>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.3</span><table class="report" border="0" cellspacing="2" id="idm46664934761776">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Acquisitions (Tables)<br></strong></div></th>
<th class="th" colspan="1">9 Months Ended</th>
</tr>
<tr><th class="th"><div>Sep. 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=fix_SummitIndustrialConstructionLlcMember', window );">Summit Texas</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_BusinessAcquisitionLineItems', window );"><strong>Acquisitions</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_ScheduleOfBusinessAcquisitionsByAcquisitionTextBlock', window );">Schedule of acquisition date fair value of consideration transferred and the acquisition date fair value of the identifiable assets acquired and liabilities assumed, including an amount for goodwill</a></td>
<td class="text"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="display:inline-block;text-indent:0pt;width:36pt;"></span>The following summarizes the acquisition date fair value of consideration transferred and the acquisition date fair value of the identifiable assets acquired and liabilities assumed, including an amount for goodwill (in thousands):</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="display:inline-block;text-indent:0pt;width:36pt;"></span><span style="visibility:hidden;">&#8203;</span></p><div style="padding-left:40.5pt;"><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:83.34%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:81.03%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.29%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:16.66%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:81.03%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Consideration transferred:</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:16.66%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:81.03%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="white-space:pre-wrap;">  Cash paid at closing</span></p></td><td style="vertical-align:middle;width:2.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:16.66%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 267,500</p></td></tr><tr><td style="vertical-align:bottom;width:81.03%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="white-space:pre-wrap;">  Working capital adjustment </span></p></td><td style="vertical-align:middle;width:2.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="color:#ff0000;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:16.66%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 14,602</p></td></tr><tr><td style="vertical-align:bottom;width:81.03%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="white-space:pre-wrap;">  Notes issued to former owners</span></p></td><td style="vertical-align:middle;width:2.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:16.66%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 35,000</p></td></tr><tr><td style="vertical-align:bottom;width:81.03%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="white-space:pre-wrap;">  Estimated fair value of contingent earn-out payments</span></p></td><td style="vertical-align:middle;width:2.29%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:16.66%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 42,732</p></td></tr><tr><td style="vertical-align:bottom;width:81.03%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:middle;width:2.29%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:16.66%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 359,834</p></td></tr><tr><td style="vertical-align:bottom;width:81.03%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Recognized amounts of identifiable assets acquired and liabilities assumed:</p></td><td style="vertical-align:middle;width:2.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:16.66%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:81.03%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="white-space:pre-wrap;">  Cash and cash equivalents</span></p></td><td style="vertical-align:middle;width:2.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:16.66%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 171,027</p></td></tr><tr><td style="vertical-align:bottom;width:81.03%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="white-space:pre-wrap;">  Billed and unbilled accounts receivable</span></p></td><td style="vertical-align:middle;width:2.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:16.66%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 59,846</p></td></tr><tr><td style="vertical-align:bottom;width:81.03%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="white-space:pre-wrap;">  Prepaid expenses and other</span></p></td><td style="vertical-align:middle;width:2.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:16.66%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 1,476</p></td></tr><tr><td style="vertical-align:bottom;width:81.03%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="white-space:pre-wrap;">  Cost and estimated earnings in excess of billings</span></p></td><td style="vertical-align:middle;width:2.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:16.66%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 578</p></td></tr><tr><td style="vertical-align:bottom;width:81.03%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="white-space:pre-wrap;">  Property and equipment</span></p></td><td style="vertical-align:middle;width:2.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:16.66%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 2,528</p></td></tr><tr><td style="vertical-align:bottom;width:81.03%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="white-space:pre-wrap;">  Lease right-of-use asset</span></p></td><td style="vertical-align:middle;width:2.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:16.66%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 2,364</p></td></tr><tr><td style="vertical-align:bottom;width:81.03%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="white-space:pre-wrap;">  Goodwill</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:16.66%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 155,345</p></td></tr><tr><td style="vertical-align:bottom;width:81.03%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="white-space:pre-wrap;">  Identifiable intangible assets</span></p></td><td style="vertical-align:middle;width:2.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:16.66%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 170,100</p></td></tr><tr><td style="vertical-align:bottom;width:81.03%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="white-space:pre-wrap;">  Other noncurrent assets</span></p></td><td style="vertical-align:middle;width:2.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:16.66%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 136</p></td></tr><tr><td style="vertical-align:bottom;width:81.03%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="white-space:pre-wrap;">  Accounts payable</span></p></td><td style="vertical-align:middle;width:2.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:16.66%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (15,130)</p></td></tr><tr><td style="vertical-align:bottom;width:81.03%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="white-space:pre-wrap;">  Billings in excess of costs and estimated earnings and deferred revenue</span></p></td><td style="vertical-align:middle;width:2.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:16.66%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (179,895)</p></td></tr><tr><td style="vertical-align:bottom;width:81.03%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="white-space:pre-wrap;">  Current operating lease liabilities</span></p></td><td style="vertical-align:middle;width:2.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:16.66%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (1,495)</p></td></tr><tr><td style="vertical-align:bottom;width:81.03%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="white-space:pre-wrap;">  Accrued expenses and other current liabilities</span></p></td><td style="vertical-align:middle;width:2.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:16.66%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (6,293)</p></td></tr><tr><td style="vertical-align:bottom;width:81.03%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="white-space:pre-wrap;">  Long-term operating lease liabilities</span></p></td><td style="vertical-align:middle;width:2.29%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:16.66%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (753)</p></td></tr><tr><td style="vertical-align:bottom;width:81.03%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:middle;width:2.29%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:16.66%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 359,834</p></td></tr></table></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_ScheduleOfFiniteLivedIntangibleAssetsAcquiredAsPartOfBusinessCombinationTextBlock', window );">Schedule of acquired intangible assets</a></td>
<td class="text"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">The acquired intangible assets include the following (dollars in thousands):</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><div style="padding-left:40.5pt;"><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:84.17%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:48.39%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.19%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;width:20.3%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;width:12.51%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;width:1.72%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;width:1.72%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;width:11.41%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:48.39%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.19%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;width:20.3%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Valuation Method</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;width:12.51%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Estimated Useful Life</b></p></td><td style="vertical-align:bottom;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;width:1.72%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;width:11.41%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Estimated Fair Value</b></p></td></tr><tr><td style="vertical-align:bottom;width:48.39%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Backlog</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.19%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;width:20.3%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;">Excess earnings</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.51%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;">1.8 years</p></td><td style="vertical-align:bottom;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.41%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 35,800</p></td></tr><tr><td style="vertical-align:bottom;width:48.39%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Trade Name</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.19%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;width:20.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;">Relief-from-royalty</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.51%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;">22.9 years</p></td><td style="vertical-align:bottom;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 11,300</p></td></tr><tr><td style="vertical-align:bottom;width:48.39%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Customer Relationships</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.19%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;width:20.3%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;">Excess earnings</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.51%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;">10 years</p></td><td style="vertical-align:bottom;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;width:1.72%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.41%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 123,000</p></td></tr><tr><td style="vertical-align:bottom;width:48.39%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Total</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.19%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;width:20.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;width:12.51%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;width:1.72%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.41%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 170,100</p></td></tr></table></div><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=fix_JSMechanicalContractorsIncMember', window );">J&amp;S Utah</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_BusinessAcquisitionLineItems', window );"><strong>Acquisitions</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_ScheduleOfBusinessAcquisitionsByAcquisitionTextBlock', window );">Schedule of acquisition date fair value of consideration transferred and the acquisition date fair value of the identifiable assets acquired and liabilities assumed, including an amount for goodwill</a></td>
<td class="text"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="display:inline-block;text-indent:0pt;width:36pt;"></span><span style="visibility:hidden;">&#8203;</span></p><div style="padding-left:40.5pt;"><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:85.59%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:82.58%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:3.43%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:13.97%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:82.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Consideration transferred:</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:82.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="white-space:pre-wrap;">  Cash paid at closing</span></p></td><td style="vertical-align:middle;width:3.43%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 100,000</p></td></tr><tr><td style="vertical-align:bottom;width:82.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="white-space:pre-wrap;">  Working capital adjustment </span></p></td><td style="vertical-align:middle;width:3.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="color:#ff0000;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 1,587</p></td></tr><tr><td style="vertical-align:bottom;width:82.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="white-space:pre-wrap;">  Notes issued to former owners</span></p></td><td style="vertical-align:middle;width:3.43%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 10,000</p></td></tr><tr><td style="vertical-align:bottom;width:82.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="white-space:pre-wrap;">  Estimated fair value of contingent earn-out payments</span></p></td><td style="vertical-align:middle;width:3.43%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.97%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 9,052</p></td></tr><tr><td style="vertical-align:bottom;width:82.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:middle;width:3.43%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.97%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 120,639</p></td></tr><tr><td style="vertical-align:bottom;width:82.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Recognized amounts of identifiable assets acquired and liabilities assumed:</p></td><td style="vertical-align:middle;width:3.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:82.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="white-space:pre-wrap;">  Cash and cash equivalents</span></p></td><td style="vertical-align:middle;width:3.43%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 14,802</p></td></tr><tr><td style="vertical-align:bottom;width:82.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="white-space:pre-wrap;">  Billed and unbilled accounts receivable</span></p></td><td style="vertical-align:middle;width:3.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 38,411</p></td></tr><tr><td style="vertical-align:bottom;width:82.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="white-space:pre-wrap;">  Inventory</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.43%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:11pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 230</p></td></tr><tr><td style="vertical-align:bottom;width:82.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="white-space:pre-wrap;">  Prepaid expenses and other</span></p></td><td style="vertical-align:middle;width:3.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 393</p></td></tr><tr><td style="vertical-align:bottom;width:82.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="white-space:pre-wrap;">  Costs and estimated earnings in excess of billings</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.43%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:11pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 728</p></td></tr><tr><td style="vertical-align:bottom;width:82.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="white-space:pre-wrap;">  Property and equipment</span></p></td><td style="vertical-align:middle;width:3.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 2,674</p></td></tr><tr><td style="vertical-align:bottom;width:82.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="white-space:pre-wrap;">  Lease right-of-use asset</span></p></td><td style="vertical-align:middle;width:3.43%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 4,552</p></td></tr><tr><td style="vertical-align:bottom;width:82.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="white-space:pre-wrap;">  Goodwill</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 40,706</p></td></tr><tr><td style="vertical-align:bottom;width:82.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="white-space:pre-wrap;">  Identifiable intangible assets</span></p></td><td style="vertical-align:middle;width:3.43%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 63,300</p></td></tr><tr><td style="vertical-align:bottom;width:82.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="white-space:pre-wrap;">  Other noncurrent assets</span></p></td><td style="vertical-align:middle;width:3.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 10</p></td></tr><tr><td style="vertical-align:bottom;width:82.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="white-space:pre-wrap;">  Accounts payable</span></p></td><td style="vertical-align:middle;width:3.43%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (20,649)</p></td></tr><tr><td style="vertical-align:bottom;width:82.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="white-space:pre-wrap;">  Billings in excess of costs and estimated earnings and deferred revenue</span></p></td><td style="vertical-align:middle;width:3.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (19,188)</p></td></tr><tr><td style="vertical-align:bottom;width:82.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="white-space:pre-wrap;">  Current operating lease liabilities</span></p></td><td style="vertical-align:middle;width:3.43%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (133)</p></td></tr><tr><td style="vertical-align:bottom;width:82.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="white-space:pre-wrap;">  Accrued expenses and other current liabilities</span></p></td><td style="vertical-align:middle;width:3.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (826)</p></td></tr><tr><td style="vertical-align:bottom;width:82.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="white-space:pre-wrap;">  Long-term debt</span></p></td><td style="vertical-align:middle;width:3.43%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (59)</p></td></tr><tr><td style="vertical-align:bottom;width:82.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="white-space:pre-wrap;">  Long-term operating lease liabilities</span></p></td><td style="vertical-align:middle;width:3.43%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.97%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (4,312)</p></td></tr><tr><td style="vertical-align:bottom;width:82.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:middle;width:3.43%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.97%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 120,639</p></td></tr></table></div><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ScheduleOfFiniteLivedIntangibleAssetsAcquiredAsPartOfBusinessCombinationTextBlock', window );">Schedule of acquired intangible assets</a></td>
<td class="text"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">The acquired intangible assets include the following (dollars in thousands):</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><div style="padding-left:40.5pt;"><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:85.17%;"><tr style="height:1pt;"><td style="vertical-align:bottom;white-space:nowrap;width:49.12%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.24%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:19.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.24%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:14.76%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.25%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.21%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:49.12%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:19.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.76%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Estimated</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.25%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Estimated</b></p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:49.12%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:19.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Valuation Method</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.76%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Useful Life</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.25%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.3%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Fair Value</b></p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:49.12%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Backlog</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:19.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;">Excess earnings</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.76%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;">1.8 years</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.25%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.21%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 12,900</p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:49.12%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Trade Name</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:19.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;">Relief-from-royalty</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.76%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;">22 years</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.25%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.21%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 10,600</p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:49.12%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Customer Relationships</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:19.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;">Excess earnings</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.76%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;">9 years</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.25%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.21%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.08%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 39,800</p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:49.12%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Total</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:19.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.76%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.25%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.21%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.08%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 63,300</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_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_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_ScheduleOfFiniteLivedIntangibleAssetsAcquiredAsPartOfBusinessCombinationTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 finite-lived intangible assets acquired as part of a business combination or through an asset purchase, by major class and in total, including the value of the asset acquired, any significant residual value (the expected value of the asset at the end of its useful life) and the weighted-average amortization 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 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></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ScheduleOfFiniteLivedIntangibleAssetsAcquiredAsPartOfBusinessCombinationTextBlock</td>
</tr>
<tr>
<td style="padding-right: 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=fix_SummitIndustrialConstructionLlcMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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=fix_SummitIndustrialConstructionLlcMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><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=fix_JSMechanicalContractorsIncMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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=fix_JSMechanicalContractorsIncMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>36
<FILENAME>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.3</span><table class="report" border="0" cellspacing="2" id="idm46665040765296">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Goodwill and Identifiable Intangible Assets, Net (Tables)<br></strong></div></th>
<th class="th" colspan="1">9 Months Ended</th>
</tr>
<tr><th class="th"><div>Sep. 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 Identifiable Intangible Assets, Net</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_ScheduleOfGoodwillTextBlock', window );">Schedule of changes in the carrying amount of goodwill</a></td>
<td class="text"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">The changes in the carrying amount of goodwill are as follows (in thousands):</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:-0.20061874%;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:58.58%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.63%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.42%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:13.1%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.63%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.35%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:11.8%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.63%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:7.78%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:58.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.63%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:14.53%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Mechanical Segment</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.63%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:13.15%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Electrical Segment</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.63%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:8.81%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Total</b></p></td></tr><tr><td style="vertical-align:bottom;width:58.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Balance at December 31, 2022</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.63%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.42%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.1%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 363,929</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.63%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.8%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 247,860</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.63%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.78%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 611,789</p></td></tr><tr><td style="vertical-align:bottom;width:58.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Acquisitions and purchase price adjustments (See Note&#160;5)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.63%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.42%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.1%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 29,347</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.63%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.35%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.8%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 25,698</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.63%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.78%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 55,045</p></td></tr><tr><td style="vertical-align:bottom;width:58.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Balance at December 31, 2023</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.63%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.42%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.1%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 393,276</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.63%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.8%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 273,558</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.63%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.78%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 666,834</p></td></tr><tr><td style="vertical-align:bottom;width:58.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Acquisitions and purchase price adjustments (See Note&#160;5)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.63%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.42%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.1%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 208,159</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.63%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.35%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.8%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 200</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.63%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.78%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 208,359</p></td></tr><tr><td style="vertical-align:bottom;width:58.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Balance at September 30, 2024</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.63%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.42%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.1%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 601,435</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.63%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.35%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.8%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 273,758</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.63%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.78%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 875,193</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_ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock', window );">Schedule of future amortization expense of identifiable intangible assets</a></td>
<td class="text"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">At September 30, 2024, future amortization expense of identifiable intangible assets is as follows (in thousands):</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:60%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:81.36%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:3.42%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.88%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:13.03%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:0.29%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:81.36%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Year ending December 31&#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;&#160;&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.88%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.03%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;&#160;&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:81.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">2024 (remainder of the year)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.42%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.88%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:11pt;">$</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.03%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 22,042</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:81.36%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">2025</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.88%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.03%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 66,576</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:81.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">2026</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.42%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.88%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.03%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 55,961</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:81.36%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">2027</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.88%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.03%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 53,650</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:81.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">2028</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.42%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.88%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.03%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 52,103</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:81.36%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">Thereafter</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.88%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.03%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 206,127</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:81.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 18pt;">Total</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.42%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.88%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.03%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 456,459</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</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_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_ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 amount of amortization expense expected to be recorded in succeeding fiscal years for finite-lived intangible assets.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 350<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 40<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482640/350-30-55-40<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<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_ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>37
<FILENAME>R26.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.24.3</span><table class="report" border="0" cellspacing="2" id="idm46664935087728">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Debt Obligations (Tables)<br></strong></div></th>
<th class="th" colspan="1">9 Months Ended</th>
</tr>
<tr><th class="th"><div>Sep. 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_ScheduleOfDebtTableTextBlock', window );">Schedule of components of debt obligations</a></td>
<td class="text"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">Debt obligations consist of the following (in thousands):</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:79.99%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:70.79%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;width:2.05%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.81%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.76%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.05%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.27%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;width:0.51%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:70.79%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;width:2.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:12.57%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">September 30, </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.99%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">December 31, </b></p></td><td style="vertical-align:bottom;width:0.51%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:70.79%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;width:2.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:12.57%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2024 </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.99%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2023</b></p></td><td style="vertical-align:bottom;width:0.51%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td></tr><tr><td style="vertical-align:bottom;width:70.79%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Revolving credit facility</p></td><td style="vertical-align:bottom;width:2.05%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.81%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.76%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.05%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.27%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;width:0.51%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:70.79%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Notes to former owners</p></td><td style="vertical-align:bottom;width:2.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.81%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.76%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 67,593</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.27%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 44,070</p></td><td style="vertical-align:bottom;width:0.51%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:70.79%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Other debt</p></td><td style="vertical-align:bottom;width:2.05%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.81%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.76%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 768</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.05%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.27%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 142</p></td><td style="vertical-align:bottom;width:0.51%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:70.79%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">Total debt</p></td><td style="vertical-align:bottom;width:2.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;"><span style="margin-left:0pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.81%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.76%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 68,361</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.27%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 44,212</p></td><td style="vertical-align:bottom;width:0.51%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;"><span style="margin-left:0pt;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:70.79%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">Less&#8212;current portion</p></td><td style="vertical-align:bottom;width:2.05%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;"><span style="margin-left:0pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.81%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.76%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (6,046)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.05%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.27%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (4,867)</p></td><td style="vertical-align:bottom;width:0.51%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;"><span style="margin-left:0pt;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:70.79%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">Total long-term portion of debt</p></td><td style="vertical-align:bottom;width:2.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;"><span style="margin-left:0pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.81%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.76%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 62,315</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.27%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 39,345</p></td><td style="vertical-align:bottom;width:0.51%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;"><span style="margin-left:0pt;visibility:hidden;">&#8203;</span></p></td></tr></table><span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_fix_ScheduleOfAdditionalMarginsTableTextBlock', window );">Summary of additional margins</a></td>
<td class="text"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:53.32%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;width:7.13%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.71%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;width:7.55%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.74%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;width:6.5%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.74%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;width:6.39%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.71%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;width:6.79%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.71%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:53.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="9" style="vertical-align:bottom;white-space:nowrap;width:43.31%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Net Leverage Ratio</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.71%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:53.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;width:7.13%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Less&#160;than&#160;</b><b style="font-weight:bold;"><br/></b><b style="font-weight:bold;">1.00</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.71%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;width:7.55%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">1.00&#160;to&#160;less than 1.75</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;width:6.5%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">1.75&#160;to less than&#160;2.50</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;width:6.39%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2.50&#160;to less than 3.00</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.71%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;width:6.79%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">3.00 or greater</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.71%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:53.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Additional Per Annum Interest Margin Added Under:</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.13%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.71%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.55%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.5%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.39%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.71%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.79%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.71%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:53.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">Base Rate Loan Option</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.13%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">0.00 </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.71%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.55%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 0.25</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">%&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.5%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 0.50</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">%&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.39%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 0.75</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.71%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.79%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 1.00</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.71%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">%</p></td></tr><tr><td style="vertical-align:bottom;width:53.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">SOFR Loan Option</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.13%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 1.00</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.71%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.55%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 1.25</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.5%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 1.50</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.39%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 1.75</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.71%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.79%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 2.00</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.71%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">%</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_DebtInstrumentAxis=fix_SubordinateDebtAndPromissoryNoteMember', window );">Notes to Former Owners</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_ScheduleOfMaturitiesOfLongTermDebtTableTextBlock', window );">Schedule of future principal payments of notes to former owners</a></td>
<td class="text">At September 30, 2024, future principal payments of notes to former owners by maturity year are as follows (dollars in thousands):<p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:79.99%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:52.88%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:3.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.86%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:19.49%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:3.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:16.1%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:3.53%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:52.88%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;width:3.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:21.36%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Balance at</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:19.63%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Range of Stated</b></p></td></tr><tr><td style="vertical-align:bottom;width:52.88%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;width:3.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:21.36%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">September 30, 2024</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:19.63%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;"> Interest Rates</b></p></td></tr><tr><td style="vertical-align:bottom;width:52.88%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">2025</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.86%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:11pt;">$</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:19.49%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 5,968</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:16.1%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">2.3 - 2.5</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:11pt;">%</span></p></td></tr><tr><td style="vertical-align:bottom;width:52.88%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">2026</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:19.49%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 30,625</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:16.1%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">2.5 - 5.5</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:11pt;">%</span></p></td></tr><tr><td style="vertical-align:bottom;width:52.88%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">2027</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.86%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:19.49%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 26,000</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:16.1%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 5.5</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:11pt;">%</span></p></td></tr><tr><td style="vertical-align:bottom;width:52.88%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">2028</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.86%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:19.49%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 5,000</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:16.1%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 5.5</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:11pt;">%</span></p></td></tr><tr><td style="vertical-align:bottom;width:52.88%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 18pt;">Total</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.86%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:19.49%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 67,593</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:16.1%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:11pt;visibility:hidden;">&#8203;</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_fix_ScheduleOfAdditionalMarginsTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 additional margins 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;">fix_ScheduleOfAdditionalMarginsTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>fix_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ScheduleOfDebtTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of information pertaining to short-term and long-debt instruments or arrangements, including but not limited to identification of terms, features, collateral requirements and other information necessary to a fair presentation.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ScheduleOfDebtTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ScheduleOfMaturitiesOfLongTermDebtTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 maturity and sinking fund requirement for long-term debt.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -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_ScheduleOfMaturitiesOfLongTermDebtTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 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_DebtInstrumentAxis=fix_SubordinateDebtAndPromissoryNoteMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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=fix_SubordinateDebtAndPromissoryNoteMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><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>38
<FILENAME>R27.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.24.3</span><table class="report" border="0" cellspacing="2" id="idm46664927009584">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Leases (Tables)<br></strong></div></th>
<th class="th" colspan="1">9 Months Ended</th>
</tr>
<tr><th class="th"><div>Sep. 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_LeasesAbstract', window );"><strong>Leases</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_fix_ScheduleOfLeaseAssetsAndLiabilitiesTableTextBlock', window );">Schedule of operating lease assets and liabilities</a></td>
<td class="text"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">The following table summarizes the operating lease assets and liabilities included in the Consolidated Balance Sheet as follows (in thousands):</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:75%;"><tr style="height:1pt;"><td style="vertical-align:bottom;white-space:nowrap;width:60.43%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:3.15%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:15.19%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:3.47%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:3.04%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:14.69%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:60.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.15%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:15.19%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.47%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.69%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:middle;width:60.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:18.35%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">September 30, 2024</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.47%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:17.73%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">December 31, 2023</b></p></td></tr><tr><td style="vertical-align:middle;width:60.43%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Operating lease right-of-use assets</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.15%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:15.19%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 225,301</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.47%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.69%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 205,712</p></td></tr><tr><td style="vertical-align:middle;width:60.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Operating lease liabilities:</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.15%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:15.19%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.47%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.69%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:middle;width:60.43%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="-sec-ix-hidden:Hidden_CXTdk2oMZES1sCPvqd8w5w;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;white-space:pre-wrap;">   Other current liabilities</span></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.15%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:15.19%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 26,979</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.47%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.69%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 24,426</p></td></tr><tr><td style="vertical-align:middle;width:60.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="white-space:pre-wrap;">   Long-term operating lease liabilities</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.15%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:15.19%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 208,268</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.47%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.04%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.69%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 188,136</p></td></tr><tr><td style="vertical-align:middle;width:60.43%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Total operating lease liabilities</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.15%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:15.19%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 235,247</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.47%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.04%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.69%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 212,562</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_LesseeOperatingLeaseLiabilityMaturityTableTextBlock', window );">Schedule of maturities of lease liabilities</a></td>
<td class="text"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">The maturities of operating lease liabilities are as follows (in thousands):</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:79.99%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:85.46%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;width:2.54%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;width:1.54%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;width:10.44%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:85.46%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Year ending December 31&#8212;</p></td><td style="vertical-align:bottom;width:2.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;width:1.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;width:10.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;"><span style="margin-left:0pt;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:85.46%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">2024 (excluding the nine months ended September 30, 2024)</p></td><td style="vertical-align:bottom;width:2.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;"><span style="margin-left:0pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;width:1.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0pt 0pt;"> 10,146</p></td></tr><tr><td style="vertical-align:bottom;width:85.46%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">2025</p></td><td style="vertical-align:bottom;width:2.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;"><span style="margin-left:0pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;width:1.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0pt 0pt;"> 39,434</p></td></tr><tr><td style="vertical-align:bottom;width:85.46%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">2026</p></td><td style="vertical-align:bottom;width:2.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;"><span style="margin-left:0pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;width:1.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0pt 0pt;"> 35,646</p></td></tr><tr><td style="vertical-align:bottom;width:85.46%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">2027</p></td><td style="vertical-align:bottom;width:2.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;"><span style="margin-left:0pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;width:1.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0pt 0pt;"> 31,101</p></td></tr><tr><td style="vertical-align:bottom;width:85.46%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">2028</p></td><td style="vertical-align:bottom;width:2.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;"><span style="margin-left:0pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;width:1.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0pt 0pt;"> 27,234</p></td></tr><tr><td style="vertical-align:bottom;width:85.46%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">Thereafter</p></td><td style="vertical-align:bottom;width:2.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;"><span style="margin-left:0pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;width:1.54%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.44%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0pt 0pt;"> 189,877</p></td></tr><tr><td style="vertical-align:bottom;width:85.46%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 24pt;">Total lease payments</p></td><td style="vertical-align:bottom;width:2.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 24pt;"><span style="margin-left:0pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;width:1.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0pt 0pt;"> 333,438</p></td></tr><tr><td style="vertical-align:bottom;width:85.46%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 24pt;">Less&#8212;present value discount</p></td><td style="vertical-align:bottom;width:2.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 24pt;"><span style="margin-left:0pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;width:1.54%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.44%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (98,191)</p></td></tr><tr><td style="vertical-align:bottom;width:85.46%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 24pt;">Present value of operating lease liabilities</p></td><td style="vertical-align:bottom;width:2.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 24pt;"><span style="margin-left:0pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;width:1.54%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.44%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0pt 0pt;"> 235,247</p></td></tr></table><span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_fix_ScheduleOfSupplementalInformationRelatedToLeasesTableTextBlock', window );">Schedule of supplemental information related to leases</a></td>
<td class="text"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">Supplemental information related to operating leases was as follows (in thousands):</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:middle;width:48.32%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="position:absolute;top:50%;transform:translate(0,-50%);width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.29%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.68%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.28%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.59%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.25%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.22%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.61%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.24%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.21%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:48.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="5" style="vertical-align:bottom;white-space:nowrap;width:25.47%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Three Months Ended September 30, </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="5" style="vertical-align:bottom;white-space:nowrap;width:24.55%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Nine Months Ended September 30, </b></p></td></tr><tr><td style="vertical-align:bottom;width:48.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.9%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2024</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.68%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.88%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2023</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2024</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.61%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.46%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2023</b></p></td></tr><tr><td style="vertical-align:middle;width:48.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">Cash paid for amounts included in the measurement of operating lease liabilities</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 10,061</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.68%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.28%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.59%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 7,293</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.25%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 29,377</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.61%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.21%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 21,362</p></td></tr><tr><td style="vertical-align:middle;width:48.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">Operating lease right-of-use assets obtained in exchange for lease liabilities</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 6,657</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.68%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.28%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.59%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 82,352</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.25%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 41,989</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.61%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.21%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 98,102</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;font-weight:bold;visibility:hidden;">&#8203;</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_fix_ScheduleOfLeaseAssetsAndLiabilitiesTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 lease assets and 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;">fix_ScheduleOfLeaseAssetsAndLiabilitiesTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>fix_</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_fix_ScheduleOfSupplementalInformationRelatedToLeasesTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of supplemental information related to leases.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">fix_ScheduleOfSupplementalInformationRelatedToLeasesTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>fix_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LeasesAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LeasesAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LesseeOperatingLeaseLiabilityMaturityTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of undiscounted cash flows of lessee's operating lease liability. Includes, but is not limited to, reconciliation of undiscounted cash flows to operating lease liability recognized in statement of financial position.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478964/842-20-50-6<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LesseeOperatingLeaseLiabilityMaturityTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>39
<FILENAME>R28.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.24.3</span><table class="report" border="0" cellspacing="2" id="idm46664934994224">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Stockholders' Equity (Tables)<br></strong></div></th>
<th class="th" colspan="1">9 Months Ended</th>
</tr>
<tr><th class="th"><div>Sep. 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_StockholdersEquityNoteAbstract', window );"><strong>Stockholders' Equity</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_ScheduleOfWeightedAverageNumberOfSharesTableTextBlock', window );">Reconciliation of number of shares outstanding with the number of shares used in computing basic and diluted earnings per share</a></td>
<td class="text"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">The following table reconciles the number of shares outstanding with the number of shares used in computing basic and diluted earnings per share for each of the periods presented (in thousands):</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:90%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:60.12%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.82%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.39%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.82%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:7.64%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.82%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.4%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.82%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:7.65%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:0.45%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:60.12%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td colspan="3" style="vertical-align:bottom;white-space:nowrap;width:17.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Three Months Ended </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td colspan="3" style="vertical-align:bottom;white-space:nowrap;width:17.88%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Nine Months Ended </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.45%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:60.12%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="3" style="vertical-align:bottom;white-space:nowrap;width:17.86%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">September 30, </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="3" style="vertical-align:bottom;white-space:nowrap;width:17.88%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">September 30, </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.45%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:60.12%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.39%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2024</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.64%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2023</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.4%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2024</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.65%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2023</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.45%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td></tr><tr><td style="vertical-align:bottom;width:60.12%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Common shares outstanding, end of period</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.39%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 35,593</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 35,760</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.4%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 35,593</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.65%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 35,760</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.45%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:60.12%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Effect of using weighted average common shares outstanding</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.39%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 76</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.64%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 60</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.4%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 125</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.65%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 59</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.45%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:60.12%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Shares used in computing earnings per share&#8212;basic</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.39%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 35,669</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 35,820</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.4%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 35,718</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.65%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 35,819</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.45%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:60.12%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Effect of shares issuable under stock option plans based on the treasury stock method</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.39%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 30</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 28</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.4%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 30</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 26</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.45%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:60.12%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Effect of restricted and contingently issuable shares</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.39%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 56</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.64%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 69</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.4%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 56</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.65%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 65</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.45%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:60.12%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Shares used in computing earnings per share&#8212;diluted</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.39%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 35,755</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.64%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 35,917</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.4%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 35,804</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.65%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 35,910</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.45%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</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_ScheduleOfWeightedAverageNumberOfSharesTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 weighted average number of shares used in calculating basic net earnings per share (or unit) and diluted earnings per share (or unit).</p></div>
<a href="javascript: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 260<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<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_ScheduleOfWeightedAverageNumberOfSharesTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 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_StockholdersEquityNoteAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_StockholdersEquityNoteAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance 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>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.3</span><table class="report" border="0" cellspacing="2" id="idm46665051430768">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Segment Information (Tables)<br></strong></div></th>
<th class="th" colspan="1">9 Months Ended</th>
</tr>
<tr><th class="th"><div>Sep. 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 Information</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ScheduleOfSegmentReportingInformationBySegmentTextBlock', window );">Summary of information about reportable segments</a></td>
<td class="text">The following tables present information about our reportable segments (in thousands):<p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:89%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:34.37%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.39%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.39%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.99%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:34.37%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="11" style="vertical-align:bottom;white-space:nowrap;width:62.8%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Three Months Ended September 30, 2024</b></p></td></tr><tr><td style="vertical-align:bottom;width:34.37%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;width:2.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td colspan="2" style="vertical-align:bottom;width:13.11%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Mechanical Segment</b></p></td><td style="vertical-align:bottom;width:2.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td colspan="2" style="vertical-align:bottom;width:13.11%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Electrical Segment</b></p></td><td style="vertical-align:bottom;width:2.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td colspan="2" style="vertical-align:bottom;width:14.37%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Corporate</b></p></td><td style="vertical-align:bottom;width:2.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td colspan="2" style="vertical-align:bottom;width:13.72%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Consolidated</b></p></td></tr><tr><td style="vertical-align:bottom;width:34.37%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Revenue</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.39%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 1,438,617</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.39%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 373,749</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.65%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.99%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 1,812,366</p></td></tr><tr><td style="vertical-align:bottom;width:34.37%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Gross Profit</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.39%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 292,372</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.39%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 89,342</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.99%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 381,714</p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:34.37%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:11pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:11pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:11pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.39%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:11pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:11pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:11pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.39%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:11pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:11pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:11pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:11pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:11pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:11pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.99%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:11pt;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:34.37%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="11" style="vertical-align:bottom;white-space:nowrap;width:62.8%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Three Months Ended September 30, 2023</b></p></td></tr><tr><td style="vertical-align:bottom;width:34.37%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;width:2.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td colspan="2" style="vertical-align:bottom;width:13.11%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Mechanical Segment</b></p></td><td style="vertical-align:bottom;width:2.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td colspan="2" style="vertical-align:bottom;width:13.11%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Electrical Segment</b></p></td><td style="vertical-align:bottom;width:2.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td colspan="2" style="vertical-align:bottom;width:14.37%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Corporate</b></p></td><td style="vertical-align:bottom;width:2.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td colspan="2" style="vertical-align:bottom;width:13.72%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Consolidated</b></p></td></tr><tr><td style="vertical-align:bottom;width:34.37%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Revenue</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.39%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 1,031,310</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.39%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 346,814</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.65%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.99%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 1,378,124</p></td></tr><tr><td style="vertical-align:bottom;width:34.37%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Gross Profit</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.39%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 210,147</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.39%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 67,352</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.99%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 277,499</p></td></tr><tr><td style="vertical-align:bottom;width:34.37%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.39%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.39%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.99%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:34.37%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="11" style="vertical-align:bottom;white-space:nowrap;width:62.8%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Nine Months Ended September 30, 2024</b></p></td></tr><tr><td style="vertical-align:bottom;width:34.37%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;width:2.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td colspan="2" style="vertical-align:bottom;width:13.11%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Mechanical Segment</b></p></td><td style="vertical-align:bottom;width:2.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td colspan="2" style="vertical-align:bottom;width:13.11%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Electrical Segment</b></p></td><td style="vertical-align:bottom;width:2.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td colspan="2" style="vertical-align:bottom;width:14.37%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Corporate</b></p></td><td style="vertical-align:bottom;width:2.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td colspan="2" style="vertical-align:bottom;width:13.72%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Consolidated</b></p></td></tr><tr><td style="vertical-align:bottom;width:34.37%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Revenue</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.39%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 4,075,305</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.39%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 1,084,367</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.65%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.99%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 5,159,672</p></td></tr><tr><td style="vertical-align:bottom;width:34.37%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Gross Profit</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.39%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 789,056</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.39%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 253,617</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.99%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 1,042,673</p></td></tr><tr><td style="vertical-align:bottom;width:34.37%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.39%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.39%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.99%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:34.37%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="11" style="vertical-align:bottom;white-space:nowrap;width:62.8%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Nine Months Ended September 30, 2023</b></p></td></tr><tr><td style="vertical-align:bottom;width:34.37%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;width:2.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td colspan="2" style="vertical-align:bottom;width:13.11%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Mechanical Segment</b></p></td><td style="vertical-align:bottom;width:2.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td colspan="2" style="vertical-align:bottom;width:13.11%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Electrical Segment</b></p></td><td style="vertical-align:bottom;width:2.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td colspan="2" style="vertical-align:bottom;width:14.37%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Corporate</b></p></td><td style="vertical-align:bottom;width:2.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td colspan="2" style="vertical-align:bottom;width:13.72%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Consolidated</b></p></td></tr><tr><td style="vertical-align:bottom;width:34.37%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Revenue</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.39%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 2,925,848</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.39%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 923,346</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.65%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.99%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 3,849,194</p></td></tr><tr><td style="vertical-align:bottom;width:34.37%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Gross Profit</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.39%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 547,695</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.39%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 163,129</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.99%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 710,824</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_ScheduleOfSegmentReportingInformationBySegmentTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of the profit or loss and total assets for each reportable segment. An entity discloses certain information on each reportable segment if the amounts (a) are included in the measure of segment profit or loss reviewed by the chief operating decision maker or (b) are otherwise regularly provided to the chief operating decision maker, even if not included in that measure of segment profit or loss.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 25<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-25<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 22<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-22<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 30<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-30<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ScheduleOfSegmentReportingInformationBySegmentTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_SegmentReportingAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SegmentReportingAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>41
<FILENAME>R30.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.24.3</span><table class="report" border="0" cellspacing="2" id="idm46664935165920">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Summary of Significant Accounting Policies and Estimates - Income Taxes (Details)<br> $ in Millions</strong></div></th>
<th class="th" colspan="1">1 Months Ended</th>
</tr>
<tr><th class="th">
<div>Sep. 30, 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_AccountingPoliciesAbstract', window );"><strong>Summary of Significant Accounting Policies and Estimates</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_IncreaseDecreaseInIncomeTaxesReceivable', window );">Refund claim for overpayment</a></td>
<td class="nump">$ 107.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_AccountingPoliciesAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AccountingPoliciesAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncreaseDecreaseInIncomeTaxesReceivable">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 income taxes receivable, which represents the amount due from tax authorities for refunds of overpayments or recoveries of income taxes 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_IncreaseDecreaseInIncomeTaxesReceivable</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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>42
<FILENAME>R31.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.24.3</span><table class="report" border="0" cellspacing="2" id="idm46664935122256">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Summary of Significant Accounting Policies and Estimates - Investments (Details)<br> $ in Millions</strong></div></th>
<th class="th">
<div>Sep. 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_AccountingPoliciesAbstract', window );"><strong>Summary of Significant Accounting Policies and Estimates</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_EquitySecuritiesWithoutReadilyDeterminableFairValueAmount', window );">Investment fair value</a></td>
<td class="nump">$ 6.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_AccountingPoliciesAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AccountingPoliciesAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueAmount">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of investment in equity security without readily determinable fair value.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 321<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479536/321-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_EquitySecuritiesWithoutReadilyDeterminableFairValueAmount</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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>43
<FILENAME>R32.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.24.3</span><table class="report" border="0" cellspacing="2" id="idm46664934993728">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Revenue from Contracts with Customers - Narratives (Details)<br></strong></div></th>
<th class="th" colspan="2">3 Months Ended</th>
<th class="th" colspan="2">9 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Sep. 30, 2024</div></th>
<th class="th"><div>Sep. 30, 2023</div></th>
<th class="th"><div>Sep. 30, 2024</div></th>
<th class="th"><div>Sep. 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_RevenueFromContractWithCustomerAbstract', window );"><strong>Revenue from Contracts with Customers</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_fix_ContractWithCustomerPerformanceObligationSatisfiedInPreviousPeriodPercentage', window );">Percentage impact on revenue from performance obligations satisfied in previous period</a></td>
<td class="nump">1.70%<span></span>
</td>
<td class="nump">0.80%<span></span>
</td>
<td class="nump">2.70%<span></span>
</td>
<td class="nump">1.30%<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_fix_ContractWithCustomerPerformanceObligationSatisfiedInPreviousPeriodPercentage">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 revenue attributable to performance obligation satisfied or partially satisfied in previous reporting periods. Includes, but is not limited to, change in transaction 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;">fix_ContractWithCustomerPerformanceObligationSatisfiedInPreviousPeriodPercentage</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>fix_</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_RevenueFromContractWithCustomerAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_RevenueFromContractWithCustomerAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>44
<FILENAME>R33.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.24.3</span><table class="report" border="0" cellspacing="2" id="idm46664931965936">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Revenue from Contracts with Customers - Disaggregation of Revenue (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="2">3 Months Ended</th>
<th class="th" colspan="2">9 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Sep. 30, 2024</div></th>
<th class="th"><div>Sep. 30, 2023</div></th>
<th class="th"><div>Sep. 30, 2024</div></th>
<th class="th"><div>Sep. 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_DisaggregationOfRevenueLineItems', window );"><strong>Disaggregation of Revenue</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_Revenues', window );">Revenue</a></td>
<td class="nump">$ 1,812,366<span></span>
</td>
<td class="nump">$ 1,378,124<span></span>
</td>
<td class="nump">$ 5,159,672<span></span>
</td>
<td class="nump">$ 3,849,194<span></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_fix_PercentageOfRevenueFromContractWithCustomer', window );">Percentage of revenue from contract with customer (as a percent)</a></td>
<td class="nump">100.00%<span></span>
</td>
<td class="nump">100.00%<span></span>
</td>
<td class="nump">100.00%<span></span>
</td>
<td class="nump">100.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_StatementBusinessSegmentsAxis=fix_NewConstructionMember', window );">New Construction</a></td>
<td class="text">&#160;<span></span>
</td>
<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_DisaggregationOfRevenueLineItems', window );"><strong>Disaggregation of Revenue</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_Revenues', window );">Revenue</a></td>
<td class="nump">$ 949,035<span></span>
</td>
<td class="nump">$ 798,289<span></span>
</td>
<td class="nump">$ 2,930,283<span></span>
</td>
<td class="nump">$ 2,108,153<span></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_fix_PercentageOfRevenueFromContractWithCustomer', window );">Percentage of revenue from contract with customer (as a percent)</a></td>
<td class="nump">52.40%<span></span>
</td>
<td class="nump">57.90%<span></span>
</td>
<td class="nump">56.80%<span></span>
</td>
<td class="nump">54.80%<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StatementBusinessSegmentsAxis=fix_ExistingBuildingConstructionMember', window );">Existing Building Construction</a></td>
<td class="text">&#160;<span></span>
</td>
<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_DisaggregationOfRevenueLineItems', window );"><strong>Disaggregation of Revenue</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_Revenues', window );">Revenue</a></td>
<td class="nump">$ 570,288<span></span>
</td>
<td class="nump">$ 305,795<span></span>
</td>
<td class="nump">$ 1,407,231<span></span>
</td>
<td class="nump">$ 974,085<span></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_fix_PercentageOfRevenueFromContractWithCustomer', window );">Percentage of revenue from contract with customer (as a percent)</a></td>
<td class="nump">31.50%<span></span>
</td>
<td class="nump">22.20%<span></span>
</td>
<td class="nump">27.30%<span></span>
</td>
<td class="nump">25.30%<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=fix_ServiceProjectsMember', window );">Service Projects</a></td>
<td class="text">&#160;<span></span>
</td>
<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_DisaggregationOfRevenueLineItems', window );"><strong>Disaggregation of Revenue</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_Revenues', window );">Revenue</a></td>
<td class="nump">$ 125,249<span></span>
</td>
<td class="nump">$ 117,202<span></span>
</td>
<td class="nump">$ 355,643<span></span>
</td>
<td class="nump">$ 335,053<span></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_fix_PercentageOfRevenueFromContractWithCustomer', window );">Percentage of revenue from contract with customer (as a percent)</a></td>
<td class="nump">6.90%<span></span>
</td>
<td class="nump">8.50%<span></span>
</td>
<td class="nump">6.90%<span></span>
</td>
<td class="nump">8.70%<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=fix_ServiceCallsMaintenanceAndMonitoringMember', window );">Service Calls, Maintenance and Monitoring</a></td>
<td class="text">&#160;<span></span>
</td>
<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_DisaggregationOfRevenueLineItems', window );"><strong>Disaggregation of Revenue</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_Revenues', window );">Revenue</a></td>
<td class="nump">$ 167,794<span></span>
</td>
<td class="nump">$ 156,838<span></span>
</td>
<td class="nump">$ 466,515<span></span>
</td>
<td class="nump">$ 431,903<span></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_fix_PercentageOfRevenueFromContractWithCustomer', window );">Percentage of revenue from contract with customer (as a percent)</a></td>
<td class="nump">9.20%<span></span>
</td>
<td class="nump">11.40%<span></span>
</td>
<td class="nump">9.00%<span></span>
</td>
<td class="nump">11.20%<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_MajorCustomersAxis=fix_TechnologyMember', window );">Technology</a></td>
<td class="text">&#160;<span></span>
</td>
<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_DisaggregationOfRevenueLineItems', window );"><strong>Disaggregation of Revenue</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_Revenues', window );">Revenue</a></td>
<td class="nump">$ 615,398<span></span>
</td>
<td class="nump">$ 303,847<span></span>
</td>
<td class="nump">$ 1,641,525<span></span>
</td>
<td class="nump">$ 795,327<span></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_fix_PercentageOfRevenueFromContractWithCustomer', window );">Percentage of revenue from contract with customer (as a percent)</a></td>
<td class="nump">34.00%<span></span>
</td>
<td class="nump">22.00%<span></span>
</td>
<td class="nump">31.80%<span></span>
</td>
<td class="nump">20.70%<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_MajorCustomersAxis=fix_ManufacturingCustomerMember', window );">Manufacturing</a></td>
<td class="text">&#160;<span></span>
</td>
<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_DisaggregationOfRevenueLineItems', window );"><strong>Disaggregation of Revenue</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_Revenues', window );">Revenue</a></td>
<td class="nump">$ 452,157<span></span>
</td>
<td class="nump">$ 469,173<span></span>
</td>
<td class="nump">$ 1,439,772<span></span>
</td>
<td class="nump">$ 1,271,348<span></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_fix_PercentageOfRevenueFromContractWithCustomer', window );">Percentage of revenue from contract with customer (as a percent)</a></td>
<td class="nump">24.90%<span></span>
</td>
<td class="nump">34.00%<span></span>
</td>
<td class="nump">27.90%<span></span>
</td>
<td class="nump">33.00%<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_MajorCustomersAxis=fix_EducationMember', window );">Education</a></td>
<td class="text">&#160;<span></span>
</td>
<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_DisaggregationOfRevenueLineItems', window );"><strong>Disaggregation of Revenue</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_Revenues', window );">Revenue</a></td>
<td class="nump">$ 195,737<span></span>
</td>
<td class="nump">$ 139,206<span></span>
</td>
<td class="nump">$ 523,153<span></span>
</td>
<td class="nump">$ 376,637<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_fix_PercentageOfRevenueFromContractWithCustomer', window );">Percentage of revenue from contract with customer (as a percent)</a></td>
<td class="nump">10.80%<span></span>
</td>
<td class="nump">10.10%<span></span>
</td>
<td class="nump">10.10%<span></span>
</td>
<td class="nump">9.80%<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_MajorCustomersAxis=fix_HealthcareSectorCustomerMember', window );">Healthcare</a></td>
<td class="text">&#160;<span></span>
</td>
<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_DisaggregationOfRevenueLineItems', window );"><strong>Disaggregation of Revenue</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_Revenues', window );">Revenue</a></td>
<td class="nump">$ 149,974<span></span>
</td>
<td class="nump">$ 133,130<span></span>
</td>
<td class="nump">$ 424,450<span></span>
</td>
<td class="nump">$ 431,329<span></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_fix_PercentageOfRevenueFromContractWithCustomer', window );">Percentage of revenue from contract with customer (as a percent)</a></td>
<td class="nump">8.30%<span></span>
</td>
<td class="nump">9.70%<span></span>
</td>
<td class="nump">8.20%<span></span>
</td>
<td class="nump">11.20%<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_MajorCustomersAxis=fix_OfficeBuildingCustomerMember', window );">Office Buildings</a></td>
<td class="text">&#160;<span></span>
</td>
<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_DisaggregationOfRevenueLineItems', window );"><strong>Disaggregation of Revenue</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_Revenues', window );">Revenue</a></td>
<td class="nump">$ 109,233<span></span>
</td>
<td class="nump">$ 104,937<span></span>
</td>
<td class="nump">$ 326,137<span></span>
</td>
<td class="nump">$ 299,103<span></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_fix_PercentageOfRevenueFromContractWithCustomer', window );">Percentage of revenue from contract with customer (as a percent)</a></td>
<td class="nump">6.00%<span></span>
</td>
<td class="nump">7.60%<span></span>
</td>
<td class="nump">6.30%<span></span>
</td>
<td class="nump">7.80%<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_MajorCustomersAxis=fix_RetailRestaurantsAndEntertainmentMember', window );">Retail, Restaurants and Entertainment</a></td>
<td class="text">&#160;<span></span>
</td>
<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_DisaggregationOfRevenueLineItems', window );"><strong>Disaggregation of Revenue</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_Revenues', window );">Revenue</a></td>
<td class="nump">$ 114,572<span></span>
</td>
<td class="nump">$ 77,802<span></span>
</td>
<td class="nump">$ 309,658<span></span>
</td>
<td class="nump">$ 234,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_fix_PercentageOfRevenueFromContractWithCustomer', window );">Percentage of revenue from contract with customer (as a percent)</a></td>
<td class="nump">6.30%<span></span>
</td>
<td class="nump">5.60%<span></span>
</td>
<td class="nump">6.00%<span></span>
</td>
<td class="nump">6.10%<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_MajorCustomersAxis=fix_GovernmentCustomerMember', window );">Government</a></td>
<td class="text">&#160;<span></span>
</td>
<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_DisaggregationOfRevenueLineItems', window );"><strong>Disaggregation of Revenue</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_Revenues', window );">Revenue</a></td>
<td class="nump">$ 92,555<span></span>
</td>
<td class="nump">$ 85,220<span></span>
</td>
<td class="nump">$ 271,429<span></span>
</td>
<td class="nump">$ 227,232<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_fix_PercentageOfRevenueFromContractWithCustomer', window );">Percentage of revenue from contract with customer (as a percent)</a></td>
<td class="nump">5.10%<span></span>
</td>
<td class="nump">6.30%<span></span>
</td>
<td class="nump">5.30%<span></span>
</td>
<td class="nump">5.90%<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_MajorCustomersAxis=fix_MultiFamilyAndResidentialMember', window );">Multi-Family and Residential</a></td>
<td class="text">&#160;<span></span>
</td>
<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_DisaggregationOfRevenueLineItems', window );"><strong>Disaggregation of Revenue</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_Revenues', window );">Revenue</a></td>
<td class="nump">$ 33,838<span></span>
</td>
<td class="nump">$ 45,523<span></span>
</td>
<td class="nump">$ 110,870<span></span>
</td>
<td class="nump">$ 136,825<span></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_fix_PercentageOfRevenueFromContractWithCustomer', window );">Percentage of revenue from contract with customer (as a percent)</a></td>
<td class="nump">1.90%<span></span>
</td>
<td class="nump">3.30%<span></span>
</td>
<td class="nump">2.20%<span></span>
</td>
<td class="nump">3.50%<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_MajorCustomersAxis=us-gaap_OtherCustomerMember', window );">Other Customer</a></td>
<td class="text">&#160;<span></span>
</td>
<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_DisaggregationOfRevenueLineItems', window );"><strong>Disaggregation of Revenue</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_Revenues', window );">Revenue</a></td>
<td class="nump">$ 48,902<span></span>
</td>
<td class="nump">$ 19,286<span></span>
</td>
<td class="nump">$ 112,678<span></span>
</td>
<td class="nump">$ 76,614<span></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_fix_PercentageOfRevenueFromContractWithCustomer', window );">Percentage of revenue from contract with customer (as a percent)</a></td>
<td class="nump">2.70%<span></span>
</td>
<td class="nump">1.40%<span></span>
</td>
<td class="nump">2.20%<span></span>
</td>
<td class="nump">2.00%<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_ProductOrServiceAxis=fix_MechanicalSegmentMember', window );">Mechanical Segment</a></td>
<td class="text">&#160;<span></span>
</td>
<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_DisaggregationOfRevenueLineItems', window );"><strong>Disaggregation of Revenue</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_Revenues', window );">Revenue</a></td>
<td class="nump">$ 1,438,617<span></span>
</td>
<td class="nump">$ 1,031,310<span></span>
</td>
<td class="nump">$ 4,075,305<span></span>
</td>
<td class="nump">$ 2,925,848<span></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_fix_PercentageOfRevenueFromContractWithCustomer', window );">Percentage of revenue from contract with customer (as a percent)</a></td>
<td class="nump">79.40%<span></span>
</td>
<td class="nump">74.80%<span></span>
</td>
<td class="nump">79.00%<span></span>
</td>
<td class="nump">76.00%<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_ProductOrServiceAxis=fix_ElectricalSegmentMember', window );">Electrical Segment</a></td>
<td class="text">&#160;<span></span>
</td>
<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_DisaggregationOfRevenueLineItems', window );"><strong>Disaggregation of Revenue</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_Revenues', window );">Revenue</a></td>
<td class="nump">$ 373,749<span></span>
</td>
<td class="nump">$ 346,814<span></span>
</td>
<td class="nump">$ 1,084,367<span></span>
</td>
<td class="nump">$ 923,346<span></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_fix_PercentageOfRevenueFromContractWithCustomer', window );">Percentage of revenue from contract with customer (as a percent)</a></td>
<td class="nump">20.60%<span></span>
</td>
<td class="nump">25.20%<span></span>
</td>
<td class="nump">21.00%<span></span>
</td>
<td class="nump">24.00%<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_fix_PercentageOfRevenueFromContractWithCustomer">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The percentage of revenue from contract with customers.</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;">fix_PercentageOfRevenueFromContractWithCustomer</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>fix_</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_DisaggregationOfRevenueLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 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 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 91<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479777/606-10-55-91<br><br>Reference 3: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 91<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479777/606-10-55-91<br><br>Reference 4: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 91<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479777/606-10-55-91<br><br>Reference 5: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 91<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479777/606-10-55-91<br><br>Reference 6: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 91<br> -Subparagraph (e)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479777/606-10-55-91<br><br>Reference 7: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 91<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479777/606-10-55-91<br><br>Reference 8: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 91<br> -Subparagraph (g)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479777/606-10-55-91<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DisaggregationOfRevenueLineItems</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_Revenues">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of revenue recognized from goods sold, services rendered, insurance premiums, or other activities that constitute an earning process. Includes, but is not limited to, investment and interest income before deduction of interest expense when recognized as a component of revenue, and sales and trading gain (loss).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 48<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482785/280-10-55-48<br><br>Reference 2: http://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 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 270<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (i)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482964/270-10-50-1<br><br>Reference 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 (ee)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 5: http://fasb.org/us-gaap/role/ref/otherTransitionRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 6: http://fasb.org/us-gaap/role/ref/otherTransitionRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(ii))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 323<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481687/323-10-50-3<br><br>Reference 9: http://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 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)(i))<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)(ii))<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/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 21: 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 22: 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 23: 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 24: 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 25: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 942<br> -SubTopic 235<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-05(b)(2))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477314/942-235-S99-1<br><br>Reference 26: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(1))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483621/220-10-S99-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_Revenues</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_StatementBusinessSegmentsAxis=fix_NewConstructionMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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=fix_NewConstructionMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><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=fix_ExistingBuildingConstructionMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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=fix_ExistingBuildingConstructionMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><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=fix_ServiceProjectsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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=fix_ServiceProjectsMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><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=fix_ServiceCallsMaintenanceAndMonitoringMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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=fix_ServiceCallsMaintenanceAndMonitoringMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_MajorCustomersAxis=fix_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;">srt_MajorCustomersAxis=fix_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_srt_MajorCustomersAxis=fix_ManufacturingCustomerMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_MajorCustomersAxis=fix_ManufacturingCustomerMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_MajorCustomersAxis=fix_EducationMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_MajorCustomersAxis=fix_EducationMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_MajorCustomersAxis=fix_HealthcareSectorCustomerMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_MajorCustomersAxis=fix_HealthcareSectorCustomerMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_MajorCustomersAxis=fix_OfficeBuildingCustomerMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_MajorCustomersAxis=fix_OfficeBuildingCustomerMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_MajorCustomersAxis=fix_RetailRestaurantsAndEntertainmentMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_MajorCustomersAxis=fix_RetailRestaurantsAndEntertainmentMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_MajorCustomersAxis=fix_GovernmentCustomerMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_MajorCustomersAxis=fix_GovernmentCustomerMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_MajorCustomersAxis=fix_MultiFamilyAndResidentialMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_MajorCustomersAxis=fix_MultiFamilyAndResidentialMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_MajorCustomersAxis=us-gaap_OtherCustomerMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_MajorCustomersAxis=us-gaap_OtherCustomerMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_ProductOrServiceAxis=fix_MechanicalSegmentMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_ProductOrServiceAxis=fix_MechanicalSegmentMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_ProductOrServiceAxis=fix_ElectricalSegmentMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_ProductOrServiceAxis=fix_ElectricalSegmentMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><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>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.3</span><table class="report" border="0" cellspacing="2" id="idm46664934473040">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Revenue from Contracts with Customers - Contract Assets and Liabilities (Details) - USD ($)<br></strong></div></th>
<th class="th" colspan="2">9 Months Ended</th>
<th class="th" colspan="1"></th>
</tr>
<tr>
<th class="th"><div>Sep. 30, 2024</div></th>
<th class="th"><div>Sep. 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_ChangeInContractWithCustomerAssetAbstract', window );"><strong>Contract Assets</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_ContractWithCustomerAssetNet', window );">Costs and estimated earnings in excess of billings, less allowance for credit losses</a></td>
<td class="nump">$ 73,934,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 28,084,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_ContractWithCustomerAssetNetCurrent', window );">Costs and estimated earnings in excess of billings, less allowance for credit losses, current</a></td>
<td class="nump">73,934,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">28,084,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_ChangeInContractWithCustomerLiabilityAbstract', window );"><strong>Contract Liabilities</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="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 and deferred revenue</a></td>
<td class="nump">1,197,532,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 909,538,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_ContractWithCustomerAssetCreditLossExpense', window );">Impairment losses</a></td>
<td class="nump">0<span></span>
</td>
<td class="nump">$ 0<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ContractWithCustomerLiabilityRevenueRecognized', window );">Revenue related to our contract liabilities</a></td>
<td class="nump">$ 767,300,000<span></span>
</td>
<td class="nump">$ 482,900,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ChangeInContractWithCustomerAssetAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ChangeInContractWithCustomerAssetAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ChangeInContractWithCustomerLiabilityAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ChangeInContractWithCustomerLiabilityAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ContractWithCustomerAssetCreditLossExpense">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></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 right to consideration in exchange for good or service transferred to customer when right is conditioned on something other than passage of time.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 326<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 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/exampleRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 10<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479806/606-10-50-10<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 4<br> -Subparagraph (b)<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_ContractWithCustomerAssetCreditLossExpense</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_ContractWithCustomerAssetNet">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></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.</p></div>
<a href="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_ContractWithCustomerAssetNet</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_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_ContractWithCustomerLiabilityRevenueRecognized">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of revenue recognized that was previously included in balance of obligation to transfer good or service to customer for which consideration from customer has been received or is due.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 8<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479806/606-10-50-8<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ContractWithCustomerLiabilityRevenueRecognized</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>46
<FILENAME>R35.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.24.3</span><table class="report" border="0" cellspacing="2" id="idm46664927013104">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Revenue from Contracts with Customers - Remaining Performance Obligations (Details)<br> $ in Millions</strong></div></th>
<th class="th" colspan="1">9 Months Ended</th>
</tr>
<tr><th class="th">
<div>Sep. 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_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionLineItems', window );"><strong>Remaining Performance Obligations</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_fix_RenewableServiceMaintenanceAgreementsTerm', window );">The term of the renewable service maintenance agreements (in years)</a></td>
<td class="text">1 year<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenuePracticalExpedientRemainingPerformanceObligation', window );">Practical Expedient</a></td>
<td class="text">true<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis=2024-04-01', window );">Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction, Start Date [Axis]: 2024-04-01</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_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionLineItems', window );"><strong>Remaining Performance Obligations</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenueRemainingPerformanceObligation', window );">Remaining performance obligations</a></td>
<td class="nump">$ 5,680<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1', window );">Expected timing of performance obligations</a></td>
<td class="text">12 months<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis=2024-04-01', window );">Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction, Start Date [Axis]: 2024-04-01 | Minimum [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_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionLineItems', window );"><strong>Remaining Performance Obligations</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_RevenueRemainingPerformanceObligationPercentage', window );">Expected percentage of remaining performance obligations</a></td>
<td class="nump">65.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_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis=2024-04-01', window );">Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction, Start Date [Axis]: 2024-04-01 | Maximum [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_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionLineItems', window );"><strong>Remaining Performance Obligations</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_RevenueRemainingPerformanceObligationPercentage', window );">Expected percentage of remaining performance obligations</a></td>
<td class="nump">75.00%<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_fix_RenewableServiceMaintenanceAgreementsTerm">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 term of renewable service maintenance agreements in years.</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;">fix_RenewableServiceMaintenanceAgreementsTerm</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>fix_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:durationItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_RevenuePracticalExpedientRemainingPerformanceObligation">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 (true false) whether optional exemption was applied not to disclose amount of transaction price allocated to and explanation of expected timing of revenue recognition for remaining performance obligation, when contract has expected duration of one year or less or right to consideration corresponds directly to performance completed.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 15<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479806/606-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_RevenuePracticalExpedientRemainingPerformanceObligation</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</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_us-gaap_RevenueRemainingPerformanceObligation">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of transaction price allocated to performance obligation that has not been recognized as revenue.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 13<br> -Subparagraph (a)<br> -SubTopic 10<br> -Topic 606<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479806/606-10-50-13<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_RevenueRemainingPerformanceObligation</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionLineItems</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Period in which remaining performance obligation is expected to be recognized as revenue, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents reported fact of one year, five months, and thirteen days.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 13<br> -Subparagraph (b)(1)<br> -SubTopic 10<br> -Topic 606<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479806/606-10-50-13<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:durationItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_RevenueRemainingPerformanceObligationPercentage">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 remaining performance obligation to total remaining performance obligation not recognized as revenue.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 13<br> -Subparagraph (b)(1)<br> -SubTopic 10<br> -Topic 606<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479806/606-10-50-13<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_RevenueRemainingPerformanceObligationPercentage</td>
</tr>
<tr>
<td style="padding-right: 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_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis=2024-04-01">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis=2024-04-01</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_RangeAxis=srt_MinimumMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_RangeAxis=srt_MinimumMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_RangeAxis=srt_MaximumMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_RangeAxis=srt_MaximumMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>47
<FILENAME>R36.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.24.3</span><table class="report" border="0" cellspacing="2" id="idm46664927700512">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Fair Value Measurements (Details)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="1">9 Months Ended</th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr>
<th class="th">
<div>Sep. 30, 2024 </div>
<div>USD ($)</div>
</th>
<th class="th">
<div>Dec. 31, 2023 </div>
<div>USD ($) </div>
<div>employee</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_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems', window );"><strong>Fair Value Measurements</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_fix_LifeInsuranceContractsNumberOfEmployeesCovered', window );">Number of employees covered under life insurance policies | employee</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">131<span></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_fix_LifeInsuranceContractsFaceAmount', window );">Combined face value of life insurance policies</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 87,800<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</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_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems', window );"><strong>Fair Value Measurements</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_fix_WeightedAverageCostOfCapital', window );">Weighted average cost of capital</a></td>
<td class="nump">16.00%<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_RangeAxis=srt_MaximumMember', window );">Maximum</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_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems', window );"><strong>Fair Value Measurements</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_fix_WeightedAverageCostOfCapital', window );">Weighted average cost of capital</a></td>
<td class="nump">19.00%<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FairValueByLiabilityClassAxis=fix_ContingentConsiderationObligationsMember', window );">Contingent earn-out obligations</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_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems', window );"><strong>Fair Value Measurements</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_FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue', window );">Contingent earn-out obligations</a></td>
<td class="nump">$ 103,238<span></span>
</td>
<td class="nump">44,222<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationCalculationRollForward', window );"><strong>Reconciliation of the fair value of contingent earn-out obligations that use significant unobservable inputs (Level 3)</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_FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue', window );">Balance at beginning of period</a></td>
<td class="nump">44,222<span></span>
</td>
<td class="nump">32,317<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityIssues', window );">Issuances</a></td>
<td class="nump">51,784<span></span>
</td>
<td class="nump">4,315<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilitySettlements', window );">Settlements</a></td>
<td class="num">(37,202)<span></span>
</td>
<td class="num">(16,017)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityGainLossIncludedInEarnings', window );">Adjustments to fair value</a></td>
<td class="nump">44,434<span></span>
</td>
<td class="nump">23,607<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue', window );">Balance at end of period</a></td>
<td class="nump">103,238<span></span>
</td>
<td class="nump">44,222<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_FairValueByMeasurementFrequencyAxis=us-gaap_FairValueMeasurementsRecurringMember', window );">Recurring basis | Total</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_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems', window );"><strong>Fair Value Measurements</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_CashAndCashEquivalentsFairValueDisclosure', window );">Cash and cash equivalents</a></td>
<td class="nump">415,583<span></span>
</td>
<td class="nump">205,150<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CashSurrenderValueFairValueDisclosure', window );">Life insurance-cash surrender value</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">7,473<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue', window );">Contingent earn-out obligations</a></td>
<td class="nump">103,238<span></span>
</td>
<td class="nump">44,222<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationCalculationRollForward', window );"><strong>Reconciliation of the fair value of contingent earn-out obligations that use significant unobservable inputs (Level 3)</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_FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue', window );">Balance at beginning of period</a></td>
<td class="nump">44,222<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue', window );">Balance at end of period</a></td>
<td class="nump">103,238<span></span>
</td>
<td class="nump">44,222<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_FairValueByMeasurementFrequencyAxis=us-gaap_FairValueMeasurementsRecurringMember', window );">Recurring basis | Quoted Market Prices In Active Markets for Identical Assets (Level 1)</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_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems', window );"><strong>Fair Value Measurements</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_CashAndCashEquivalentsFairValueDisclosure', window );">Cash and cash equivalents</a></td>
<td class="nump">415,583<span></span>
</td>
<td class="nump">205,150<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_FairValueByMeasurementFrequencyAxis=us-gaap_FairValueMeasurementsRecurringMember', window );">Recurring basis | Significant Other Observable Inputs (Level 2)</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_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems', window );"><strong>Fair Value Measurements</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_CashSurrenderValueFairValueDisclosure', window );">Life insurance-cash surrender value</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">7,473<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_FairValueByMeasurementFrequencyAxis=us-gaap_FairValueMeasurementsRecurringMember', window );">Recurring basis | Significant Unobservable Inputs (Level 3)</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_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems', window );"><strong>Fair Value Measurements</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_FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue', window );">Contingent earn-out obligations</a></td>
<td class="nump">103,238<span></span>
</td>
<td class="nump">44,222<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationCalculationRollForward', window );"><strong>Reconciliation of the fair value of contingent earn-out obligations that use significant unobservable inputs (Level 3)</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_FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue', window );">Balance at beginning of period</a></td>
<td class="nump">44,222<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue', window );">Balance at end of period</a></td>
<td class="nump">$ 103,238<span></span>
</td>
<td class="nump">$ 44,222<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_fix_LifeInsuranceContractsFaceAmount">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 face amount of life insurance policies taken by the entity for their employees.</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;">fix_LifeInsuranceContractsFaceAmount</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>fix_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_fix_LifeInsuranceContractsNumberOfEmployeesCovered">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Represents the number of employees covered under life insurance policy contracts.</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;">fix_LifeInsuranceContractsNumberOfEmployeesCovered</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>fix_</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_fix_WeightedAverageCostOfCapital">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 weighted average cost of 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;">fix_WeightedAverageCostOfCapital</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>fix_</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_CashAndCashEquivalentsFairValueDisclosure">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 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.</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 820<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482106/820-10-50-2<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 820<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/2147482106/820-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_CashAndCashEquivalentsFairValueDisclosure</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_CashSurrenderValueFairValueDisclosure">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 the amount that could be realized under a life insurance contract or contracts owned by the entity, commonly known as corporate-owned life insurance (COLI) or bank-owned life insurance (BOLI).</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 820<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2E<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482106/820-10-50-2E<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 820<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482106/820-10-50-2<br><br>Reference 3: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 820<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/2147482106/820-10-50-2<br><br>Reference 4: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 820<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (bbb)(2)(i)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482106/820-10-50-2<br><br>Reference 5: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 820<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (bbb)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482106/820-10-50-2<br><br>Reference 6: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 820<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (bbb)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482106/820-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_CashSurrenderValueFairValueDisclosure</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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/exampleRef<br> -Topic 820<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 100<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482078/820-10-55-100<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 820<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482106/820-10-50-2<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 820<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/2147482106/820-10-50-2<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 820<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482106/820-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_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationCalculationRollForward">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>A roll forward is a reconciliation of a concept from the beginning of a period to the end of a period.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationCalculationRollForward</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityGainLossIncludedInEarnings">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></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 income from liability measured at fair value on recurring basis using unobservable input (level 3).</p></div>
<a href="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 820<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482106/820-10-50-3<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 820<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482106/820-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_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityGainLossIncludedInEarnings</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityIssues">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of issuances of financial instrument classified as a liability measured using unobservable inputs that reflect the entity's own assumption about the assumptions market participants would use in pricing.</p></div>
<a href="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 820<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482106/820-10-50-3<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 820<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482106/820-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_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityIssues</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilitySettlements">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of settlements of financial instrument classified as a liability measured using unobservable inputs that reflect the entity's own assumption about the assumptions market participants would use in pricing.</p></div>
<a href="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 820<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482106/820-10-50-3<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 820<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482106/820-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_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilitySettlements</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 instrument classified as a liability measured using unobservable inputs that reflect the entity's own assumption about the assumptions market participants would use in pricing.</p></div>
<a href="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 820<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482106/820-10-50-3<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 820<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482106/820-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_FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_RangeAxis=srt_MinimumMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_RangeAxis=srt_MinimumMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_RangeAxis=srt_MaximumMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_RangeAxis=srt_MaximumMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FairValueByLiabilityClassAxis=fix_ContingentConsiderationObligationsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_FairValueByLiabilityClassAxis=fix_ContingentConsiderationObligationsMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><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_FairValueByMeasurementFrequencyAxis=us-gaap_FairValueMeasurementsRecurringMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_FairValueByMeasurementFrequencyAxis=us-gaap_FairValueMeasurementsRecurringMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><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_FairValueByMeasurementBasisAxis=us-gaap_EstimateOfFairValueFairValueDisclosureMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_FairValueByMeasurementBasisAxis=us-gaap_EstimateOfFairValueFairValueDisclosureMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><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_FairValueByFairValueHierarchyLevelAxis=us-gaap_FairValueInputsLevel1Member">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_FairValueByFairValueHierarchyLevelAxis=us-gaap_FairValueInputsLevel1Member</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><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_FairValueByFairValueHierarchyLevelAxis=us-gaap_FairValueInputsLevel2Member">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_FairValueByFairValueHierarchyLevelAxis=us-gaap_FairValueInputsLevel2Member</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><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_FairValueByFairValueHierarchyLevelAxis=us-gaap_FairValueInputsLevel3Member">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_FairValueByFairValueHierarchyLevelAxis=us-gaap_FairValueInputsLevel3Member</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>48
<FILENAME>R37.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.24.3</span><table class="report" border="0" cellspacing="2" id="idm46664931837280">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Acquisitions (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="1"></th>
<th class="th" colspan="2">3 Months Ended</th>
<th class="th" colspan="1">8 Months Ended</th>
<th class="th" colspan="2">9 Months Ended</th>
<th class="th" colspan="1"></th>
<th class="th" colspan="1"></th>
</tr>
<tr>
<th class="th"><div>Feb. 01, 2024</div></th>
<th class="th"><div>Sep. 30, 2024</div></th>
<th class="th"><div>Sep. 30, 2023</div></th>
<th class="th"><div>Sep. 30, 2024</div></th>
<th class="th"><div>Sep. 30, 2024</div></th>
<th class="th"><div>Sep. 30, 2023</div></th>
<th class="th"><div>Dec. 31, 2023</div></th>
<th class="th"><div>Dec. 31, 2022</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessCombinationConsiderationTransferredAbstract', window );"><strong>Consideration transferred:</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_Revenues', window );">Revenue</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 1,812,366<span></span>
</td>
<td class="nump">$ 1,378,124<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 5,159,672<span></span>
</td>
<td class="nump">$ 3,849,194<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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNetAbstract', window );"><strong>Recognized amounts of identifiable assets acquired and liabilities assumed:</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_Goodwill', window );">Goodwill</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 875,193<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 875,193<span></span>
</td>
<td class="nump">$ 875,193<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 666,834<span></span>
</td>
<td class="nump">$ 611,789<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=fix_SummitIndustrialConstructionLlcMember', window );">Summit Texas</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<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_BusinessCombinationConsiderationTransferredAbstract', window );"><strong>Consideration transferred:</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_PaymentsToAcquireBusinessesGross', window );">Cash paid at closing</a></td>
<td class="nump">$ 267,500<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</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_fix_BusinessCombinationConsiderationTransferredWorkingCapitalAdjustment', window );">Working capital adjustment</a></td>
<td class="nump">14,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>
<td class="text">&#160;<span></span>
</td>
<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_BusinessCombinationConsiderationTransferredLiabilitiesIncurred', window );">Notes issued to former owners</a></td>
<td class="nump">35,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="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 );">Estimated fair value of contingent earn-out payments</a></td>
<td class="nump">42,732<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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 );">Consideration transferred</a></td>
<td class="nump">359,834<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<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 );">Revenue</a></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">256,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>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNetAbstract', window );"><strong>Recognized amounts of identifiable assets acquired and liabilities assumed:</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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents', window );">Cash and cash equivalents</a></td>
<td class="nump">171,027<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables', window );">Billed and unbilled accounts receivable</a></td>
<td class="nump">59,846<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsPrepaidExpenseAndOtherAssets', window );">Prepaid expenses and other</a></td>
<td class="nump">1,476<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_fix_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsCostsInExcessOfBillings', window );">Cost and estimated earnings in excess of billings</a></td>
<td class="nump">578<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment', window );">Property and equipment</a></td>
<td class="nump">2,528<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_fix_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseRightOfUseAssets', window );">Lease right-of-use asset</a></td>
<td class="nump">2,364<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<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">155,345<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles', window );">Identifiable intangible assets</a></td>
<td class="nump">170,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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOtherNoncurrentAssets', window );">Other noncurrent assets</a></td>
<td class="nump">136<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable', window );">Accounts payable</a></td>
<td class="num">(15,130)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<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_fix_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesBillingsInExcessOfCostsAndEstimatedEarnings', window );">Billings in excess of costs and estimated earnings</a></td>
<td class="num">(179,895)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_fix_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesOperatingLeaseLiabilities', window );">Current operating lease liabilities</a></td>
<td class="num">(1,495)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<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 );">Accrued expenses and other current liabilities</a></td>
<td class="num">(6,293)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_fix_BusinessCombinationRecognizedIdentifiableAssetAcquiredAndLiabilityAssumedOperatingLeaseObligation', window );">Long-term operating lease liabilities</a></td>
<td class="num">(753)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet', window );">Total assets acquired and liabilities assumed</a></td>
<td class="nump">359,834<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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=fix_JSMechanicalContractorsIncMember', window );">J&amp;S Utah</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<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_BusinessCombinationConsiderationTransferredAbstract', window );"><strong>Consideration transferred:</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_PaymentsToAcquireBusinessesGross', window );">Cash paid at closing</a></td>
<td class="nump">100,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_fix_BusinessCombinationConsiderationTransferredWorkingCapitalAdjustment', window );">Working capital adjustment</a></td>
<td class="nump">1,587<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_BusinessCombinationConsiderationTransferredLiabilitiesIncurred', window );">Notes issued to former owners</a></td>
<td class="nump">10,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="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 );">Estimated fair value of contingent earn-out payments</a></td>
<td class="nump">9,052<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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 );">Consideration transferred</a></td>
<td class="nump">120,639<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<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 );">Revenue</a></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">$ 106,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>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNetAbstract', window );"><strong>Recognized amounts of identifiable assets acquired and liabilities assumed:</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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents', window );">Cash and cash equivalents</a></td>
<td class="nump">14,802<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables', window );">Billed and unbilled accounts receivable</a></td>
<td class="nump">38,411<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedInventory', window );">Inventory</a></td>
<td class="nump">230<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsPrepaidExpenseAndOtherAssets', window );">Prepaid expenses and other</a></td>
<td class="nump">393<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<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_fix_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsCostsInExcessOfBillings', window );">Cost and estimated earnings in excess of billings</a></td>
<td class="nump">728<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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="nump">2,674<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<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_fix_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseRightOfUseAssets', window );">Lease right-of-use asset</a></td>
<td class="nump">4,552<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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">40,706<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles', window );">Identifiable intangible assets</a></td>
<td class="nump">63,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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOtherNoncurrentAssets', window );">Other noncurrent assets</a></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>
<td class="text">&#160;<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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable', window );">Accounts payable</a></td>
<td class="num">(20,649)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_fix_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesBillingsInExcessOfCostsAndEstimatedEarnings', window );">Billings in excess of costs and estimated earnings</a></td>
<td class="num">(19,188)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<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_fix_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesOperatingLeaseLiabilities', window );">Current operating lease liabilities</a></td>
<td class="num">(133)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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 );">Accrued expenses and other current liabilities</a></td>
<td class="num">(826)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNoncurrentLiabilitiesLongTermDebt', window );">Long-term debt</a></td>
<td class="num">(59)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_fix_BusinessCombinationRecognizedIdentifiableAssetAcquiredAndLiabilityAssumedOperatingLeaseObligation', window );">Long-term operating lease liabilities</a></td>
<td class="num">(4,312)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet', window );">Total assets acquired and liabilities assumed</a></td>
<td class="nump">$ 120,639<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></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_fix_BusinessCombinationConsiderationTransferredWorkingCapitalAdjustment">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of working capital settlement under business combination.</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;">fix_BusinessCombinationConsiderationTransferredWorkingCapitalAdjustment</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>fix_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_fix_BusinessCombinationRecognizedIdentifiableAssetAcquiredAndLiabilityAssumedOperatingLeaseObligation">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of operating lease obligation assumed in business combination.</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;">fix_BusinessCombinationRecognizedIdentifiableAssetAcquiredAndLiabilityAssumedOperatingLeaseObligation</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>fix_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance 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_fix_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsCostsInExcessOfBillings">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of costs in excess of billings.</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;">fix_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsCostsInExcessOfBillings</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>fix_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_fix_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesBillingsInExcessOfCostsAndEstimatedEarnings">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Business Combination Recognized Identifiable Assets Acquired And Liabilities Assumed Current Liabilities Billings In Excess of Costs And Estimated 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;">fix_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesBillingsInExcessOfCostsAndEstimatedEarnings</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>fix_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance 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_fix_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesOperatingLeaseLiabilities">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></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 operating lease 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>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">fix_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesOperatingLeaseLiabilities</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>fix_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance 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_fix_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseRightOfUseAssets">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 right of use assets from operating leases recognized as of the acquisition 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;">fix_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseRightOfUseAssets</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>fix_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_BusinessCombinationConsiderationTransferredAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessCombinationConsiderationTransferredAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BusinessCombinationConsiderationTransferredLiabilitiesIncurred">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></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 by the acquirer as part of consideration transferred 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 (b)(3)<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 5<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479668/805-30-25-5<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 30<br> -Paragraph 8<br> -SubTopic 30<br> -Topic 805<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479637/805-30-30-8<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 30<br> -Paragraph 7<br> -SubTopic 30<br> -Topic 805<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479637/805-30-30-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_BusinessCombinationConsiderationTransferredLiabilitiesIncurred</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_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 820<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (bbb)(2)(i)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482106/820-10-50-2<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 820<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (bbb)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482106/820-10-50-2<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 820<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (bbb)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482106/820-10-50-2<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 805<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 35<br> -Paragraph 1<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479613/805-30-35-1<br><br>Reference 5: 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 6: 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></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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_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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsPrepaidExpenseAndOtherAssets">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></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, 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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsPrepaidExpenseAndOtherAssets</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount due from customers or clients for goods or services, including trade receivables, that have been delivered or sold in the normal course of business, and amounts due from others, including related parties expected to be converted to cash, sold or exchanged 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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></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 for goods and services received that are used in an entity's business and related party payables, 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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance 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_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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 identifiable intangible assets 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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedInventory">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 inventory 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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedInventory</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNoncurrentLiabilitiesLongTermDebt">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></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 due after one year or 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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNoncurrentLiabilitiesLongTermDebt</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance 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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOtherNoncurrentAssets">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></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 assets expected to be realized or consumed after 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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOtherNoncurrentAssets</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNetAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNetAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_Goodwill">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount, after accumulated impairment loss, of asset representing future economic benefit arising from other asset acquired in business combination or from joint venture formation or both, that is not individually identified and separately recognized.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 49<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482785/280-10-55-49<br><br>Reference 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/exampleRef<br> -Topic 820<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 100<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482078/820-10-55-100<br><br>Reference 4: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 852<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481372/852-10-55-10<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 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 6: 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 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 (a)<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 (h)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482573/350-20-50-1<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 942<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-03(10)(1))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478546/942-210-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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_PaymentsToAcquireBusinessesGross">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 business during the period. The cash portion only of the acquisition price.</p></div>
<a href="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 (b)(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 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 13<br> -Subparagraph (b)<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_PaymentsToAcquireBusinessesGross</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_Revenues">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of revenue recognized from goods sold, services rendered, insurance premiums, or other activities that constitute an earning process. Includes, but is not limited to, investment and interest income before deduction of interest expense when recognized as a component of revenue, and sales and trading gain (loss).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 48<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482785/280-10-55-48<br><br>Reference 2: http://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 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 270<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (i)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482964/270-10-50-1<br><br>Reference 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 (ee)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 5: http://fasb.org/us-gaap/role/ref/otherTransitionRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 6: http://fasb.org/us-gaap/role/ref/otherTransitionRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(ii))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 323<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481687/323-10-50-3<br><br>Reference 9: http://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 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)(i))<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)(ii))<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/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 21: 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 22: 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 23: 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 24: 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 25: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 942<br> -SubTopic 235<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-05(b)(2))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477314/942-235-S99-1<br><br>Reference 26: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(1))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483621/220-10-S99-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_Revenues</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BusinessAcquisitionAxis=fix_SummitIndustrialConstructionLlcMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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=fix_SummitIndustrialConstructionLlcMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><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=fix_JSMechanicalContractorsIncMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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=fix_JSMechanicalContractorsIncMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><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>49
<FILENAME>R38.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.24.3</span><table class="report" border="0" cellspacing="2" id="idm46664933625984">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Acquisitions - Acquired Intangible Assets (Details)<br> $ in Thousands</strong></div></th>
<th class="th">
<div>Feb. 01, 2024 </div>
<div>USD ($) </div>
<div>Milestone</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=fix_SummitIndustrialConstructionLlcMember', window );">Summit Texas</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_AcquiredFiniteLivedIntangibleAssetsLineItems', window );"><strong>Acquisitions</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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles', window );">Estimated Fair Value</a></td>
<td class="nump">$ 170,100<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=fix_SummitIndustrialConstructionLlcMember', window );">Summit Texas | Minimum | Measurement Input, Inception Discount Rate</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_AcquiredFiniteLivedIntangibleAssetsLineItems', window );"><strong>Acquisitions</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_fix_CashFlowDiscountRate', window );">Cash flow discount rate</a></td>
<td class="nump">18.50%<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=fix_SummitIndustrialConstructionLlcMember', window );">Summit Texas | Maximum | Measurement Input, Inception Discount Rate</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_AcquiredFiniteLivedIntangibleAssetsLineItems', window );"><strong>Acquisitions</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_fix_CashFlowDiscountRate', window );">Cash flow discount rate</a></td>
<td class="nump">20.50%<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=fix_SummitIndustrialConstructionLlcMember', window );">Summit Texas | Contingent earn-out obligations</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_AcquiredFiniteLivedIntangibleAssetsLineItems', window );"><strong>Acquisitions</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_fix_BusinessCombinationNumberOfEarningsMilestones', window );">Number of earnings milestones | Milestone</a></td>
<td class="nump">4<span></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_fix_BusinessCombinationTermOfEarningsMilestones', window );">Term of earnings milestones</a></td>
<td class="text">47 months<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueHigh', window );">Estimated milestone payment, upper range</a></td>
<td class="nump">$ 20,500<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueLow', window );">Estimated milestone payment, lower range</a></td>
<td class="nump">$ 2,600<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=fix_SummitIndustrialConstructionLlcMember', window );">Summit Texas | Contingent earn-out obligations | Minimum | Measurement Input, Inception Discount Rate</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_AcquiredFiniteLivedIntangibleAssetsLineItems', window );"><strong>Acquisitions</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_fix_CashFlowDiscountRate', window );">Cash flow discount rate</a></td>
<td class="nump">18.20%<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionAxis=fix_SummitIndustrialConstructionLlcMember', window );">Summit Texas | Contingent earn-out obligations | Maximum | Measurement Input, Inception Discount Rate</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_AcquiredFiniteLivedIntangibleAssetsLineItems', window );"><strong>Acquisitions</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_fix_CashFlowDiscountRate', window );">Cash flow discount rate</a></td>
<td class="nump">19.50%<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=fix_SummitIndustrialConstructionLlcMember', window );">Summit Texas | Backlog</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_AcquiredFiniteLivedIntangibleAssetsLineItems', window );"><strong>Acquisitions</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_AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife', window );">Estimated Useful Life</a></td>
<td class="text">1 year 9 months 18 days<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles', window );">Estimated Fair Value</a></td>
<td class="nump">$ 35,800<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=fix_SummitIndustrialConstructionLlcMember', window );">Summit Texas | Trade Name</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_AcquiredFiniteLivedIntangibleAssetsLineItems', window );"><strong>Acquisitions</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_AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife', window );">Estimated Useful Life</a></td>
<td class="text">22 years 10 months 24 days<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles', window );">Estimated Fair Value</a></td>
<td class="nump">$ 11,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_BusinessAcquisitionAxis=fix_SummitIndustrialConstructionLlcMember', window );">Summit Texas | Customer Relationships</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_AcquiredFiniteLivedIntangibleAssetsLineItems', window );"><strong>Acquisitions</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_AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife', window );">Estimated Useful Life</a></td>
<td class="text">10 years<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles', window );">Estimated Fair Value</a></td>
<td class="nump">$ 123,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_BusinessAcquisitionAxis=fix_JSMechanicalContractorsIncMember', window );">J&amp;S Utah</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_AcquiredFiniteLivedIntangibleAssetsLineItems', window );"><strong>Acquisitions</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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles', window );">Estimated Fair Value</a></td>
<td class="nump">$ 63,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_BusinessAcquisitionAxis=fix_JSMechanicalContractorsIncMember', window );">J&amp;S Utah | Minimum | Measurement Input, Inception Discount Rate</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_AcquiredFiniteLivedIntangibleAssetsLineItems', window );"><strong>Acquisitions</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_fix_CashFlowDiscountRate', window );">Cash flow discount rate</a></td>
<td class="nump">15.50%<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=fix_JSMechanicalContractorsIncMember', window );">J&amp;S Utah | Maximum | Measurement Input, Inception Discount Rate</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_AcquiredFiniteLivedIntangibleAssetsLineItems', window );"><strong>Acquisitions</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_fix_CashFlowDiscountRate', window );">Cash flow discount rate</a></td>
<td class="nump">17.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_BusinessAcquisitionAxis=fix_JSMechanicalContractorsIncMember', window );">J&amp;S Utah | Contingent earn-out obligations</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_AcquiredFiniteLivedIntangibleAssetsLineItems', window );"><strong>Acquisitions</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_fix_BusinessCombinationNumberOfEarningsMilestones', window );">Number of earnings milestones | Milestone</a></td>
<td class="nump">3<span></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_fix_BusinessCombinationTermOfEarningsMilestones', window );">Term of earnings milestones</a></td>
<td class="text">35 months<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueHigh', window );">Estimated milestone payment, upper range</a></td>
<td class="nump">$ 4,700<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueLow', window );">Estimated milestone payment, lower range</a></td>
<td class="nump">$ 1,100<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=fix_JSMechanicalContractorsIncMember', window );">J&amp;S Utah | Contingent earn-out obligations | Minimum | Measurement Input, Inception Discount Rate</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_AcquiredFiniteLivedIntangibleAssetsLineItems', window );"><strong>Acquisitions</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_fix_CashFlowDiscountRate', window );">Cash flow discount rate</a></td>
<td class="nump">15.40%<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionAxis=fix_JSMechanicalContractorsIncMember', window );">J&amp;S Utah | Contingent earn-out obligations | Maximum | Measurement Input, Inception Discount Rate</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_AcquiredFiniteLivedIntangibleAssetsLineItems', window );"><strong>Acquisitions</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_fix_CashFlowDiscountRate', window );">Cash flow discount rate</a></td>
<td class="nump">16.50%<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=fix_JSMechanicalContractorsIncMember', window );">J&amp;S Utah | Backlog</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_AcquiredFiniteLivedIntangibleAssetsLineItems', window );"><strong>Acquisitions</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_AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife', window );">Estimated Useful Life</a></td>
<td class="text">1 year 9 months 18 days<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles', window );">Estimated Fair Value</a></td>
<td class="nump">$ 12,900<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=fix_JSMechanicalContractorsIncMember', window );">J&amp;S Utah | Trade Name</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_AcquiredFiniteLivedIntangibleAssetsLineItems', window );"><strong>Acquisitions</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_AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife', window );">Estimated Useful Life</a></td>
<td class="text">22 years<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles', window );">Estimated Fair Value</a></td>
<td class="nump">$ 10,600<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=fix_JSMechanicalContractorsIncMember', window );">J&amp;S Utah | Customer Relationships</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_AcquiredFiniteLivedIntangibleAssetsLineItems', window );"><strong>Acquisitions</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_AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife', window );">Estimated Useful Life</a></td>
<td class="text">9 years<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles', window );">Estimated Fair Value</a></td>
<td class="nump">$ 39,800<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_fix_BusinessCombinationNumberOfEarningsMilestones">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 earnings milestone.</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;">fix_BusinessCombinationNumberOfEarningsMilestones</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>fix_</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_fix_BusinessCombinationTermOfEarningsMilestones">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 term of earnings milestones.</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;">fix_BusinessCombinationTermOfEarningsMilestones</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>fix_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:durationItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_fix_CashFlowDiscountRate">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of probable cash flows discount rate.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">fix_CashFlowDiscountRate</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>fix_</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_AcquiredFiniteLivedIntangibleAssetsLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 350<br> -SubTopic 30<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/2147482665/350-30-50-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 1<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482665/350-30-50-1<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)(3)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482665/350-30-50-1<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482665/350-30-50-1<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 985<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481283/985-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_AcquiredFiniteLivedIntangibleAssetsLineItems</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Weighted average amortization period of finite-lived intangible assets acquired either individually or as part of a group of assets, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)(3)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482665/350-30-50-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 985<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481283/985-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_AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:durationItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueHigh">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 contingent consideration arrangements recognized in connection with a business combination, this element represents an estimate of the high-end of the potential range (undiscounted) of the consideration which may be 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> -Topic 805<br> -SubTopic 30<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)(3)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479581/805-30-50-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueHigh</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance 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_BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueLow">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 contingent consideration arrangements and indemnification assets recognized in connection with a business combination, this element represents an estimate of the low-end of the potential range (undiscounted) of the consideration which may be 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> -Topic 805<br> -SubTopic 30<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)(3)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479581/805-30-50-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueLow</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance 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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 identifiable intangible assets 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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_BusinessAcquisitionAxis=fix_SummitIndustrialConstructionLlcMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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=fix_SummitIndustrialConstructionLlcMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><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_MeasurementInputTypeAxis=us-gaap_MeasurementInputInceptionDiscountRateMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_MeasurementInputTypeAxis=us-gaap_MeasurementInputInceptionDiscountRateMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><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_FairValueByLiabilityClassAxis=fix_ContingentConsiderationObligationsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_FairValueByLiabilityClassAxis=fix_ContingentConsiderationObligationsMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><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_OrderOrProductionBacklogMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_OrderOrProductionBacklogMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><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=us-gaap_CustomerRelationshipsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_CustomerRelationshipsMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BusinessAcquisitionAxis=fix_JSMechanicalContractorsIncMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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=fix_JSMechanicalContractorsIncMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><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>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.3</span><table class="report" border="0" cellspacing="2" id="idm46664925108480">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Acquisitions - Other Acquisitions (Details) - USD ($)<br> $ in Millions</strong></div></th>
<th class="th"><div>May 01, 2024</div></th>
<th class="th"><div>Oct. 02, 2023</div></th>
<th class="th"><div>Feb. 01, 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_BusinessAcquisitionAxis=fix_DeccoIncMember', window );">DECCO</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_BusinessAcquisitionLineItems', window );"><strong>Acquisitions</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_BusinessCombinationConsiderationTransferred1', window );">Fair value of consideration transferred</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 59.8<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PaymentsToAcquireBusinessesGross', window );">Cash paid at closing</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">48.8<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessCombinationConsiderationTransferredLiabilitiesIncurred', window );">Notes issued to former owners</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 7.0<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionAxis=fix_EldecoincMember', window );">Eldeco Inc</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_BusinessAcquisitionLineItems', window );"><strong>Acquisitions</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_BusinessCombinationConsiderationTransferred1', window );">Fair value of consideration transferred</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 74.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_PaymentsToAcquireBusinessesGross', window );">Cash paid at closing</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">60.8<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessCombinationConsiderationTransferredLiabilitiesIncurred', window );">Notes issued to former owners</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 8.0<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionAxis=fix_MechanicalContractorNorthCarolinaMember', window );">Mechanical Contractor North Carolina</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_BusinessAcquisitionLineItems', window );"><strong>Acquisitions</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_BusinessCombinationConsiderationTransferred1', window );">Fair value of consideration transferred</a></td>
<td class="nump">$ 39.9<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_BusinessCombinationConsiderationTransferred1">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of consideration transferred, consisting of acquisition-date fair value of assets transferred by the acquirer, liabilities incurred by the acquirer, and equity interest issued by the acquirer.</p></div>
<a href="javascript: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 30<br> -Paragraph 8<br> -SubTopic 30<br> -Topic 805<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479637/805-30-30-8<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)<br> -SubTopic 30<br> -Topic 805<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479581/805-30-50-1<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 30<br> -Paragraph 7<br> -SubTopic 30<br> -Topic 805<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479637/805-30-30-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_BusinessCombinationConsiderationTransferred1</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_BusinessCombinationConsiderationTransferredLiabilitiesIncurred">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></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 by the acquirer as part of consideration transferred 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 (b)(3)<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 5<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479668/805-30-25-5<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 30<br> -Paragraph 8<br> -SubTopic 30<br> -Topic 805<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479637/805-30-30-8<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 30<br> -Paragraph 7<br> -SubTopic 30<br> -Topic 805<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479637/805-30-30-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_BusinessCombinationConsiderationTransferredLiabilitiesIncurred</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_PaymentsToAcquireBusinessesGross">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 business during the period. The cash portion only of the acquisition price.</p></div>
<a href="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 (b)(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 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 13<br> -Subparagraph (b)<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_PaymentsToAcquireBusinessesGross</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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=fix_DeccoIncMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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=fix_DeccoIncMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><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=fix_EldecoincMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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=fix_EldecoincMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><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=fix_MechanicalContractorNorthCarolinaMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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=fix_MechanicalContractorNorthCarolinaMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>51
<FILENAME>R40.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.24.3</span><table class="report" border="0" cellspacing="2" id="idm46664935081648">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Goodwill and Identifiable Intangible Assets, Net - Changes in Carrying Amount of Goodwill (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="1">9 Months Ended</th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Sep. 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_GoodwillRollForward', window );"><strong>Changes in the carrying amount of goodwill</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 );">Balance at beginning of year</a></td>
<td class="nump">$ 666,834<span></span>
</td>
<td class="nump">$ 611,789<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_GoodwillAcquiredDuringPeriod', window );">Acquisitions and purchase price adjustments (See Note 5)</a></td>
<td class="nump">208,359<span></span>
</td>
<td class="nump">55,045<span></span>
</td>
</tr>
<tr class="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 );">Balance at end of period</a></td>
<td class="nump">875,193<span></span>
</td>
<td class="nump">666,834<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=fix_MechanicalSegmentMember', window );">Mechanical Segment</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_GoodwillRollForward', window );"><strong>Changes in the carrying amount of goodwill</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_Goodwill', window );">Balance at beginning of year</a></td>
<td class="nump">393,276<span></span>
</td>
<td class="nump">363,929<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_GoodwillAcquiredDuringPeriod', window );">Acquisitions and purchase price adjustments (See Note 5)</a></td>
<td class="nump">208,159<span></span>
</td>
<td class="nump">29,347<span></span>
</td>
</tr>
<tr class="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 );">Balance at end of period</a></td>
<td class="nump">601,435<span></span>
</td>
<td class="nump">393,276<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=fix_ElectricalSegmentMember', window );">Electrical Segment</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_GoodwillRollForward', window );"><strong>Changes in the carrying amount of goodwill</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 );">Balance at beginning of year</a></td>
<td class="nump">273,558<span></span>
</td>
<td class="nump">247,860<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_GoodwillAcquiredDuringPeriod', window );">Acquisitions and purchase price adjustments (See Note 5)</a></td>
<td class="nump">200<span></span>
</td>
<td class="nump">25,698<span></span>
</td>
</tr>
<tr class="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 );">Balance at end of period</a></td>
<td class="nump">$ 273,758<span></span>
</td>
<td class="nump">$ 273,558<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 asset representing future economic benefit arising from other asset acquired in business combination or from joint venture formation or both, that is not individually identified and separately recognized.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 49<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482785/280-10-55-49<br><br>Reference 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/exampleRef<br> -Topic 820<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 100<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482078/820-10-55-100<br><br>Reference 4: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 852<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481372/852-10-55-10<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 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 6: 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 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 (a)<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 (h)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482573/350-20-50-1<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 942<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-03(10)(1))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478546/942-210-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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_GoodwillAcquiredDuringPeriod">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of increase in asset representing future economic benefits arising from other assets acquired in a business combination that are not individually identified and separately recognized resulting from 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/exampleRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 24<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482548/350-20-55-24<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<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></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_GoodwillAcquiredDuringPeriod</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_GoodwillRollForward">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>A roll forward is a reconciliation of a concept from the beginning of a period to the end of a period.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_GoodwillRollForward</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</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=fix_MechanicalSegmentMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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=fix_MechanicalSegmentMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><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=fix_ElectricalSegmentMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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=fix_ElectricalSegmentMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>52
<FILENAME>R41.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.24.3</span><table class="report" border="0" cellspacing="2" id="idm46664934524000">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Goodwill and Identifiable Intangible Assets, Net - Identifiable Intangible Assets, Net (Details)<br> $ in Thousands</strong></div></th>
<th class="th">
<div>Sep. 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_FiniteLivedIntangibleAssetsFutureAmortizationExpenseAbstract', window );"><strong>Future amortization expense of identifiable intangible assets</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_FiniteLivedIntangibleAssetsAmortizationExpenseRemainderOfFiscalYear', window );">2024 (remainder of the year)</a></td>
<td class="nump">$ 22,042<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths', window );">2025</a></td>
<td class="nump">66,576<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo', window );">2026</a></td>
<td class="nump">55,961<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree', window );">2027</a></td>
<td class="nump">53,650<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour', window );">2028</a></td>
<td class="nump">52,103<span></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_fix_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFour', window );">Thereafter</a></td>
<td class="nump">206,127<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_FiniteLivedIntangibleAssetsNet', window );">Total</a></td>
<td class="nump">$ 456,459<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_fix_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFour">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of amortization for asset, excluding financial asset and goodwill, lacking physical substance with finite life expected to be recognized after 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>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">fix_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFour</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>fix_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></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://www.xbrl.org/2003/role/exampleRef<br> -Topic 350<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 40<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482640/350-30-55-40<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 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><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 985<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481283/985-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_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>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 985<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481283/985-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_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://www.xbrl.org/2003/role/exampleRef<br> -Topic 350<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 40<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482640/350-30-55-40<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 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><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 985<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481283/985-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_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://www.xbrl.org/2003/role/exampleRef<br> -Topic 350<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 40<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482640/350-30-55-40<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 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><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 985<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481283/985-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_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://www.xbrl.org/2003/role/exampleRef<br> -Topic 350<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 40<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482640/350-30-55-40<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 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><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 985<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481283/985-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_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FiniteLivedIntangibleAssetsFutureAmortizationExpenseAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FiniteLivedIntangibleAssetsFutureAmortizationExpenseAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_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/2009/role/commonPracticeRef<br> -Topic 350<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482665/350-30-50-2<br><br>Reference 2: 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_FiniteLivedIntangibleAssetsNet</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>53
<FILENAME>R42.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.24.3</span><table class="report" border="0" cellspacing="2" id="idm46664933906576">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Debt Obligations (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th"><div>Sep. 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 Obligations</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_fix_OtherDebtLongTermAndShortTermCombinedAmount', window );">Other debt</a></td>
<td class="nump">$ 768<span></span>
</td>
<td class="nump">$ 142<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_LongTermDebtAndCapitalLeaseObligationsIncludingCurrentMaturities', window );">Total debt</a></td>
<td class="nump">68,361<span></span>
</td>
<td class="nump">44,212<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LongTermDebtAndCapitalLeaseObligationsCurrent', window );">Less-current portion</a></td>
<td class="num">(6,046)<span></span>
</td>
<td class="num">(4,867)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LongTermDebtAndCapitalLeaseObligations', window );">Total long-term portion of debt</a></td>
<td class="nump">62,315<span></span>
</td>
<td class="nump">39,345<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=fix_SubordinateDebtAndPromissoryNoteMember', window );">Notes to Former Owners</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 Obligations</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_NotesAndLoansPayable', window );">Notes to former owners</a></td>
<td class="nump">$ 67,593<span></span>
</td>
<td class="nump">$ 44,070<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_fix_OtherDebtLongTermAndShortTermCombinedAmount">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 aggregate of other long-term debt, including current maturities and short-term 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;">fix_OtherDebtLongTermAndShortTermCombinedAmount</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>fix_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance 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_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/exampleRef<br> -Topic 835<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 8<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482949/835-30-55-8<br><br>Reference 2: http://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><br>Reference 26: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 835<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482925/835-30-45-2<br><br>Reference 27: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 835<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482900/835-30-50-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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_LongTermDebtAndCapitalLeaseObligations">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></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 and lease obligation, 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> -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/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)(16)(a)(2))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478777/944-210-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LongTermDebtAndCapitalLeaseObligations</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance 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_LongTermDebtAndCapitalLeaseObligationsCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></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 and lease obligation, classified as current.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -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_LongTermDebtAndCapitalLeaseObligationsCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance 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_LongTermDebtAndCapitalLeaseObligationsIncludingCurrentMaturities">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></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 and lease obligation, including portion classified as current.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LongTermDebtAndCapitalLeaseObligationsIncludingCurrentMaturities</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance 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_NotesAndLoansPayable">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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, carrying value as of the balance sheet date of all notes and loans payable (with maturities initially due after one year or beyond the operating cycle if longer).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(22))<br> -SubTopic 10<br> -Topic 210<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 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/2147478546/942-210-S99-1<br><br>Reference 3: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 944<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-03(a)(16)(a)(2))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478777/944-210-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_NotesAndLoansPayable</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance 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=fix_SubordinateDebtAndPromissoryNoteMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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=fix_SubordinateDebtAndPromissoryNoteMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>54
<FILENAME>R43.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.24.3</span><table class="report" border="0" cellspacing="2" id="idm46664925233536">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Debt Obligations - Other (Details)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="1">9 Months Ended</th>
<th class="th" colspan="1"></th>
<th class="th" colspan="1"></th>
</tr>
<tr>
<th class="th">
<div>Sep. 30, 2024 </div>
<div>USD ($) </div>
<div>item</div>
</th>
<th class="th">
<div>Jun. 30, 2024 </div>
<div>USD ($)</div>
</th>
<th class="th">
<div>Dec. 31, 2023 </div>
<div>USD ($)</div>
</th>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DebtInstrumentAxis=fix_SubordinateDebtAndPromissoryNoteMember', window );">Notes to Former Owners</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_LongTermDebtOtherDisclosuresAbstract', window );"><strong>Other disclosures</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_fix_CumulativeNumberOfCompaniesAcquiredOutstandingNotesToFormerOwners', window );">Cumulative number of companies acquired | item</a></td>
<td class="nump">8<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_NotesAndLoansPayable', window );">Notes to former owners</a></td>
<td class="nump">$ 67,593<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 44,070<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=us-gaap_LetterOfCreditMember', window );">Letter of Credit | Minimum</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_DebtInstrumentInterestRateEffectivePercentageAbstract', window );"><strong>Debt Instrument, Interest Rate, Effective Percentage [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DebtInstrumentBasisSpreadOnVariableRate1', window );">Additional per annum interest margin (as a percent)</a></td>
<td class="nump">1.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_DebtInstrumentAxis=us-gaap_LetterOfCreditMember', window );">Letter of Credit | Maximum</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_DebtInstrumentInterestRateEffectivePercentageAbstract', window );"><strong>Debt Instrument, Interest Rate, Effective Percentage [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_DebtInstrumentBasisSpreadOnVariableRate1', window );">Additional per annum interest margin (as a percent)</a></td>
<td class="nump">2.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_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>
</tr>
<tr class="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 Obligations</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_LineOfCredit', window );">Outstanding borrowings</a></td>
<td class="nump">$ 0<span></span>
</td>
<td class="nump">$ 0<span></span>
</td>
<td class="nump">$ 0<span></span>
</td>
</tr>
<tr class="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] | Minimum</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_DebtInstrumentInterestRateEffectivePercentageAbstract', window );"><strong>Debt Instrument, Interest Rate, Effective Percentage [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_LineOfCreditFacilityUnusedCapacityCommitmentFeePercentage', window );">Commitment fees payable on unused portion of the facility (as a percent)</a></td>
<td class="nump">0.15%<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] | Maximum</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_DebtInstrumentInterestRateEffectivePercentageAbstract', window );"><strong>Debt Instrument, Interest Rate, Effective Percentage [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LineOfCreditFacilityUnusedCapacityCommitmentFeePercentage', window );">Commitment fees payable on unused portion of the facility (as a percent)</a></td>
<td class="nump">0.25%<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] | SOFR | Consolidated Total Indebtedness to Credit Facility Adjusted EBITDA: Less than 1.00</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_DebtInstrumentInterestRateEffectivePercentageAbstract', window );"><strong>Debt Instrument, Interest Rate, Effective Percentage [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_DebtInstrumentBasisSpreadOnVariableRate1', window );">Additional per annum interest margin (as a percent)</a></td>
<td class="nump">1.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_CreditFacilityAxis=us-gaap_RevolvingCreditFacilityMember', window );">Revolving Credit Facility [Member] | SOFR | Consolidated Total Indebtedness to Credit Facility Adjusted EBITDA: 1.00 to less than 1.75</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_DebtInstrumentInterestRateEffectivePercentageAbstract', window );"><strong>Debt Instrument, Interest Rate, Effective Percentage [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DebtInstrumentBasisSpreadOnVariableRate1', window );">Additional per annum interest margin (as a percent)</a></td>
<td class="nump">1.25%<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="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] | SOFR | Consolidated Total Indebtedness to Credit Facility Adjusted EBITDA: 1.75 to less than 2.50</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_DebtInstrumentInterestRateEffectivePercentageAbstract', window );"><strong>Debt Instrument, Interest Rate, Effective Percentage [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_DebtInstrumentBasisSpreadOnVariableRate1', window );">Additional per annum interest margin (as a percent)</a></td>
<td class="nump">1.50%<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] | SOFR | Consolidated Total Indebtedness to Credit Facility Adjusted EBITDA: 2.50 to less than 3.00</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_DebtInstrumentInterestRateEffectivePercentageAbstract', window );"><strong>Debt Instrument, Interest Rate, Effective Percentage [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DebtInstrumentBasisSpreadOnVariableRate1', window );">Additional per annum interest margin (as a percent)</a></td>
<td class="nump">1.75%<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="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] | SOFR | Consolidated Total Indebtedness to Credit Facility Adjusted EBITDA: 3.00 or Greater</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_DebtInstrumentInterestRateEffectivePercentageAbstract', window );"><strong>Debt Instrument, Interest Rate, Effective Percentage [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_DebtInstrumentBasisSpreadOnVariableRate1', window );">Additional per annum interest margin (as a percent)</a></td>
<td class="nump">2.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_CreditFacilityAxis=us-gaap_RevolvingCreditFacilityMember', window );">Revolving Credit Facility [Member] | Base Rate | Consolidated Total Indebtedness to Credit Facility Adjusted EBITDA: Less than 1.00</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_DebtInstrumentInterestRateEffectivePercentageAbstract', window );"><strong>Debt Instrument, Interest Rate, Effective Percentage [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DebtInstrumentBasisSpreadOnVariableRate1', window );">Additional per annum interest margin (as a percent)</a></td>
<td class="nump">0.00%<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="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] | Base Rate | Consolidated Total Indebtedness to Credit Facility Adjusted EBITDA: 1.00 to less than 1.75</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_DebtInstrumentInterestRateEffectivePercentageAbstract', window );"><strong>Debt Instrument, Interest Rate, Effective Percentage [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_DebtInstrumentBasisSpreadOnVariableRate1', window );">Additional per annum interest margin (as a percent)</a></td>
<td class="nump">0.25%<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] | Base Rate | Consolidated Total Indebtedness to Credit Facility Adjusted EBITDA: 1.75 to less than 2.50</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_DebtInstrumentInterestRateEffectivePercentageAbstract', window );"><strong>Debt Instrument, Interest Rate, Effective Percentage [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DebtInstrumentBasisSpreadOnVariableRate1', window );">Additional per annum interest margin (as a percent)</a></td>
<td class="nump">0.50%<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] | Base Rate | Consolidated Total Indebtedness to Credit Facility Adjusted EBITDA: 2.50 to less than 3.00</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_DebtInstrumentInterestRateEffectivePercentageAbstract', window );"><strong>Debt Instrument, Interest Rate, Effective Percentage [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_DebtInstrumentBasisSpreadOnVariableRate1', window );">Additional per annum interest margin (as a percent)</a></td>
<td class="nump">0.75%<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] | Base Rate | Consolidated Total Indebtedness to Credit Facility Adjusted EBITDA: 3.00 or Greater</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_DebtInstrumentInterestRateEffectivePercentageAbstract', window );"><strong>Debt Instrument, Interest Rate, Effective Percentage [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DebtInstrumentBasisSpreadOnVariableRate1', window );">Additional per annum interest margin (as a percent)</a></td>
<td class="nump">1.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_CreditFacilityAxis=us-gaap_RevolvingCreditFacilityMember', window );">Revolving Credit Facility [Member] | Senior Revolving Credit Facility</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_DebtInstrumentLineItems', window );"><strong>Debt Obligations</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_LineOfCreditFacilityMaximumBorrowingCapacity', window );">Borrowing capacity</a></td>
<td class="nump">$ 850,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LineOfCredit', window );">Outstanding borrowings</a></td>
<td class="nump">0<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 );">Letters of credit amount outstanding</a></td>
<td class="nump">80,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LineOfCreditFacilityRemainingBorrowingCapacity', window );">Credit available</a></td>
<td class="nump">770,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CreditFacilityAxis=us-gaap_RevolvingCreditFacilityMember', window );">Revolving Credit Facility [Member] | Senior Revolving Credit Facility | Maximum</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_DebtInstrumentLineItems', window );"><strong>Debt Obligations</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_fix_LineOfCreditBorrowingCapacityAccordionOption', window );">Line of credit borrowing capacity accordion option</a></td>
<td class="nump">250,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CreditFacilityAxis=us-gaap_RevolvingCreditFacilityMember', window );">Revolving Credit Facility [Member] | Letter of Credit</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_DebtInstrumentLineItems', window );"><strong>Debt Obligations</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_LineOfCreditFacilityMaximumBorrowingCapacity', window );">Borrowing capacity</a></td>
<td class="nump">$ 175,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_fix_CumulativeNumberOfCompaniesAcquiredOutstandingNotesToFormerOwners">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The cumulative number of companies acquired by the entity whereby there are outstanding notes to former owners.</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;">fix_CumulativeNumberOfCompaniesAcquiredOutstandingNotesToFormerOwners</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>fix_</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_fix_LineOfCreditBorrowingCapacityAccordionOption">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Accordion option on credit facility per terms of the agreement.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">fix_LineOfCreditBorrowingCapacityAccordionOption</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>fix_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance 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_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_DebtInstrumentInterestRateEffectivePercentageAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DebtInstrumentInterestRateEffectivePercentageAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</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/exampleRef<br> -Topic 835<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 8<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482949/835-30-55-8<br><br>Reference 2: http://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><br>Reference 26: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 835<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482925/835-30-45-2<br><br>Reference 27: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 835<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482900/835-30-50-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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_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_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://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/2147478546/942-210-S99-1<br><br>Reference 3: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 944<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-03(a)(16)(a)(2))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478777/944-210-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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_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> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(22)(b))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(19)(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_LineOfCreditFacilityRemainingBorrowingCapacity">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of borrowing capacity currently available under the credit facility (current borrowing capacity less the amount of borrowings outstanding).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481544/470-10-50-6<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(22)(b))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(19)(b))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LineOfCreditFacilityRemainingBorrowingCapacity</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LineOfCreditFacilityUnusedCapacityCommitmentFeePercentage">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The fee, expressed as a percentage of the line of credit facility, for available but unused credit capacity under the credit facility.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LineOfCreditFacilityUnusedCapacityCommitmentFeePercentage</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:percentItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LongTermDebtOtherDisclosuresAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LongTermDebtOtherDisclosuresAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_NotesAndLoansPayable">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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, carrying value as of the balance sheet date of all notes and loans payable (with maturities initially due after one year or beyond the operating cycle if longer).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(22))<br> -SubTopic 10<br> -Topic 210<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 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/2147478546/942-210-S99-1<br><br>Reference 3: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 944<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-03(a)(16)(a)(2))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478777/944-210-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_NotesAndLoansPayable</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance 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=fix_SubordinateDebtAndPromissoryNoteMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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=fix_SubordinateDebtAndPromissoryNoteMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><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=us-gaap_LetterOfCreditMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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=us-gaap_LetterOfCreditMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_RangeAxis=srt_MinimumMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_RangeAxis=srt_MinimumMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_RangeAxis=srt_MaximumMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_RangeAxis=srt_MaximumMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_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_VariableRateAxis=us-gaap_SecuredOvernightFinancingRateSofrMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_SecuredOvernightFinancingRateSofrMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><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_fix_DebtCovenantRatioAxis=fix_DebtCovenantRatioRangeOneMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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;">fix_DebtCovenantRatioAxis=fix_DebtCovenantRatioRangeOneMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><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_fix_DebtCovenantRatioAxis=fix_DebtCovenantRatioRangeTwoMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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;">fix_DebtCovenantRatioAxis=fix_DebtCovenantRatioRangeTwoMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><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_fix_DebtCovenantRatioAxis=fix_DebtCovenantRatioRangeThreeMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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;">fix_DebtCovenantRatioAxis=fix_DebtCovenantRatioRangeThreeMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><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_fix_DebtCovenantRatioAxis=fix_DebtCovenantRatioRangeFourMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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;">fix_DebtCovenantRatioAxis=fix_DebtCovenantRatioRangeFourMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><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_fix_DebtCovenantRatioAxis=fix_DebtCovenantRatioRangeFiveMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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;">fix_DebtCovenantRatioAxis=fix_DebtCovenantRatioRangeFiveMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><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_us-gaap_DebtInstrumentAxis=fix_SeniorRevolvingCreditFacilityMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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=fix_SeniorRevolvingCreditFacilityMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>55
<FILENAME>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.3</span><table class="report" border="0" cellspacing="2" id="idm46664933857552">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Debt Obligations - Notes to Former Owners (Details) - Notes to Former Owners - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th"><div>Sep. 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_LongTermDebtByMaturityAbstract', window );"><strong>Future principal payments of long-term debt</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_NotesAndLoansPayable', window );">Notes issued to former owners</a></td>
<td class="nump">$ 67,593<span></span>
</td>
<td class="nump">$ 44,070<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=fix_SubordinateDebtAndPromissoryNoteMember', window );">2025</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_LongTermDebtByMaturityAbstract', window );"><strong>Future principal payments of long-term debt</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_NotesAndLoansPayable', window );">Notes issued to former owners</a></td>
<td class="nump">$ 5,968<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=fix_SubordinateDebtAndPromissoryNoteMember', window );">2025 | Minimum</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_LongTermDebtByMaturityAbstract', window );"><strong>Future principal payments of long-term debt</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_DebtInstrumentInterestRateStatedPercentage', window );">Stated interest rate (as a percent)</a></td>
<td class="nump">2.30%<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=fix_SubordinateDebtAndPromissoryNoteMember', window );">2025 | Maximum</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_LongTermDebtByMaturityAbstract', window );"><strong>Future principal payments of long-term debt</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_DebtInstrumentInterestRateStatedPercentage', window );">Stated interest rate (as a percent)</a></td>
<td class="nump">2.50%<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=fix_SubordinateDebtAndPromissoryNoteMember', window );">2026</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_LongTermDebtByMaturityAbstract', window );"><strong>Future principal payments of long-term debt</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_NotesAndLoansPayable', window );">Notes issued to former owners</a></td>
<td class="nump">$ 30,625<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=fix_SubordinateDebtAndPromissoryNoteMember', window );">2026 | Minimum</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_LongTermDebtByMaturityAbstract', window );"><strong>Future principal payments of long-term debt</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_DebtInstrumentInterestRateStatedPercentage', window );">Stated interest rate (as a percent)</a></td>
<td class="nump">2.50%<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=fix_SubordinateDebtAndPromissoryNoteMember', window );">2026 | Maximum</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_LongTermDebtByMaturityAbstract', window );"><strong>Future principal payments of long-term debt</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_DebtInstrumentInterestRateStatedPercentage', window );">Stated interest rate (as a percent)</a></td>
<td class="nump">5.50%<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=fix_SubordinateDebtAndPromissoryNoteMember', window );">2027</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_LongTermDebtByMaturityAbstract', window );"><strong>Future principal payments of long-term debt</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_NotesAndLoansPayable', window );">Notes issued to former owners</a></td>
<td class="nump">$ 26,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_DebtInstrumentInterestRateStatedPercentage', window );">Stated interest rate (as a percent)</a></td>
<td class="nump">5.50%<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=fix_SubordinateDebtAndPromissoryNoteMember', window );">2028</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_LongTermDebtByMaturityAbstract', window );"><strong>Future principal payments of long-term debt</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_NotesAndLoansPayable', window );">Notes issued to former owners</a></td>
<td class="nump">$ 5,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_DebtInstrumentInterestRateStatedPercentage', window );">Stated interest rate (as a percent)</a></td>
<td class="nump">5.50%<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_DebtInstrumentInterestRateStatedPercentage">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Contractual interest rate for funds borrowed, under the debt agreement.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(22)(a)(1))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 2: 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></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DebtInstrumentInterestRateStatedPercentage</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:percentItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LongTermDebtByMaturityAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LongTermDebtByMaturityAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_NotesAndLoansPayable">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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, carrying value as of the balance sheet date of all notes and loans payable (with maturities initially due after one year or beyond the operating cycle if longer).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(22))<br> -SubTopic 10<br> -Topic 210<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 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/2147478546/942-210-S99-1<br><br>Reference 3: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 944<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-03(a)(16)(a)(2))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478777/944-210-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_NotesAndLoansPayable</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance 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=fix_SubordinateDebtAndPromissoryNoteMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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=fix_SubordinateDebtAndPromissoryNoteMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><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_fix_DebtMaturityDateAxis=fix_MaturityYearTwoMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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;">fix_DebtMaturityDateAxis=fix_MaturityYearTwoMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_RangeAxis=srt_MinimumMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_RangeAxis=srt_MinimumMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_RangeAxis=srt_MaximumMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_RangeAxis=srt_MaximumMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_fix_DebtMaturityDateAxis=fix_MaturityYearThreeMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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;">fix_DebtMaturityDateAxis=fix_MaturityYearThreeMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><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_fix_DebtMaturityDateAxis=fix_MaturityYearFourMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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;">fix_DebtMaturityDateAxis=fix_MaturityYearFourMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><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_fix_DebtMaturityDateAxis=fix_MaturityYearFiveMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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;">fix_DebtMaturityDateAxis=fix_MaturityYearFiveMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><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>56
<FILENAME>R45.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.24.3</span><table class="report" border="0" cellspacing="2" id="idm46664938606160">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Leases (Details)<br> $ in Millions</strong></div></th>
<th class="th" colspan="2">3 Months Ended</th>
<th class="th" colspan="2">9 Months Ended</th>
<th class="th" colspan="1"></th>
</tr>
<tr>
<th class="th">
<div>Sep. 30, 2024 </div>
<div>USD ($)</div>
</th>
<th class="th">
<div>Sep. 30, 2023 </div>
<div>USD ($) </div>
<div>lease</div>
</th>
<th class="th">
<div>Sep. 30, 2024 </div>
<div>USD ($) </div>
<div>Option</div>
</th>
<th class="th">
<div>Sep. 30, 2023 </div>
<div>USD ($) </div>
<div>lease</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_LesseeLeaseDescriptionLineItems', window );"><strong>Leases</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_fix_VariableLeaseAndShortTermLeaseCost', window );">Variable lease expense and short-term lease expenses</a></td>
<td class="nump">$ 26.4<span></span>
</td>
<td class="nump">$ 17.0<span></span>
</td>
<td class="nump">$ 67.1<span></span>
</td>
<td class="nump">$ 38.8<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent', window );">Weighted average discount rate for operating leases</a></td>
<td class="nump">6.00%<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">6.00%<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">5.80%<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OperatingLeaseExpense', window );">Operating lease expense</a></td>
<td class="nump">$ 37.1<span></span>
</td>
<td class="nump">25.7<span></span>
</td>
<td class="nump">$ 98.6<span></span>
</td>
<td class="nump">61.7<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1', window );">Weighted average remaining lease term</a></td>
<td class="text">11 years 1 month 6 days<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">11 years 1 month 6 days<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">10 years 10 months 24 days<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PaymentsForRent', window );">Rent paid to related parties</a></td>
<td class="nump">$ 2.4<span></span>
</td>
<td class="nump">$ 1.9<span></span>
</td>
<td class="nump">$ 7.1<span></span>
</td>
<td class="nump">$ 5.6<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LesseeOperatingLeaseExistenceOfOptionToExtend', window );">Existence of option to extend</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">true<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_fix_NumberOfOffSiteConstructionRealEstateLeasesCommenced', window );">Number of off-site construction real estate leases commenced | lease</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">2<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">2<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</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<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_LesseeLeaseDescriptionLineItems', window );"><strong>Leases</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_LesseeOperatingLeaseTermOfContract', window );">Lease term for operating lease</a></td>
<td class="text">3 years<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">3 years<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</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_fix_NumberOfOptionsToRenew', window );">Number of options to renew | Option</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">1<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</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</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<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_LesseeLeaseDescriptionLineItems', window );"><strong>Leases</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_LesseeOperatingLeaseTermOfContract', window );">Lease term for operating lease</a></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>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_fix_NumberOfOffSiteConstructionRealEstateLeasesCommenced">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 off-site construction real estate leases commenced.</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;">fix_NumberOfOffSiteConstructionRealEstateLeasesCommenced</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>fix_</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_fix_NumberOfOptionsToRenew">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Represents the number of options to renew.</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;">fix_NumberOfOptionsToRenew</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>fix_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:integerItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_fix_VariableLeaseAndShortTermLeaseCost">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of variable lease cost and short-term lease cost, excluded from lease liability, recognized when obligation for payment is incurred for finance and operating leases.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">fix_VariableLeaseAndShortTermLeaseCost</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>fix_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_LesseeLeaseDescriptionLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 7A<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478964/842-20-50-7A<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478964/842-20-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_LesseeLeaseDescriptionLineItems</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LesseeOperatingLeaseExistenceOfOptionToExtend">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 (true false) whether lessee has option to extend operating lease.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (a)(3)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478964/842-20-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_LesseeOperatingLeaseExistenceOfOptionToExtend</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</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_us-gaap_LesseeOperatingLeaseTermOfContract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Term of lessee's operating lease, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents reported fact of one year, five months, and thirteen days.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (a)(3)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478964/842-20-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_LesseeOperatingLeaseTermOfContract</td>
</tr>
<tr>
<td style="padding-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_OperatingLeaseExpense">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of operating lease expense. Excludes sublease income.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 4<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479041/842-20-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_OperatingLeaseExpense</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Weighted average discount rate for operating lease calculated at point in time.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 53<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479589/842-20-55-53<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (g)(4)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478964/842-20-50-4<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:percentItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Weighted average remaining lease term for operating lease, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents reported fact of one year, five months, and thirteen days.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 53<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479589/842-20-55-53<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (g)(3)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478964/842-20-50-4<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:durationItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PaymentsForRent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 payments to lessor's for use of assets under operating leases.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/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_PaymentsForRent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_RangeAxis=srt_MinimumMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_RangeAxis=srt_MinimumMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_RangeAxis=srt_MaximumMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_RangeAxis=srt_MaximumMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>57
<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.3</span><table class="report" border="0" cellspacing="2" id="idm46664931613296">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Leases - Summary of Operating Lease Assets and Liabilities (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th"><div>Sep. 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_AssetsAndLiabilitiesLesseeAbstract', window );"><strong>Summary of lease asset and liabilities</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OperatingLeaseRightOfUseAsset', window );">Operating lease right-of-use assets</a></td>
<td class="nump">$ 225,301<span></span>
</td>
<td class="nump">$ 205,712<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OperatingLeaseLiabilityAbstract', window );"><strong>Operating lease liabilities:</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OperatingLeaseLiabilityCurrent', window );">Other current liabilities</a></td>
<td class="nump">$ 26,979<span></span>
</td>
<td class="nump">$ 24,426<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OperatingLeaseLiabilityCurrentStatementOfFinancialPositionExtensibleList', window );">Operating Lease, Liability, Current, Statement of Financial Position [Extensible Enumeration]</a></td>
<td class="text">Other Liabilities, Current<span></span>
</td>
<td class="text">Other Liabilities, Current<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OperatingLeaseLiabilityNoncurrent', window );">Long-term operating lease liabilities</a></td>
<td class="nump">$ 208,268<span></span>
</td>
<td class="nump">$ 188,136<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_OperatingLeaseLiability', window );">Total operating lease liabilities</a></td>
<td class="nump">$ 235,247<span></span>
</td>
<td class="nump">$ 212,562<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_AssetsAndLiabilitiesLesseeAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AssetsAndLiabilitiesLesseeAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OperatingLeaseLiability">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Present value of lessee's discounted obligation for lease payments from operating lease.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479041/842-20-45-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OperatingLeaseLiability</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OperatingLeaseLiabilityAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OperatingLeaseLiabilityAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OperatingLeaseLiabilityCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Present value of lessee's discounted obligation for lease payments from operating lease, classified as current.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479041/842-20-45-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OperatingLeaseLiabilityCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OperatingLeaseLiabilityCurrentStatementOfFinancialPositionExtensibleList">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 line item in statement of financial position that includes current operating lease liability.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479041/842-20-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_OperatingLeaseLiabilityCurrentStatementOfFinancialPositionExtensibleList</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>enum2:enumerationSetItemType</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_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>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>58
<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.3</span><table class="report" border="0" cellspacing="2" id="idm46664927508288">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Leases - Maturities of Lease Liabilities (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="2">3 Months Ended</th>
<th class="th" colspan="2">9 Months Ended</th>
<th class="th" colspan="1"></th>
</tr>
<tr>
<th class="th"><div>Sep. 30, 2024</div></th>
<th class="th"><div>Sep. 30, 2023</div></th>
<th class="th"><div>Sep. 30, 2024</div></th>
<th class="th"><div>Sep. 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_OperatingLeaseLiabilitiesPaymentsDueAbstract', window );"><strong>Maturities of lease liabilities:</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LesseeOperatingLeaseLiabilityPaymentsRemainderOfFiscalYear', window );">2024 (excluding the nine months ended September 30, 2024)</a></td>
<td class="nump">$ 10,146<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 10,146<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_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths', window );">2025</a></td>
<td class="nump">39,434<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">39,434<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_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo', window );">2026</a></td>
<td class="nump">35,646<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">35,646<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_LesseeOperatingLeaseLiabilityPaymentsDueYearThree', window );">2027</a></td>
<td class="nump">31,101<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">31,101<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_LesseeOperatingLeaseLiabilityPaymentsDueYearFour', window );">2028</a></td>
<td class="nump">27,234<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">27,234<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_fix_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFour', window );">Thereafter</a></td>
<td class="nump">189,877<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">189,877<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_LesseeOperatingLeaseLiabilityPaymentsDue', window );">Total Lease Payments</a></td>
<td class="nump">333,438<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">333,438<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_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount', window );">Less-Present Value Discount</a></td>
<td class="num">(98,191)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(98,191)<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_OperatingLeaseLiability', window );">Present Value of Operating Lease Liabilities</a></td>
<td class="nump">235,247<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">235,247<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 212,562<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_fix_SupplementalInformationRelatedToLeasesAbstract', window );"><strong>Supplemental information related to leases:</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_OperatingLeasePayments', window );">Cash paid for amounts included in the measurement of operating lease liabilities</a></td>
<td class="nump">10,061<span></span>
</td>
<td class="nump">$ 7,293<span></span>
</td>
<td class="nump">29,377<span></span>
</td>
<td class="nump">$ 21,362<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability', window );">Operating lease right-of-use assets obtained in exchange for lease liabilities</a></td>
<td class="nump">$ 6,657<span></span>
</td>
<td class="nump">$ 82,352<span></span>
</td>
<td class="nump">$ 41,989<span></span>
</td>
<td class="nump">$ 98,102<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_fix_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFour">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of lessee's undiscounted obligation for lease payments for operating lease, due after fourth fiscal year following latest fiscal year.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">fix_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFour</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>fix_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance 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_fix_SupplementalInformationRelatedToLeasesAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">fix_SupplementalInformationRelatedToLeasesAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>fix_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of lessee's undiscounted obligation for lease payment for operating lease.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478964/842-20-50-6<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of lessee's undiscounted obligation for lease payment for operating lease to be paid in next fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478964/842-20-50-6<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of lessee's undiscounted obligation for lease payment for operating lease to be paid in fourth fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478964/842-20-50-6<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of lessee's undiscounted obligation for lease payment for operating lease to be paid in third fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478964/842-20-50-6<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of lessee's undiscounted obligation for lease payment for operating lease to be paid in second fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478964/842-20-50-6<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LesseeOperatingLeaseLiabilityPaymentsRemainderOfFiscalYear">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of lessee's undiscounted obligation for lease payment for operating lease having initial or remaining lease term in excess of one year to be paid 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 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478964/842-20-50-6<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LesseeOperatingLeaseLiabilityPaymentsRemainderOfFiscalYear</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of lessee's undiscounted obligation for lease payments in excess of discounted obligation for lease payments for operating lease.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478964/842-20-50-6<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OperatingLeaseLiabilitiesPaymentsDueAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OperatingLeaseLiabilitiesPaymentsDueAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OperatingLeaseLiability">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Present value of lessee's discounted obligation for lease payments from operating lease.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479041/842-20-45-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OperatingLeaseLiability</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OperatingLeasePayments">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of cash outflow from operating lease, excluding payments to bring another asset to condition and location necessary for its intended use.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 5<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479041/842-20-45-5<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (g)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478964/842-20-50-4<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OperatingLeasePayments</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of increase in right-of-use asset obtained in exchange for operating lease liability.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 53<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479589/842-20-55-53<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (g)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478964/842-20-50-4<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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>59
<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.3</span><table class="report" border="0" cellspacing="2" id="idm46664934756784">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Commitments and Contingencies (Details) - USD ($)<br> $ in Millions</strong></div></th>
<th class="th" colspan="1">3 Months Ended</th>
<th class="th" colspan="1">9 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Mar. 31, 2023</div></th>
<th class="th"><div>Sep. 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_LossContingenciesByNatureOfContingencyAxis=fix_DisputeWithCustomerMember', window );">Dispute With Customer</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_LossContingenciesLineItems', window );"><strong>Commitments and Contingencies</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_GainLossRelatedToLitigationSettlement', window );">Gain (loss) related to settlement agreements</a></td>
<td class="nump">$ 6.8<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_LossContingenciesByNatureOfContingencyAxis=us-gaap_SuretyBondMember', window );">Surety | Minimum</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_fix_LossContingencySuretyAbstract', window );"><strong>Surety</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_fix_PercentageOfBusinessWhichHasRequiredBonds', window );">Percentage of business which has required bonds</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">10.00%<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LossContingenciesByNatureOfContingencyAxis=us-gaap_SuretyBondMember', window );">Surety | Maximum</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_fix_LossContingencySuretyAbstract', window );"><strong>Surety</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_fix_PercentageOfBusinessWhichHasRequiredBonds', window );">Percentage of business which has required bonds</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">20.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_IncomeStatementLocationAxis=fix_GrossProfitMember', window );">Gross Profit. | Dispute With Customer</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_LossContingenciesLineItems', window );"><strong>Commitments and Contingencies</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_GainLossRelatedToLitigationSettlement', window );">Gain (loss) related to settlement agreements</a></td>
<td class="nump">6.6<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_IncomeStatementLocationAxis=us-gaap_SellingGeneralAndAdministrativeExpensesMember', window );">Selling, General and Administrative Expenses | Dispute With Customer</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_LossContingenciesLineItems', window );"><strong>Commitments and Contingencies</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_GainLossRelatedToLitigationSettlement', window );">Gain (loss) related to settlement agreements</a></td>
<td class="num">(0.7)<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_IncomeStatementLocationAxis=us-gaap_InterestIncomeMember', window );">Interest Income | Dispute With Customer</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_LossContingenciesLineItems', window );"><strong>Commitments and Contingencies</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_GainLossRelatedToLitigationSettlement', window );">Gain (loss) related to settlement agreements</a></td>
<td class="nump">1.3<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_IncomeStatementLocationAxis=fix_BusinessCombinationContingentConsiderationChangeInContingentConsiderationLiabilityMember', window );">Change in Fair Value of Contingent Earn-Out Obligations | Dispute With Customer</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_LossContingenciesLineItems', window );"><strong>Commitments and Contingencies</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_GainLossRelatedToLitigationSettlement', window );">Gain (loss) related to settlement agreements</a></td>
<td class="num">$ (1.8)<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_fix_LossContingencySuretyAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">fix_LossContingencySuretyAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>fix_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_fix_PercentageOfBusinessWhichHasRequiredBonds">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 percentage of business which has required bonds.</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;">fix_PercentageOfBusinessWhichHasRequiredBonds</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>fix_</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_GainLossRelatedToLitigationSettlement">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></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 settlement of litigation and insurance claims. Excludes claims within an insurance entity's normal claims settlement process.</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 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483076/450-20-50-1<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_GainLossRelatedToLitigationSettlement</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_LossContingenciesLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 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><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 720<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483359/720-20-50-1<br><br>Reference 4: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 460<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 27<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482395/460-10-55-27<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 450<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 9<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483076/450-20-50-9<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 450<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483076/450-20-50-4<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 460<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482425/460-10-50-3<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 450<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483076/450-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_LossContingenciesLineItems</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LossContingenciesByNatureOfContingencyAxis=fix_DisputeWithCustomerMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_LossContingenciesByNatureOfContingencyAxis=fix_DisputeWithCustomerMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><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_LossContingenciesByNatureOfContingencyAxis=us-gaap_SuretyBondMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_LossContingenciesByNatureOfContingencyAxis=us-gaap_SuretyBondMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_RangeAxis=srt_MinimumMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_RangeAxis=srt_MinimumMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_RangeAxis=srt_MaximumMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_RangeAxis=srt_MaximumMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncomeStatementLocationAxis=fix_GrossProfitMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncomeStatementLocationAxis=fix_GrossProfitMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncomeStatementLocationAxis=us-gaap_SellingGeneralAndAdministrativeExpensesMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncomeStatementLocationAxis=us-gaap_SellingGeneralAndAdministrativeExpensesMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncomeStatementLocationAxis=us-gaap_InterestIncomeMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncomeStatementLocationAxis=us-gaap_InterestIncomeMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncomeStatementLocationAxis=fix_BusinessCombinationContingentConsiderationChangeInContingentConsiderationLiabilityMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncomeStatementLocationAxis=fix_BusinessCombinationContingentConsiderationChangeInContingentConsiderationLiabilityMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><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>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.3</span><table class="report" border="0" cellspacing="2" id="idm46664927181840">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Stockholders' Equity - Number of Shares (Details) - shares<br> shares in Thousands</strong></div></th>
<th class="th" colspan="2">3 Months Ended</th>
<th class="th" colspan="2">9 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Sep. 30, 2024</div></th>
<th class="th"><div>Sep. 30, 2023</div></th>
<th class="th"><div>Sep. 30, 2024</div></th>
<th class="th"><div>Sep. 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_WeightedAverageNumberOfSharesOutstandingDilutedDisclosureItemsAbstract', window );"><strong>Reconciliation of the number of shares outstanding with the number of shares used in computing basic and diluted 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_CommonStockSharesOutstanding', window );">Common shares outstanding, end of period</a></td>
<td class="nump">35,593<span></span>
</td>
<td class="nump">35,760<span></span>
</td>
<td class="nump">35,593<span></span>
</td>
<td class="nump">35,760<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_fix_EffectOfUsingWeightedAverageCommonSharesOutstanding', window );">Effect of using weighted average common shares outstanding</a></td>
<td class="nump">76<span></span>
</td>
<td class="nump">60<span></span>
</td>
<td class="nump">125<span></span>
</td>
<td class="nump">59<span></span>
</td>
</tr>
<tr class="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 );">Shares used in computing earnings per share-basic</a></td>
<td class="nump">35,669<span></span>
</td>
<td class="nump">35,820<span></span>
</td>
<td class="nump">35,718<span></span>
</td>
<td class="nump">35,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_IncrementalCommonSharesAttributableToShareBasedPaymentArrangements', window );">Effect of shares issuable under stock option plans based on the treasury stock method</a></td>
<td class="nump">30<span></span>
</td>
<td class="nump">28<span></span>
</td>
<td class="nump">30<span></span>
</td>
<td class="nump">26<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncrementalCommonSharesAttributableToContingentlyIssuableShares', window );">Effect of restricted and contingently issuable shares</a></td>
<td class="nump">56<span></span>
</td>
<td class="nump">69<span></span>
</td>
<td class="nump">56<span></span>
</td>
<td class="nump">65<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_WeightedAverageNumberOfDilutedSharesOutstanding', window );">Shares used in computing earnings per share-diluted</a></td>
<td class="nump">35,755<span></span>
</td>
<td class="nump">35,917<span></span>
</td>
<td class="nump">35,804<span></span>
</td>
<td class="nump">35,910<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_fix_EffectOfUsingWeightedAverageCommonSharesOutstanding">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 effect of using weighted average common shares 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;">fix_EffectOfUsingWeightedAverageCommonSharesOutstanding</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>fix_</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_CommonStockSharesOutstanding">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Number of shares of common stock outstanding. Common stock represent the ownership interest in a corporation.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -SubTopic 10<br> -Topic 505<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481112/505-10-50-2<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(29))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.6-05(4))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479170/946-210-S99-2<br><br>Reference 4: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3<br> -Subparagraph (SX 210.6-09(4)(b))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479134/946-220-S99-3<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.6-04(16)(a))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479170/946-210-S99-1<br><br>Reference 6: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3<br> -Subparagraph (SX 210.6-09(7))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479134/946-220-S99-3<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CommonStockSharesOutstanding</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncrementalCommonSharesAttributableToContingentlyIssuableShares">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 contingently issuable shares. Contingently issuable shares are those shares that are issuable for little or no cash contingent on certain conditions being met.</p></div>
<a href="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 23<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482689/260-10-45-23<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 26<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482689/260-10-45-26<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 44<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482689/260-10-45-44<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 51<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482689/260-10-45-51<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 52<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482689/260-10-45-52<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 53<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482689/260-10-45-53<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 54<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482689/260-10-45-54<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 48<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482689/260-10-45-48<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 48<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482689/260-10-45-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_IncrementalCommonSharesAttributableToContingentlyIssuableShares</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncrementalCommonSharesAttributableToShareBasedPaymentArrangements">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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_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>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.3</span><table class="report" border="0" cellspacing="2" id="idm46664935146128">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Stockholders' Equity - Incentive and Other (Details) - USD ($)<br> $ / shares in Units, $ in Thousands, shares in Millions</strong></div></th>
<th class="th" colspan="2">3 Months Ended</th>
<th class="th" colspan="2">9 Months Ended</th>
<th class="th" colspan="1">210 Months Ended</th>
<th class="th" colspan="1"></th>
<th class="th" colspan="1"></th>
</tr>
<tr>
<th class="th"><div>Sep. 30, 2024</div></th>
<th class="th"><div>Sep. 30, 2023</div></th>
<th class="th"><div>Sep. 30, 2024</div></th>
<th class="th"><div>Sep. 30, 2023</div></th>
<th class="th"><div>Sep. 30, 2024</div></th>
<th class="th"><div>Aug. 07, 2024</div></th>
<th class="th"><div>Mar. 29, 2007</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_DisclosureOfRepurchaseAgreementsAbstract', window );"><strong>Share Repurchase Program</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PaymentsForRepurchaseOfCommonStock', window );">Share repurchase</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 42,024<span></span>
</td>
<td class="nump">$ 8,563<span></span>
</td>
<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_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount', window );">Anti-dilutive securities excluded from computation of earnings per share amount (in shares)</a></td>
<td class="nump">0.0<span></span>
</td>
<td class="nump">0.0<span></span>
</td>
<td class="nump">0.0<span></span>
</td>
<td class="nump">0.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>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PlanNameAxis=fix_StockRepurchaseProgram2007Member', window );">Stock Repurchase Program 2007</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_DisclosureOfRepurchaseAgreementsAbstract', window );"><strong>Share Repurchase Program</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_StockRepurchaseProgramNumberOfSharesAuthorizedToBeRepurchased', window );">Number of shares of outstanding common stock authorized to be acquired under a stock repurchase program</a></td>
<td class="nump">11.4<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">11.4<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">11.4<span></span>
</td>
<td class="nump">0.4<span></span>
</td>
<td class="nump">1.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_TreasuryStockSharesAcquired', window );">Share repurchase (in shares)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">10.4<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_PaymentsForRepurchaseOfCommonStock', window );">Share repurchase</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 42,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>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_TreasuryStockAcquiredAverageCostPerShare', window );">Average price (in dollars per share)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 310.02<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 29.99<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 | Stock Repurchase Program 2007</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_DisclosureOfRepurchaseAgreementsAbstract', window );"><strong>Share Repurchase Program</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_TreasuryStockSharesAcquired', window );">Share repurchase (in shares)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<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>
<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_srt_StockRepurchaseProgramNumberOfSharesAuthorizedToBeRepurchased">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Number of shares authorized to be purchased under share repurchase plan. Includes, but is not limited to, repurchase of stock and unit of ownership.</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 505<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481520/505-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;">srt_StockRepurchaseProgramNumberOfSharesAuthorizedToBeRepurchased</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>srt_</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_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_DisclosureOfRepurchaseAgreementsAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DisclosureOfRepurchaseAgreementsAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PaymentsForRepurchaseOfCommonStock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The cash outflow to reacquire common stock during the period.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 15<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-15<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PaymentsForRepurchaseOfCommonStock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_TreasuryStockAcquiredAverageCostPerShare">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Total cost of shares repurchased divided by the total number of shares repurchased.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 505<br> -SubTopic 30<br> -Section 45<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481549/505-30-45-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_TreasuryStockAcquiredAverageCostPerShare</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_TreasuryStockSharesAcquired">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 are being held in treasury.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -SubTopic 10<br> -Topic 505<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481112/505-10-50-2<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(29))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 505<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.3-04)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480008/505-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_TreasuryStockSharesAcquired</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PlanNameAxis=fix_StockRepurchaseProgram2007Member">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PlanNameAxis=fix_StockRepurchaseProgram2007Member</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><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>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>62
<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.3</span><table class="report" border="0" cellspacing="2" id="idm46664935264704">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Segment Information (Details)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="2">3 Months Ended</th>
<th class="th" colspan="2">9 Months Ended</th>
</tr>
<tr>
<th class="th">
<div>Sep. 30, 2024 </div>
<div>USD ($)</div>
</th>
<th class="th">
<div>Sep. 30, 2023 </div>
<div>USD ($)</div>
</th>
<th class="th">
<div>Sep. 30, 2024 </div>
<div>USD ($) </div>
<div>segment</div>
</th>
<th class="th">
<div>Sep. 30, 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_SegmentReportingInformationLineItems', window );"><strong>Segment Information</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_NumberOfReportableSegments', window );">Number of reportable segments | segment</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">2<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="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 );">Revenue</a></td>
<td class="nump">$ 1,812,366<span></span>
</td>
<td class="nump">$ 1,378,124<span></span>
</td>
<td class="nump">$ 5,159,672<span></span>
</td>
<td class="nump">$ 3,849,194<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_GrossProfit', window );">Gross Profit</a></td>
<td class="nump">381,714<span></span>
</td>
<td class="nump">277,499<span></span>
</td>
<td class="nump">1,042,673<span></span>
</td>
<td class="nump">710,824<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 | Mechanical Segment</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<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 Information</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="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 );">Revenue</a></td>
<td class="nump">1,438,617<span></span>
</td>
<td class="nump">1,031,310<span></span>
</td>
<td class="nump">4,075,305<span></span>
</td>
<td class="nump">2,925,848<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_GrossProfit', window );">Gross Profit</a></td>
<td class="nump">292,372<span></span>
</td>
<td class="nump">210,147<span></span>
</td>
<td class="nump">789,056<span></span>
</td>
<td class="nump">547,695<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 | Electrical Segment</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<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 Information</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="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 );">Revenue</a></td>
<td class="nump">373,749<span></span>
</td>
<td class="nump">346,814<span></span>
</td>
<td class="nump">1,084,367<span></span>
</td>
<td class="nump">923,346<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_GrossProfit', window );">Gross Profit</a></td>
<td class="nump">$ 89,342<span></span>
</td>
<td class="nump">$ 67,352<span></span>
</td>
<td class="nump">$ 253,617<span></span>
</td>
<td class="nump">$ 163,129<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_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/2009/role/commonPracticeRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 22<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-22<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 48<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482785/280-10-55-48<br><br>Reference 3: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 4: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 30<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-30<br><br>Reference 5: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 270<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (i)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482964/270-10-50-1<br><br>Reference 6: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (ee)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 7: http://fasb.org/us-gaap/role/ref/otherTransitionRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 8: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(2))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483621/220-10-S99-2<br><br>Reference 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(1))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483621/220-10-S99-2<br><br>Reference 10: 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 11: 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 12: 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 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)(i))<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)(ii))<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/2003/role/exampleRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 31<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-31<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_GrossProfit</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_NumberOfReportableSegments">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Number of segments reported by the entity. A reportable segment is a component of an entity for which there is an accounting requirement to report separate financial information on that component in the entity's financial statements.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 47<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482785/280-10-55-47<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 54<br> -Subparagraph (e)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482785/280-10-55-54<br><br>Reference 3: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 18<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-18<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_NumberOfReportableSegments</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:integerItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_Revenues">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of revenue recognized from goods sold, services rendered, insurance premiums, or other activities that constitute an earning process. Includes, but is not limited to, investment and interest income before deduction of interest expense when recognized as a component of revenue, and sales and trading gain (loss).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 48<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482785/280-10-55-48<br><br>Reference 2: http://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 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 270<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (i)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482964/270-10-50-1<br><br>Reference 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 (ee)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 5: http://fasb.org/us-gaap/role/ref/otherTransitionRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 6: http://fasb.org/us-gaap/role/ref/otherTransitionRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(ii))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 323<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481687/323-10-50-3<br><br>Reference 9: http://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 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)(i))<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)(ii))<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/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 21: 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 22: 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 23: 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 24: 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 25: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 942<br> -SubTopic 235<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-05(b)(2))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477314/942-235-S99-1<br><br>Reference 26: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(1))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483621/220-10-S99-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_Revenues</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_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_srt_ConsolidationItemsAxis=us-gaap_OperatingSegmentsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_ConsolidationItemsAxis=us-gaap_OperatingSegmentsMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_StatementBusinessSegmentsAxis=fix_MechanicalSegmentMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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=fix_MechanicalSegmentMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><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=fix_ElectricalSegmentMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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=fix_ElectricalSegmentMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><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>63
<FILENAME>Financial_Report.xlsx
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
begin 644 Financial_Report.xlsx
M4$L#!!0    ( -V$6%D'04UB@0   +$    0    9&]C4')O<',O87!P+GAM
M;$V./0L",1!$_\IQO;=!P4)B0-!2L+(/>QLOD&1#LD)^OCG!CVX>;QA&WPIG
M*N*I#BV&5(_C(I(/ !47BK9.7:=N')=HI6-Y #OGD<Z,STA)8*O4'J@)I9GF
M3?X.CD:?<@X>K7A.YNJQ<&4GPZ4A!0W_<FW>J=0U[R;UEA_6\#MI7E!+ P04
M    " #=A%A9ZKE^EN\    K @  $0   &1O8U!R;W!S+V-O<F4N>&ULS9+!
M2L0P$(9?17)OITV+2NCFHGA2$%Q0O(7)[&ZP:4,RTN[;V];=+J(/X#$S?[[Y
M!J;!H+"/]!S[0)$=I:O1MUU2&#;BP!P40,(#>9/R*=%-S5T?O>'I&?<0#'Z8
M/8$LBFOPQ,8:-C #L[ 2A6XL*HQDN(\GO,45'SYCN\ L K7DJ>,$95Z"T//$
M<!S;!BZ &<84??HND%V)2_5/[-(!<4J.R:VI81CRH5IRTPXEO#T]OBSK9JY+
M;#JDZ5=RBH^!-N(\^;6ZN]\^""T+66=ED<EZ*PM5W:KZYGUV_>%W$?:]=3OW
MCXW/@KJ!7W>AOP!02P,$%     @ W81869E<G",0!@  G"<  !,   !X;"]T
M:&5M92]T:&5M93$N>&UL[5I;<]HX%'[OK]!X9_9M"\8V@;:T$W-I=MNTF83M
M3A^%$5B-;'EDD81_OT<V$,N6#>V23;J;/ 0LZ?O.14?GZ#AY\^XN8NB&B)3R
M>&#9+]O6N[<OWN!7,B0103 9IZ_PP JE3%ZU6FD PSA]R1,2P]R"BPA+>!3+
MUES@6QHO(];JM-O=5H1I;*$81V1@?5XL:$#05%%:;U\@M.4?,_@5RU2-9:,!
M$U=!)KF(M/+Y;,7\VMX^9<_I.ATR@6XP&U@@?\YOI^1.6HCA5,+$P&IG/U9K
MQ]'22(""R7V4!;I)]J/3%0@R#3LZG5C.=GSVQ.V?C,K:=#1M&N#C\7@XMLO2
MBW <!.!1NY["G?1LOZ1!";2C:=!DV/;:KI&FJHU33]/W?=_KFVB<"HU;3]-K
M=]W3CHG&K=!X#;[Q3X?#KHG&J]!TZVDF)_VN:Z3I%FA"1N/K>A(5M>5 TR
M6'!VULS2 Y9>*?IUE!K9';O=05SP6.XYB1'^QL4$UFG2&98T1G*=D 4. #?$
MT4Q0?*]!MHK@PI+27)#6SRFU4!H(FLB!]4>"(<7<K_WUE[O)I#-ZG7TZSFN4
M?VFK :?MNYO/D_QSZ.2?IY/734+.<+PL"?'[(UMAAR=N.Q-R.AQG0GS/]O:1
MI24RS^_Y"NM./&<?5I:P7<_/Y)Z,<B.[W?98??9/1VXCUZG LR+7E$8D19_(
M+;KD$3BU20TR$S\(G8:8:E < J0),9:AAOBTQJP1X!-]M[X(R-^-B/>K;YH]
M5Z%82=J$^!!&&N*<<^9ST6S[!Z5&T?95O-RCEU@5 9<8WS2J-2S%UGB5P/&M
MG#P=$Q+-E L&08:7)"82J3E^34@3_BNEVOZ<TT#PE"\D^DJ1CVFS(Z=T)LWH
M,QK!1J\;=8=HTCQZ_@7YG#4*')$;'0)G&[-&(81IN_ >KR2.FJW"$2M"/F(9
M-AIRM1:!MG&IA&!:$L;1>$[2M!'\6:PUDSY@R.S-D77.UI$.$9)>-T(^8LZ+
MD!&_'H8X2IKMHG%8!/V>7L-)P>B"RV;]N'Z&U3-L+([W1]072N0/)J<_Z3(T
M!Z.:60F]A%9JGZJ'-#ZH'C(*!?&Y'C[E>G@*-Y;&O%"N@GL!_]':-\*K^(+
M.7\N?<^E[[GT/:'2MS<C?6?!TXM;WD9N6\3[KC':US0N*&-7<LW(QU2ODRG8
M.9_ [/UH/I[Q[?K9)(2OFEDM(Q:02X&S022X_(O*\"K$">AD6R4)RU3393>*
M$IY"&V[I4_5*E=?EK[DHN#Q;Y.FOH70^+,_Y/%_GM,T+,T.W<DOJMI2^M28X
M2O2QS'!.'LL,.V<\DAVV=Z =-?OV77;D(Z4P4Y=#N!I"O@-MNIW<.CB>F)&Y
M"M-2D&_#^>G%>!KB.=D$N7V85VWGV-'1^^?!4;"C[SR6'<>(\J(A[J&&F,_#
M0X=Y>U^89Y7&4#04;6RL)"Q&MV"XU_$L%.!D8"V@!X.O40+R4E5@,5O& RN0
MHGQ,C$7H<.>77%_CT9+CVZ9EM6ZO*7<9;2)2.<)IF!-GJ\K>9;'!51W/55OR
ML+YJ/;053L_^6:W(GPP13A8+$DACE!>F2J+S&5.^YRM)Q%4XOT4SMA*7&+SC
MYL=Q3E.X$G:V#P(RN;LYJ7IE,6>F\M\M# DL6XA9$N)-7>W5YYN<KGHB=OJ7
M=\%@\OUPR4</Y3OG7_1=0ZY^]MWC^FZ3.TA,G'G%$0%T10(CE1P&%A<RY%#N
MDI &$P'-E,E$\ *"9*8<@)CZ"[WR#+DI%<ZM/CE_12R#ADY>TB42%(JP# 4A
M%W+C[^^3:G>,U_HL@6V$5#)DU1?*0XG!/3-R0]A4)?.NVB8+A=OB5,V[&KXF
M8$O#>FZ=+2?_VU[4/;07/4;SHYG@'K.'<YMZN,)%K/]8UA[Y,M\Y<-LZW@->
MYA,L0Z1^P7V*BH 1JV*^NJ]/^26<.[1[\8$@F_S6VZ3VW> ,?-2K6J5D*Q$_
M2P=\'Y(&8XQ;]#1?CQ1BK::QK<;:,0QY@%CS#*%F.-^'19H:,]6+K#F-"F]!
MU4#E/]O4#6CV#30<D05>,9FV-J/D3@H\W/[O#;#"Q([A[8N_ 5!+ P04
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
M!?$RN^GD\&;9OK/8O^6N? MM>,M,;+\@AMN(8FIIFO?-S0=B <U)T9R=-^\
MWR-I>B1-BWRLB?3S=.J/YZ@WFP'/KSH^90)+GT"NK:_9-EB(VQ8LGDRD;Z+5
M_?O?B(W_J6/W2<G.N+(C5V;*WNT'V1K!J*&%O!!_[,*W(!)QKAW%,I5=I)(%
MX*UK$<Y=Z/.W4SYJ&,6<<'P,.T-J'9%:1J1W812))2SL1;(#?% D%@+ OD2B
MC2*192B(H.@$\4(@*%]HD8IEF*,HR3*1H62%K@AO4Q<79*\(:7O4;D.2;"N*
M4A']U#$N(?$3*L1AV+-QC;(FCA$77J'GS(^<N9'S<_SR5UE[G)6478XO\^4*
M#]=CC-;8JE$.=1Q+S]4^<K6-7"?Y6J0G_+(/$H2951+DE%XF:&L&BC-:G\*:
M,-MFQ--3=(X4'2/%8?P&2RM)0Z%=7H[R4LYMMS[5U"B;<^;JD;E'9*X1V5,J
MMD&X1.('& #9L[)'$SDB.J"N H'9V'5J0-4H;L':T0/UCD ]<[U*LKQ$)[(\
M!)V&Q2&"- [CUTRJD/BQD),&)H9<.?+I!Z<1&)MR&CG>Y5GDJ0N ><RJ=8 :
M!?7';5@F!%>2C(U=,$_R( +Q3U.83"@ !OIJO4]S]G[.;-?S:C@U@<0CA."&
MBDU.W ,Q3ZOIY,F?SG]'O?$ ^?]^'CX]@K"VT=B?:Q$3#6)\JAQ[P)HX[,):
M:<!;"3\Q:FUWY/=F/IH.[Q_FUY-OU\]P4Y@ +5BJ@H#^Q:0.5A.'N4-H ]A*
MN8E9NN\GD\%OP]%("XZIA=SAQ*O7.4V<;=LN:YJDE5@3LUH/!S#0PV_#WMW(
M1\/QO#>^'\K+TE,USP!52"UN6UR9LFH<K"WF.0VX*\$E9L4=^-]\<'\#-._]
M=P]6BU.50 [FLUX!-&'$<4[4YAQE)97D@E;.'_PI&D_&YU95BU0C92ZG2H=J
MPCBU> /22O&(6?+*8F4H4JJ<61:ACLWK -5 QC#G3H.@D$KZB/LANS^"R3H<
M#>=#7^_YB5%"_ZSI_ZQLYZ0K&247='0O'Z"@NS3,PU(%HR1^O<Y%NH&M[DNN
M[015U&QLV?7!4J,LUVY8G+12/FI6OM[!!6^#G](B:G=FJIC9F'$%HB;.(IYG
M-Y1E6FD>-6L>@$QWX$H6R49ZJ: \C@!G\2)BL0KURX#JE,\E3KV@:.*([1'6
ML,^@)UM>L_+=[=W2N8=:F-R6?+P4*P$3:0F.":SM3C\BJ@ 2XCE<V59H CWL
M-7I;6BDE-2OE84@R$:VNPSC;I=((:K&J>LALCRK#H(;!!JAI!T0KU:1FU2SW
M0 =K%X4!F-AB<6JQJAK(*("M&Q!-'&Q-/=K4K9564K-6GAO12VA5*:06]8A5
MMR2:0.)0 IZI 6^EFM2LFJ/)^/YZ[D\?T<"_T]H/JJJ@31FI:Y$F3-K_)H"5
M6%*S6);V\T2'M!A5(03S2T_,[QZD&D=<M[E45'I)S7O%,XMT":RZ"20PE'6H
M%Z+.@58:1\T:5[JD:M0O855%BU#0A/J^5A/G.)[5L/A9I6[L(_NZ"\N(:39U
M+FR2E&6D"\10I)J.X5@E<,PL</W)X^-P+C=RLV)?UY^ TQ_?^^-^0\>:\^FM
M#M)YID](=,ZYDD=F/A*>S2?]?SU,1@-_.ONEV,G.?]>:1/:I)\.?E>V<]<G9
ML%DWG]*#O&=YLOC>1E=?, 'SE;81;V.,Y3^4K8-4'ACM\G62AO\3RS:*DUB@
M,,NDYA8'2;L\R^$";(.VSXPH_LS\^.N)SGNJ$FYF%NY^LMF S5.ZB6#:]FRO
M[1&JZRB+M EE;6:71Y@GM_O@LA,O'T@QS;Z9U(W A:!SZI4+8!=<0"H"<%0_
M#^2#O+"-<HIPAMLN=@INO&TQMVW3 [4/<%*-P#7E-I2P.B]=(/;@S0W<*L?
MS(ZAMUR&TK]#79;'H^ =T2+8AE"GM8 UMH!CXM9]KBZ.>;QIZ\$J_\#,_F$J
M\@ >51Y=BU+C"RR/>;AN<G6!Q')LN^'X@E4.@ID=1*ETQ7Q9)]%2I-DOQ:>G
M7#\/-.Z NXY#E7[5!(+BN;3AB(!53H*9G80BS<64_C !3_UNICWCT 3JSS@Z
M)U]TY>?TQR!]A7T-BL0*6N(O#O1!6GZA+F_R9%M\Y'U)\CS9%)=K$0!P&0!_
M7R5)?KB1WXV/_T^@^W]02P,$%     @ W8186?K-" NX P  6@T  !@   !X
M;"]W;W)K<VAE971S+W-H965T,RYX;6RUEVMOFT@4AO_*B*U6B92&F\%VUK:4
MV*E:J6VL.MG]/(9C,PHP[,Q@I_OK]PPF!##%:;/K#X:!<WG>N9UALN?B448
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
M:&5E=#8N>&ULK991;YLP$,>_BL6FK96V0("$JDN0FD#2;FV3E733'EVX!%3
MS':2[MO/-H0F%8UXR$NPS?W^=X<O/@^VA#ZS&("CERS-V5"+.2\N=9V%,628
M=4@!N7BS)#3#7$SI2F<%!1PI*$MUTS#Z>H:37',':FU.W0%9\S3)84X16V<9
MIO]&D)+M4.MJNX6'9!5SN:"[@P*O( #^6,RIF.FU2I1DD+.$Y(C"<JA==2^G
MMK17!K\2V+*],9*9/!'R+"<WT5 S9$"00LBE A:/#8PA3:60".-OI:G5+B6X
M/]ZI3U3N(I<GS&!,TM])Q..A=J&A")9XG?('LKV&*I^>U M)RM0OVI:VCJ.A
M<,TXR2I81) E>?G$+]5WV .$3C-@5H#Y%K#? :P*L-H"=@78;8%>!?3: OT*
MZ+<%G IPU&:57U=MC8<Y=@>4;!&5UD)-#M3^*EKL2)++2@PX%6\3P7%W/+L/
M9K<WWM7"]U"P$(\[_WX1H-E$S&;C']>S6\]_"#XC_^?CS>(/.IMC"CF/@2<A
M3L_15_01Z8C%8I4-="XBDKIZ6'D?E=[-=[Q;Z(X(,8;\/(+HD-=%)G4ZYBZ=
MD7E4,("B@RSC"S(-TVZ(9WP<_[[.C^+><?P.4X%WW\7]]L%;#?BD??!-^+1]
M\-:1K;#JRK*4GG6:RFHJGM*!W>Q GM&7K, A##5Q"#.@&]#<3Q^Z?>-;T\Z?
M4LP[I9A_2K')*<6F)Q([J!^[KA_[F+KK)9LD@CQBZ*P 6AXQYTU54LHX2D8V
MWHUK=$0!;_8WOX6-UV1C]@Z-_-+HXM#HK=6D4>K09MJDU'5>E<J/IN\=[1G0
ME>K:#(5DG?/R6*Q7ZXO!E>J';]9'XL)0]O=7F?*V(?[XJR1G*(6ED#0ZCNAA
MM.S@Y8230C60)\)%.U+#6%QZ@$H#\7Y)"-]-I(/Z&N7^!U!+ P04    " #=
MA%A9-B10/,@(  "1)0  &    'AL+W=O<FMS:&5E=',O<VAE970W+GAM;+5:
M;7/B.!+^*RINZVJF:ABL%[\PEZ2*$+)+U4R2"YG9S\:(H!MCL;+)R_[Z:\F
M <EB<I7[DMBF)3_=4O?3W=;9LU0_RP7G%7I9YD5YWEE4U>I+KU=F"[Y,R\]R
MQ0OX92[5,JW@5CWVRI7BZ<P,6N8]$@11;YF*HG-Q9I[=J8LSN:YR4? [A<KU
M<IFJUTN>R^?S#NYL']R+QT6E'_0NSE;I(Y_PZOOJ3L%=;S?+3"QY40I9(,7G
MYYT!_C)DD1Y@)'X(_ESN72.MRE3*G_IF/#OO!!H1SWE6Z2E2^/?$ASS/]4R
MXZ_-I)W=._7 _>OM[-=&>5!FFI9\*/,_Q:Q:G'>2#IKQ>;K.JWOY_ ??*!3J
M^3*9E^8O>M[(!AV4K<M*+C># <%2%/7_]&5CB+T!,(][ -D,(,<#6,L NAE
MC:(U,J/655JE%V=*/B.EI6$V?6%L8T:#-J+0RSBI%/PJ8%QU,;R]F=Q^'5\-
M'D97:/( _[Z-;AXFZ/8:#0>3/]#UU]L_)ZB+OD^NT(??/J+?D"C0PT*NR[28
ME6>]"C#HF7K9YGV7]?M(R_OZZ)LLJD6)1L6,SP[']P#[3@&R5>"2>"><\-5G
M1(-/B 2$.? ,?WTX]<"A.WM2,Q]MLV=CM.O[VV_H]FYT/W@8W_R.!L.'\8_Q
MPW@T^>(R6STM<T^KG?E+N4HS?MX!;RVY>N*=BW_^ T?!OUPZO]-D!Q9@.PLP
MW^P7-Q![1)'))7>I68^-S%@=8IXN:!R%$9C^:5\!6XQ0G.!X)W8 +=Q!"[V+
M,YC]!SP*@E!5HDI"%,IDD8F<HV*'63_7=UE:+M!*R2<!VQ1-7Q$$3I56HGBL
M(X^H!"^[+@W#]US(=YKLP%K1SEJ1=R$'2ZDJ\7=JPJV<([!$48FY2*=@,5%4
M:?$H]&5:EKQRAH)Z_G!O%>.0:"\]6&M;BA(24_=2QSOPL1?\%0>+9*(&SU^
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
M?'ZERZ7ZGRZFOO[+]Y?G3U^H-SK:2)^_)TVX7G.PYK>_;O%06=>;8#L5\=8
M$?JHXM8/;:W61A$4882JO/LX.(GUO>VWJM\:M;6(H "96G7M780H-::HU<_6
M:5=9/%Z-<Y* P;0\P'D2$F)=^P[0UZO5(6)<Q$I5.\"!:4E:X<JY =/<F!V-
MPMH$%NKB_/1?E8ZJL2V&%G%6IAJ"[8LV[JJM=AM#BW0V,M ]H:U?GK]8O;WF
MORY>?*,@ ']^,#HH0^&C?C*5Z=8FJ*<7' !/U1,:D3XN,N0IEE.- @HKW^VT
M.Y!]!J>'VM*>JZF&FJ*AB=;W)A@%E]WI@"%#I.\WQIF@V_9 TYH=?:M'Z^\"
M%&9W+79,N\B6'&>W3C(+0S1T0KNP+O9A8%-&U?NBTG_G$7JW@T?I=0O;#ZU8
MZ<9LAE8F69W^)SUA=;^]7K(KAAJRM(<%/84_'=U;[<GHV;X*.^(Y&N][<89@
M?A\L[7M]^'.;)F6WIG]D7=K2'_3F8M:E^LU@=&O-K4BJZX_(%3*A@VO$2$%)
MBVO5:!O4;AI=HI[C@;75MS2U<:.GL])A>'RFH2-8JTVQ F\.M&&G^R&8)3L7
M%D)&9*N .@0M5IP:'T^MKR//22K/ ENHT[H:MJ5,G8V8Y\M!T S8;V,CQ30%
MQ.C:'R)_]!!C2"SQVK+_HZ80O9,_VOX@:O_#AD[>$5G&020Q11)6803SV8DZ
MX$*==F ]M#"M6\,_L*RC6677A">T6D>+L3HQ@4D.TUJ]MBTCR0)C;XT;#+\P
M=Z!K,:U80TNMCT-@^3::PX"V2,+3PL=GI)CI"=2RZBOVSMHV#0"G";Z#B!Y;
M+/L3RW<^]BI.LL"X?RB$W=H/X9$HP-Q5/]M*1=/!QSPF9+-)+(W8P#L)X'70
M 7A><PK<& +F9H0+V %>3*PE/HAH-*K7=Z0Y#HU;W0[F_CA=P9S1BK4R+OT^
M8%>\N>)&XP3TE5A-4-46AW)F$L>D@8WW]=["C2U0V ;V@9Z4Y3:C-]\@*NYE
MTN =_JZ2RO[PP+\AQOX+_/ZJ]NS ^<-W#J]N)8U0"ED(R!3S3&9$EG0U_">J
M-Q[_E"SU\]7J34E3R& #IK]:?>#I3L^?+W)"6ID-[_*F*.C)KWYG*W7Y_?DW
M/ZIWW2Z0)"PN %^&,<3G+W\:?7F95H33@3K$)-H8@1@N.18SI1 P"\7Y!?_C
M=$T6S7"T)@:RF#EN3(N6:.JWNF>\"IQH O" )+8$CUB%]%9MK6D0QY7E/-[I
M3U"KK)-PE.P/CS"ZVH[QW1E-FR)GRJMBYL;V$I4^4CB.&H62E>%8(8@DGYM
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
M_+>KVK+!8*(A9B 7USPT9M(JE[5@ET?WPU9EV^@@(WF_1ROZZ19?RD8U!2;
M</(^VXIR S4A2+.MM#R7:Q1]$874U^3_D$K<0U11TZ!9T0+@QD2UL<"H,\G?
M6=<["!3M),VB,E% _CQB5JKY:V8-J\I-,-]'J!WTT7(#)FPPG"HSM1=%<83L
M/+F.?OCYS;LXVA?M[A:#X"^UI\%H'FMY&$Y@X<!]]%FMU]=:-<9:3=TR/\;1
MKBI54]6NZUK5+'YC^-.(%,CM1.K$4!@,@AG3TPA&&QH/"Q_V/.I&[J D['/;
MJB*/75\(@3C2X/\8UMP+5?- ^+, /$F:O*6EYM'-*%BRNFHW6P0<1L#?H 06
MY$LC&K+CFX)A1RBJ!P%:W4DL.^*,L1 8O5#TD\& 5P,*GJ+1>T@&3!*L1%UB
M2(.2RB!U4TN97[=[?%VK>_R.)80J51TTRYJ6@: ;LF+6$O;)%/4W-&CW$5!^
M,M1>UAF,C[#90YO(,G8,@K+HD,5.^#QZJIY%JHFVT%/L"9<6BUFUVZF&UY)A
M?%O!O_>B;I0$;IXJ="/#UA3?=.?#YCE[ ? -?UHK$AK-T7XOCCQ>(^O=4)N[
M9\Y;C8 D$XD!K10!I+T%',I,QBS@4S1'G", B5M5J.9(4O1='8L*E6[%;2$9
M5^XISX/!ZH;Z"&KTB^<!9B=J(6Z!@RBK@9U:"<B#;[<2#W>R81F(0<![&)"?
M'="RP6/1@C%J]9L1@LW'BEF(T#28,9.TT(1E,(;,6@*HT[VW?AM90B%R[KR*
MRJHQ:(BT EC7\!WC;K4DXW:(J25\SI+E+?D.>UP=K=MBK8J"_=F;&O"K6*YA
MP\#-D6S1BE59)BCU @;83*$0"!/7W8A&"E[D#KL8_,@_96*O("J[&MD1S W@
M>,>#$(5:2P>K;M!6.[EU<]U4U_2)\??P<BS)MF)U=U+HUK 4?$.3AQY$G>LH
MD&VW+Z3A+]C76I6E+!N8F1=3E,>>G,:*#&!O1O[J7)1Y !%15X7*V?AO14&
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
MWA#),!7,0$,!$PP#/!G'RX57+!T.Q1-$[)#21C-"+I_4GDV[C%?!4J:#'I,
MTLO ]WLIBY<M19A=/B(;.7Z83/Q_[/^7?_XS8_\;N]LR24"WRO] X/])'KBN
MI;L,]DNWPL*-)P$7I">Y]&*U!' ##^]'34Z;H4"Z](+,YB?A'W%\O.S%M)G)
MR]^[FQT7"X;%]'/31$%@3M@KSUD3X7CE=4HON'@\'1,O)0&;#3(&@B82\V \
MPW+!%N<7/JL]FP#;B70:\O)@OI% B( ^EL,ZS69(LR:/C#69S.)Q8.8E4Y$3
M])THJ&;T ^VL9=E=(W_P%:)GLLT7L*1'U6K8D+-YGYR'R6TZG\>S9!8,-L00
ME#.L@DAL<X;_W?3F;GRC-UJ[HI&_*G._0F=#9^V$:>=N:MH238N@;* Y[FG?
M6;A#;%H</J;15+&,]G3U2\5/T4GQ4W?=VRNQL\5UP562/1QTM^RMII.;@9-#
M>4]ECKTR "NJK?CH3H3XFIINA_F<S):*<FE8V9U6T:6O+Q!SUVE<$MA5Y?B2
M%A'MMWP5VA68FUK&4RNZFV-W)VZ$LQ>A8=$)E2R57+I,4V,N.G@2VM<ULF/D
MIK\MDNXK:8^0R$ZV4/W0U1_:<TH^KPK/*<UBA54@YZ4"41&@A?4P]PTBOV,_
MM?8TR+HU]9_:UKG3.?WYROY&)1-O3/?<]S=G?=WA7E!ERO6&I,?1E!W57,9"
MQ9X%[&PN,OELU%;Q=W7Q@SK\<6O2:IEWY5 D)+<UA9V]N@A?1N +;K< 9+!L
M@JY=-!58ZY,R :ZGN8" 5OM:A(HS0#HN/W*A%A\C6N$4W=<]LO ?P_H(X=GB
MU';F$-><P@L^UC?G[N:8UPM^?7OT-;M\;T27]ZQLR0[/I3EF-'_S/P# "[)8
MRSU0%6O1*G/GI_Y\M2O98VM?N+CX7F;VUR0VZ<K3/_@<=F!B]^A\\A.#_/[9
MWYF"Z5Y5 [TZ<.ZISG_CJ."J"3(7&Y0+@N JRI01P_S(OR;(KZ9!-$J7=$HX
MZ'6_7]BW@Q22/:2"J8'K.S\'V62UB&?![@Y));:MLR A^-$>O*L:K!;>:&'.
MDPNL0R_ZN&G0[KO%G+*S'0ENZR^^FRY3I$'NI[!B/O2RGFLUT7^)LJ5R@23
M8/^W2?_6REZ>Y,QG76GY2<FW[+]^XFYB,JGNS"5#=>[WZO>:Q;OKYZY,YE-P
M*_8Q()WSEKTRT$N7:;Z.V-QJN\YGI5(D'"3>N2ID7U_, 81*BLWMOBR#<G53
M&>22'7E/KX3HX'V)J-K[BI]!KC"E[/X"RU?]#59TL5=E#@]>GTOZT[7?=[/1
M?&F\LS*%(JZ,RKYG9@M9W%5\A\[2O'ISSRZ#"#.?72]F3YQLCT_>O30!RS38
M-E@<Q+X^TH\1H(Q"D11K9( FKKBKN%V8X-/K139UZ$5&1-IK>A,! Y;R8,J6
MN[8C7TF68V7,7# L69BN0\@<N>IR(&8P2B+)/O;E"%[J(8E.+AJ%?2&!\UBZ
M[8,;L%S %='C"Z,FE;#&0;)E(AJP9%_D."F/#:V[KAXSS2@:>HWS)GC_%LG2
MAM\RINP,N#.OXG:_=B\ROS'O[_KFYBWH#Z+>*(A2R#6ZCD>+V97)E=V7IMKS
MV[RW58/,C/_<2@$'HP9XOJZ0BM@O-$'W>O?K_P902P,$%     @ W81865Q0
M.A6X!P  )A8  !D   !X;"]W;W)K<VAE971S+W-H965T,3$N>&ULS5AM;]LX
M$OXKA%L4+>#Z179BMWD!DNSN78%VMTCV!?>1EL86+Y*HDE0<WZ^_9TA)EA/;
M0;&+O?L2.>1PWN>9(<_7VMS;E,B)QSPK[$4O=:[\.!S:.*5<VH$NJ<#.4IM<
M.OQK5D-;&I*)/Y1GPV@T.AWF4A6]RW._]M5<GNO*9:J@KT;8*L^EV5Q3IM<7
MO7&O6;A5J]3QPO#RO)0KNB/W6_G5X+]ARR51.156Z4(86E[TKL8?KZ=,[PE^
M5[2VG=^"+5EH?<__?$HN>B-6B#**'7.0^#S0#649,X(:WVJ>O58D'^S^;KC_
MY&V'+0MIZ49G?ZC$I1>]>4\DM)15YF[U^I]4VW/"_&*=6?]7K -M-.V)N+).
MY_5A:)"K(GSE8^V'SH'YZ,"!J#X0>;V#(*_E#]+)RW.CU\(P-;CQ#V^J/PWE
M5,%!N7,&NPKGW.5/4AGQN\PJ$E](VLH0/.[L^="!.9,,XYK1=6 4'6#T07S1
MA4NM^+%(*-D]/X12K691H]EU=)3A'94#,1GU132*ID?X35I+)Y[?Y,];&AA-
M]S/B,OEH2QG310]U8,D\4._RS:OQZ>CLB)K35LWI,>[?H^9Q1M.!.,!+O'DU
MCT:3,_&I< 0+G+B5CL2MLO?BBRQ0BTPF9)&('\BH!\F% V+K3!487#GA4)JV
M+]8D*DNH@Y9.=>B<1JXR0T&/I68%PI*Y!]P8R.N#/,ZJ1!4K_*JU,:P-[P[$
M;X4EYS)*A,QUQ2PKI)<1NC)/Z.U:EM!'+:'WIB\D1!F*M4$R@E*XE,2-+JS.
M5 +R1%S+3!8QB3L/?=*))3OKP3L+].RB:'3V"\X9<4LQP;Q%1M:OC\^$-KLD
M-Y4Q[+3/2BY4IIPB.VAH_P%LM-Z=F;:6K  :'3#@9;WO'#X^/GHI?BD)9X%N
MMJ-S&]4?'P'=EEH]_B @BE<SVXA$BT([D4J$#![K1!!A2^$/UD3&,7L=8@'_
M0EJ14K*B)@A7=S=B/CX9M/FT/]_:;9:?26O5<N.]D2@;PR,0 Z^XVD-;_XE8
M&J,X]$^#HPMBZ]DW2YVAKW#ZN-00!, [*XUC]F,K]\VK#Z>S#V?B,SU0)L:\
M/([.OE6:#2N-BLF[+S2(.CNMMU@ET%_%,CN@XE/>4<U;+Q@6.&%J=N^Y<W!
MRPI<P+DJ.C3U<NMVA-_HA38^X(M-4S!( 'GF5=B5.JFE6K4JU!+JPN?[^,/&
M=:KB%!9P3;$:A>XR1Y4JZU!%G-($!W N?JN48?_*0K SW(9+.&'!NA2*K5D7
M[)XJ+WTF;M/AU]WX>%5"\U?_\5E&G;A"JG<N,[9H@BZML[\3^E0AW4V<;K:F
M/*'(NS#'K@SP0DF_SN"]B5:?2K@P)9<?JH151M"4Y;1'LJ$=H>X62/NF)]4
M&=>K8[\Z$6^]WKJRV+;ONEGXO_D>:@+(M3TV-:?J6FGRNLDT\:MVJ(8;:5-O
M?LP_.$7@_IW6\EI,QR?]D_FDLU*GZ=&5YA0PSR$$#!\D3?$>\Z30BTRM:KC[
M/J[CT:0?3>9'5OZ/HO(\I?ZZH$2CD_[X9/2=[FM.?59+W]\KPZVSIO/2K.\K
MW!1"'1[C-NM/9\?3(E#\M2DPG?:C*#J\<-A[,80!%KE3,'2A=P(.$L(\HUS3
M(0.FI+@"8#O@=HXNU4+W$AW3!U?"0>A.SC-9XS+R_KY@ .6I2;DJ6,;H!W16
M*U4@KKAZ5"8 E6]ZW.;R,&L#TC"3 '(9:ML#L;:N[H^=YEJ61C_" @<^'<1,
M*C^3@19+-M7&O<?XD#=2-P-NVPO*%'+-HRUWY0VC8S@/.3S+)+1P+$K'REL?
M3,"&H0>=/3!]#(15W,ICQMW-KD;<2/9JY?WE6X>?DH#0M@+NL[P75+.-;IAS
MR,^B?(?EX7%=D-GQ2&U^IQMU-3"4^<$(H?4.P@)?=WU3@ZO\/!=\[24-Q)47
M_:R._;2<2NX]W3H2)8:[V \\^H%\XQE/QH+R,M,;HCH=)';S!6;\A#U(6^^_
MGL\&<UP-LPRY$S*A91@Z($8Z%Z9)"T\99$A8\\/9 Z&/9DW[/=Q.FX'K2;DO
MZC'Z:>B#/UI%T$838F=Y RK+1C8H5D\G+[5\5F\-*SDA-D%(QPP,POZ% KH$
M'^R%I;8HNHHU(\*SL?]G7=3S,B+*1=0,TBK,[X?O$]:G9I 9OP!CP1D2\*(7
M822!=?XQ@<*(7$_@WJ EABE$!?-%PF8J>RA:V DC)Q?,RW,A>[V&JI &E466
M^^NM![>VU71EO!"Q6D'<_[(-SU&8*/DM)@Q^[!6#B;M"-M9%%/*KK'!6,FZM
M '2A*;X5-%CMSI5AFESPHY+HJ,E7IX+QQ3NWO21LM:LAX:6@^%&<+[8O^>YM
M[9AW?]O<]S-*:.>MI=WY%TQYLM1\CTQZA\>-)J7AB@6AM7C$@P-1:THGVQ;Z
M6DRB_F0\$Y]P"^ 3V]Y\,N[/YEM94Y"=[%&.KR.[3Q/-]^UDUH=2[YYOC$_[
MH_'L^<95\N\J@$+ _&WL6RVF_>EDJQ2 ^70T>\:G8ST@I&/WL;'RR5#QY+OO
M>6C8>;M#<UKY%TIN!:CZ\(S7KK:/H%?A[6]+'EY0OTBSXI>&C)8X.AK,3GK"
MA%?)\(_3I7\)7&CG=.Y_IB0!CTR _:5&_ZK_80'MT_#E?P%02P,$%     @
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
M"YDA#A-7QCP6:=#0#NT"*!(G6\)7C;FN*_3*NQ#D$V=F4^:4/<UZ#,X6AU@
ML858ZS=JSO0_^H5:)T%?BKDNB<W@AV?HBR3&E+N3HN[F'3EZ ^YMQ;HW.2?#
M-I_VDW/L?U]R3O_WDM,9M$TP^S6#MOZ.!<''.A&:E[EMN%:9;$W^@$R^/UPK
M8?Y.O';DWXO7CPW:MA%739/49*D3=ILNF;8)@XHSV0!!%;NSG,8;AG1SIS;U
M&V))HQ;5(/H>9,\IL,,[L+ONLKOBB<WR&_N93+6SV>JQR"45M>):1+L=SU6
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
M:[SKLC% %\ES;FH#Y "9/8C:$NEVB]) )(#$6L7."^R:)<ESH-0T7%;P '4
MUY!9+E#X$\"SB*'2H54-9@E\\S.$ %QM&%;XV4"9VL(%"&:%* U))P\3),?R
M #M :^4\,KR:ROMC\K0Q/D3U9=2>50$$T,_%DD$O(G :P)]$_:"VG%><^?[-
MZBT*T%I&4V!)]5#3#L-O.'9=H!AM2B>L:4XARLX;>\B5Q.[6)@QC1"6E\I%1
MP. R@EXZZ4G"N8HL<=T@4FY.+D*X#*0UVU5N8TOI,1SD>:9S)P.[Z#$?98*J
M$=3M5=P[10]4C:FN4V)A!6T(OZ43(!GHR\B/DT4)!S!MR!J$C>(G3Y)IZB%3
M$;?.2OVKI9?AV^LP@UK<!X4@:R@S'-]Z-!];;4S,LF^*+ H HO58E2:[^^65
M[H;+]W+P=/7C[.!CK1P;"BWRRPSJ]V>KB\DISMT3$<Y!U6I0*#\UVG@PE!US
M0C*Y(GCM^Q/D:I:# 'BQ6H5BYAB[2<5_.Z>"NXD ^/@_4U_@P+%RW\LOF)<X
MMT$"R]!\4K5]83-)X=@C7F<Y4;EY<;PU5:M,D*Q-C8F*8:>^1DG+(VWP$3",
M/00C[EAS3ZCJ7*5A(DIH8^1@?"#9RXKY2]6Z/0K'@ZTB.S$@T8;I5BJ+A< #
M0M)3[4M:CG1;N1!#8AAT'K]+S<B^%8)/?<@JER6+,-I++0&BL>?<5-#&!%;#
MG3"9$SP[?9#T>4,\@G2=N$=X*.0NS^D-4AAC'-$'+.#J6=+N\!9<6AX_,<5.
MK;Y4 _C'5)BE'GY #2JJS^NLL$*/K9<G1O2IVI= ],MH8&F4:0CP8FETF94R
MUO2!TZ8V8$PX%\((T#:(<Y9<3-=HXBB6[GNW[Z4'T?'L[DI];!@$5+N=,TDF
M#F")3':2?ZTF;D&U\5D -V,<YQ-6P+[FO_>M.X[=K0-6+,=[E:F 9+)P5+I,
M_9<!DZS4N+3DU,J/R67\=$\E<M&9K3S5S2(,3%HZH!B(FFXC.\E,'?<.YVK*
M,9[YRJ,/0>JVKR!Q3//MZ#U##I*_QT5KFE4A\VAVD7],>+ +L@YH+)=IVG*5
M(;DHWF5*/OH8S2ZK2,*;!8^J5^I7 UR\J7@,@^L&A/P@U8]B.CO]&Z?C'/\A
M3=P:9=W"2 ZEC)(CCW:.% DTR.1&Y3FXF2.0[F;;K1FD_L(X\!J1].>0>JPC
M*.W<$<\1 2")4$/I3-&._31O+-SK\+/+[?IX3V ,GJQ^V%\L@-'C/(4FK8LU
M5;PE\Y_2"+DI&DFGEWDHU9['FI>3K@(*J?2T!?2]9@8+><<E53OVI',X/8$J
M"FI'B55+EXJUI;0IBSBH]&R\RXN79;;TF:OSC)WW\Q+!@*N1L-F$KG@?E'[C
M76F9-PZZ9PO/ZBHQH]@MN$CI[P6T3-]8?;$,]+P(\CJ$9&&;Y>)EX1E=<;HQ
M]G-/)ZTYP8G)#-;<M);D<9)\!<RQ+;M^J;2\0<@QS%"!X5MY1L$P'8!= 605
MLO?42W,D*BQ30W:L,#@F:%D-D3J\PPF=%P _#H_6\QUHKBR]?"UY F')P1/I
M1P"FXN-(/(^9D<K]HN&+T*P.RUT(^X(T]6Q2D&U./DZ7GN?7,<QCK!NR<@<^
M*Q<DOD2X5,=(2VD@WA1!6SJ-#,+:Z [DIPO!M..C=D8X-WLNB9A= QC(I(%X
M+1L'U1+:HIU=_=2./\^D.TDF"0&]-=N6RQF^5N!B]'.=]C:DC3=7I3?!^4VF
M9H;O>.O3WC-))#[G&-,5A#L>5?1;OIOYIW<Z67ZH7'3&89IO#>H'SK839ZH(
MHJM#OK_4J')<9W6^:J[4SY/:? ]$F/10<:]G4CK&4G8JH4SN_W+_V!#U: U3
M+\753"!UV0#+II;H'FGSN733C:@BLY,*G]:;V:48^* 3$Q+SM>?Y/1@W<K_E
ML=IS+,#4G^0;BYAA0(\\\V(E/:X64?BL8%*D: .41-D[T/R^/F&*./!G.MRZ
M#N7N90]3"WSM@\IZ]N4+'+25[WM!KJPQ?02;WDZ?$-^G+V?'X^G[XR>@ /S
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
M3.J^7_KSG2M7WUTL);AD. 40F5R'=D=#M!$9+6 40SXBN15G;JS::O8/YR:
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
MJN?UU3'76J%$1TI8J XH:BT"@E*O5 4$10?3N04T%L=6M*O(@3P<G;:BPUC
MV$![%2Z-FIF2?=L(:^]TU6K^0=\#^CE_8@&YE=:U-=.W4&R8=$4BG@X>WI&L
MN"$W&Y0A9WLIS'P.%SBO[0HD6EPQWD]T<65=D[DD]';W!T/8T&Q;[[%+[)TW
MO:ODM!VTWF)#%IM8=^>M^"8U(")X ,@X/X8G:VOLS3ZWQ@WP0R(ML0KX!YTU
MZIXXQ\9ZI\I6/URG<HC3&9%6\)2_M[@57RZJ4;<!/252$S]OHD)5.O$LQ(&%
MM<7&P+ ,XH*I60<:8E:U.&A?Y]&^S@_:UPU,_ 'RJ6V%OW/A]I"]_;$=HZD]
MNO ?<$'_A\3EJK!L3>'!#Q5^NI,H2Q%V)#XXZDJR(T!$54"97?;.XI\8Q'^Y
MNGT7HS@"?(OMKVX_\W;'IQ>C$*]O]8)9?A.E]?17NS9Y-KT\??93]F&UKHD2
M)A?Q4)9Q! Q/_MP9UMB?" L LG*>M,X=8+E $.SD[5&/,@Z_^!^C&5*OX*UG
M!-!&/2MR_M!HVLU2->S.:X[#-9P346PH>N 4XEN^-'H.IY(;ACDK]15LE7-\
MF"%EA'IJE2\[9[/2BBY%FAU.Q<YSTXB+L(Y\0\=1,#G3;+@40<@ DD@!)Z<7
MIF*/IN:X78>B)B]&7L;IU4.@\I1]UU;/Q]E[9H0BM:(K@[0U>=0&]^H3S99'
MD9"#+\1 5I@SFB3CW(/+UE:\P6A/R"7?I-PRFR-EA@!G;2,'><>VQ_'U7#00
M+'UL'3E+-8,.CE/SB'=.S ,:OZOI+Z.F?Q!O]RMYNZ#D%\^'E+Q;^4>5&V$
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
MQJ[XSR4R*UW3 OQ.KR*&#W1 ?.?^[?\#4$L#!!0    ( -V$6%FZ6P#<C 8
M "<8   9    >&PO=V]R:W-H965T<R]S:&5E=#(R+GAM;.U966_C-A#^*X1[
M8 NPMDB*.M(DP";='@_9+I*T?68DVF8KBRY))YM_WR%]B(X99X'M%L6B+Y%%
M#F>^&<ZER>F#-G_:N90.O5]TO3T;S9U;GDPFMIG+A;!CO90][$RU60@'KV8V
ML4LC11L.+;H)S;)BLA"J'YV?AK5WYOQ4KURG>OG.(+M:+(1YO)"=?C@;D=%V
MX5K-YLXO3,Y/EV(F;Z3[=?G.P-MDQZ55"]E;I7MDY/1L])J<7'!/'PA^4_+!
M1K^1U^1.ZS_]R\_MV2CS@&0G&^<Y"'C<RTO9=9X1P/AKPW.T$^D/QK^WW'\(
MNH,N=\+*2]W]KEHW/QM5(]3*J5AU[EH__"0W^@2 C>YL^(L>UK1Y.4+-RCJ]
MV!P&! O5KY_B_<8.T8$J>^8 W1R@ ?=:4$#YO7#B_-3H!V0\-7#S/X*JX32
M4[V_E!MG8%?!.7=^+>]EOY)H:O0"7>K>&;"3!1!NCBZ#>&DL>G4K[CIIOSF=
M.)#I3TZ:#?^+-7_Z#/\:70'3N45O^E:V^^<G@'4'F&X!7]"C#&_D<HQ8AA'-
M:'Z$']L9@ 5^[&,,D-)[S39/L_6Q=&*7HI%G(P@6*\V]')U__04ILN^.@,YW
MH/-CW,]O(#;;52>1GJ)663&;&3D3P<UAQ:Q52H%^@:V4X-%.J,XBU2,W![/H
M#N)6]3/D@@N@5RVL"+,AT"LK^M9^<X*^_J*B&?ONLWW>S@U8)W9F!*[HY.).
MFN"/3P^\!>,>H]\ZWMTC;)A[U4CTSNA[Y2F];^\8P0N+7Y[9N9+-7/2J$1WP
MFT'>=+NM+Q'!.:MP04I4UN,<?;6WE3&"&<E0F8^KO:T<9R7'+./^5+:W17%-
M.:[R"I5%V'KC\ZQ)BM\^6<EPF=<1_'$1,=V1Y06N2*0E'],$&>"N<LR*<B D
M>R"WSYHR##P'LCR0W6H'6&,[5(0"OX&09-D3K<%.985)= 6'-!P37N.BI$=H
M&%BNQJ1^GL_G]OR4X7/[N R9<)NNT\'R<CCM4=Q"./6ZT[/'Z-X* N%05Y&K
M/KW8S%]MY)+TP(.*G&!.^<"#/(FZL@8A-.*1C4L@N!+]:@JU:65\-GZ*.><4
M_"XZE(_KA#OE!;A=R9Y38(BMG-6XC'R8EDE^!-,2@B*/3,+6Z:!=->N"=' $
MU"O9@)1D>_KOE@$ S>)@'),$&8?@)IR]1,;* A>1T#K(_$F*SLT;8>2A>(C/
MNAQ\HQJS)$B0SK*(;9DR.LUQSK.(5RJ?Y3X+TR$[$A+(?IE.?6FX6*FNA8NW
MAQ@R,!0;+%"D;S3+<1T9H$RG7EJ /F7$*Z4UK<&),A;Q\L:\#HV##TSKQ,J(
M'KHHZ T@>)TTL-4G:P(A.>:1GZ4EEB6NLH&(I\&#(0I>O6 (RG)P[#JB\O[R
MH[Z7)HVPIIAS'LE.^5?%,:792W:#4,FC&^9I*EK"?<;*^L"[@J\,]>T/8J&Z
MQV!6,#.T"KU341$;8A!7;# $2:<"#FDHR@1I!R<9KLI!,9HNQ0PJ=IS2QMQ[
M+O2/YE!LA>OH*FDR8@BX=!7%_E[+,F"C4&:K%[#YP(^;B?]K_[_^_)2U_[7_
MJE=NTP3L;ODC"O];^>"_ ZTSJV:O@'V):KBXC$6Y@#[II<NZ L>-(GR_:H:V
M&12@U0"$%T_*/]3QK-JK:7S=E[]YKZSSM7];"](P!]E>4%2828C*PZP)Y;@>
M=*+/A#C.,Y^72)3-DAD#BB8TYA&_=9:+/G'^D/X#^T  ?$[0/,[+R7Z# (@H
M?51IG3B'-HN]P(LQCK/(S%5(15N@EZ+K+(:N2T']ZD4/2S[M@E<JIY,M&"E*
ML.3@577:D+S83\[IY)87!>:$1\Q2&<+W#'54B3<]PW\ZO1T9?_#=^(-_\/BC
MV8QLD+!6;EJ.3HD[U2FG9')R<YSYY7&&V\&(CSW=J58X2$\7H@L><A/FJ #)
M0JC".N#;'Z*(A5Z%QLCZO?VL%E*2E_:];#:K!*]STJM_>-B2$+S=.A3^Q" ?
M+OU2VXW]H"54BV I*4P?VEC02+YOI V& .-V?A6CSJ\(;ZY@T*DVJ#&R50YU
M&L1;GV09)-$\<CE:^5' @#.ZK0\'>[&!L ^L.::"7V[E5!H N!VZA4@B=8EY
MU,)!Y8#>E+,JY?N3:'@+'Z^S,**V(!D<93W'W:WNIN"OU\/?@7P]0K\29J9Z
M"T:<PE'X; 1/-^NQ]/K%Z648!=]I!U_*X>=<BE8:3P#[4ZW=]L4+V/UOX/QO
M4$L#!!0    ( -V$6%E30GMH" 0  (4-   9    >&PO=V]R:W-H965T<R]S
M:&5E=#(S+GAM;,U7;6_;-A#^*X1:% F@1J^.O<0V$*<K6J I@B;KL(^T=+*X
M4J1*4G&[7[\C)<N.XVC-D+U\$<GCW</GR+LC-5U+]467 (9\J[C0,Z\TICX+
M IV54%%](FL0.%-(55&#0[4*=*V YLZHXD$<AJ=!19GPYE,GNU;SJ6P,9P*N
M%=%-55'U?0%<KF=>Y&T$G]BJ-%80S*<U7<$-F%_J:X6CH$?)605",RF(@F+F
M741GBY'5=PJ?&:SU3I]83Y92?K&#]_G,"RTAX) 9BT"QN8-+X-P"(8VO':;7
M+VD-=_L;]+?.=_1E235<2OXKRTTY\R8>R:&@#3>?Y/H==/XX@IGDVGW)NM,-
M/9(UVLBJ,T8&%1-M2[]U^_ C!G%G$#O>[4*.Y1MJZ'RJY)HHJXUHMN-<==9(
MC@E[*#=&X2Q#.S-_2YDBGREO@%P!U8T"W'&CR=$M77+0Q]/ X"I6-\@ZQ$6+
M&#^"^!.YDL*4FOPL<LCOVP?(KJ<8;R@NXD' &ZA/2!+Z) [C=  OZ5U.'%[R
M-)</>=H"I8>!;+Z<Z9IF,/,P(32H._#FKUY$I^'Y ,VTIYD.H<]OVC0ALB"%
M97QG&6M"14XXW '7&"FF9(*8$G8T2,E 4965WPG.K4N6E?L:U>Y!%Y1S@LE-
MJ-9@.GQ&EXPSPW"]3CDG-H4P#;-&*296-A78P3T;]NK64I$<:X$%,3;(NH+
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
M_KYI5G]L;UK^CTQN\U*AZQM4]2ZG6+YETT8W$RTJV[JNA,9&V XS_.<!TFQ
M^48(O9\8 ]U_F>5W4$L#!!0    ( -V$6%F"D,W+6@,  " )   9    >&PO
M=V]R:W-H965T<R]S:&5E=#(X+GAM;+56;6_3,!#^*U:0>)&F)4V;OFQM)3:&
MX -HV@9\=I-+8\VQ@^VLV[_GSDFSC(4"0GR)[?/=<\^=[^PL=]K<V@+ L?M2
M*KL*"N>JDS"T:0$EM\>Z H4[N38E=[@TV]!6!GCFC4H9QE$T#4LN5+!>>MFE
M62]U[:10<&F8K<N2FX<SD'JW"D;!7G EMH4C0;A>5GP+U^"^5)<&5V&'DHD2
ME!5:,0/Y*G@[.CF;D+Y7^"I@9WMS1I%LM+ZEQ<=L%41$""2DCA X#G=P#E(2
M$-+XWF(&G4LR[,_WZ.]][!C+AELXU_*;R%RQ"N8!RR#GM717>O<!VG@2PDNU
MM/[+=JUN%+"TMDZ7K3$R*(5J1G[?YN%/#.+6(/:\&T>>Y3ON^'II](X9TD8T
MFOA0O362$XH.Y=H9W!5HY];73J>WA989&/N*77ROA7M@KV_X1H)]LPP=NB#%
M,&WASAJX^!=P"_9)*U=8=J$RR)[:ATBMXQ?O^9W%!P&OH3IFX^B(Q5$\.8 W
M[N(=>[SQ7\0[%&:#,AE&H4XYL15/815@*U@P=Q"L7[X83:/3 QPG'<?)(?3U
M%:1:I4(*[@M7YTS5Y08,S6S!T2'#]K*.JTRH+1:,*Y@KX+E6;2%C0K%4EU7M
M2!<+6*0,#5DF9.UP&[A1N&-9A:;>;B@=APG?H/-<2VQP\N&H>+!AFR"0QB"W
M_QD!DC$H3@M"(ES<$3I##3HL14:O$=05NK:(9-^<L)<OYG$T/OWOXTUA )XT
M2;?U&;,ZO//SB$WAP&>*.N.P=#]2_]!GW)N=Z[+$ GM^(D<,,,&8O"9Q'<@X
M.4H68QIFT^@WTHL\QYN70&KK#]E?D!@5OP.#]SV=Z;#W#F(V93W 49RP9/$8
M[J\JY'D]D,DH/FU*I\=Z.EW0@.N^=#::>^EH,1!+RU986_LRK_&@T O=*DQ7
MOE\KR97U3P6F4/GZ<_A>VMH\M(HE8.GULAJQ>/YD-1WPC&Z=$:G/(!X.=A=%
MB]4L'Q[IM/3VU@DF</%DE?Q#_O8-U\]5DM"P&,WZTGDT::1=7H=NQ;#W:I5@
MMOYMMDBD5JYYP#II]_R_;5Z]1_7FW^$3-UN!29>0HVET/$L"9IKWN%DX7?DW
M<*,=OJA^6N O#!A2P/U<:[=?D(/NIVC] U!+ P04    " #=A%A9@:%9G$8#
M   ["P  &0   'AL+W=O<FMS:&5E=',O<VAE970R.2YX;6S-5FUOVS80_BN$
M.A0M0$022;TEMH$FZ[I^R!#$V?:9MLZ64(GT2#KN_OV.DJW)FZ/M2Y%^L<CC
MW7,O#X^^V4&;+[8"<.1KVR@[#RKG=M=A:-<5M-)>Z1TH/-EHTTJ'6[,-[<Z
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
MKZQKS#"LW$N VB>X]4(I>PA\=TYO2_H'4$L#!!0    ( -V$6%FNMU%+H (
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
MHK(I++9^:DXT",$KH'LNK*Q@LJ6H; J+K9\5:K-"+RVC^Y:]>6!D"E_LE D
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
ML2EJ:S<L,V&\4T+_RG0]M7A+F "?29)3<$.)S 75,5(2O+RBBK!$O@(O ,O
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
M3[HZ8^IV3+0S;5EC81ZS=TZA5@=*(U :A=(8E,91-#6GC=NQ_[3<,5?V70J
MTI906EC3CC]_CA\X[2,= AV50FD,2N,HFIK*QBG9_U>I9$.M$I2VA-)"*(U
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
M^?-\[9M'@PL&XZ+=E#WFV\DA="QF$,7ZZ5AL"-8PPQIV-!V+5>M8K.8%!C-
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
MC!JS%EFO(>L-DEW$W_=$$%W51'D-BSV/4U6:4,&)%I'\H^J *IU2H*LU /K
M)"#OND](]27OA*%CA:X7=82<FWF>-?'Z=?B-#O__!AV4"A7N CAA?==TZ9\1
M" //CMP.SW.S3EY:1(.&:#!(] %4>"F)<8;6L-.![:,XB/&SEV$DL);<L)$;
M_L*:$(X9AI' 6F&(FC!$H]:$Z.SLN9'K!'[GB/:8^6[D7*@)MG7\OVS]MJI0
M?ZI3%NRSLM!G%[F3X(*6DQ[#'JTRU%"M.V_9$]?K<CVWZ^2G3=8YDG4&R;[7
M'2;_K^HP#/*S]V(LM+;D8]-@_\JNP1ZU;1@+K1V*8^-@C]LYU'"M*Q.XGA=V
MCVN/W20(?>O"<3TV#_;OZQ[LOO;!ZBKI,?+\*+P@Y-@]V..U#S64WXYZ<![U
M7KO3[%1DS9,!*@>^*^=*@6)]_*M9JMEM9M=%.;&91_-J\'W 7!T;@3+8*E?K
M)E"!XM4L63U(5I3CV(9)-=R5RU3-W\"U@7J_92I!]8/^0#/1S_\%4$L#!!0
M   ( -V$6%D0UK;9HP(  !T'   9    >&PO=V]R:W-H965T<R]S:&5E=#0Q
M+GAM;(V576^;,!B%_XK%JJF5ND(<($E'D/JA=KW85#7M=NV$EV#58&:;T.[7
MSS:498N;[";8V.]YSG%LD[1</,L"0*&7DE5R[A5*U>>^+U<%E$2>\1HJ/9)S
M41*ENV+MRUH R6Q1R7P<!+%?$EIY:6+?W8LTX8UBM()[@613ED2\7@+C[=P;
M>6\O'NBZ4.:%GR8U6<,"U%-]+W3/'U0R6D(E*:^0@'SN78S.+V=FOIWPG4(K
MM]K()%ER_FPZ=]G<"XPA8+!21H'HQP:N@#$CI&W\[#6] 6D*M]MOZC<VN\ZR
M)!*N./M!,U7,O:F',LA)P]0#;[] GR<R>BO.I/U%;3\W\-"JD8J7?;%V4-*J
M>Y*7?AVV"C!^IP#W!=CZ[D#6Y351)$T$;Y$PL[6::=BHMEJ;HY7Y4Q9*Z%&J
MZU1ZRWG64L80J3)TET&E:$[)D@&ZJQ2IUM0T+Z0$)4_1-[U)/OW7K.-K4(0R
M>8*.$*W08\$;J0DR\94V;=#^JC=XV1G$[QA<0'V&QL$IP@$.T=/B&AT?G?PM
MX^O,0W \!,=6=_R.[DVC&@&(E%PH^HO8+0(O>J]+0#Q'=#LD_1.2V)"N&!TN
M=./,V3J7-5G!W-.'1X+8@)=^_#"*@\][PHR',.-]ZJE=FV,!YA1F($P 50!Z
M!2).7%X[M=BJF6.[23$.0ISX&X>)<# 1'C(1N6!=5;0%B^-H$KMAT0"+#L%B
M%RS:@471+!ZY8?$ BP_!)BY8O L;QU'@ADT&V.00;.J"379A>!2,W;#I )ON
MA3T6H*_R7(%P(:<[2!S$([,6+N9L8,[V,[DBS(6;[>S*,(K#:/8/SM^Z[<R'
MXRL1:UI)Q"#7A<'91!L6W67<=12O[06XY$I?I[99Z.\7"#-!C^><J[>.N5.'
M+V+Z&U!+ P04    " #=A%A98Z5R[,H"  !1"0  &0   'AL+W=O<FMS:&5E
M=',O<VAE970T,BYX;6RM5FMOFS 4_2L6JZ966LK[D8X@K8FF3=K6JFFWSPZY
M!%2#F>V$[M_/!H*20*),RQ?PXYYSS_$[K"A[Y2F 0&\Y*?A$2X4H[W2=QRGD
MF-_2$@K9DU"68R&K;*7SD@%>UJ"<Z)9A>'J.LT*+PKKMD44A70N2%?#($%_G
M.69_[H'0:J*9VK;A*5NE0C7H45CB%<Q!O)2/3-;TCF69Y5#PC!:(03+1/IEW
MT[&*KP-^9E#QG3)23A:4OJK*U^5$,Y0@(! +Q8#E;P-3($0121F_6TZM2ZF
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
M0@Y_X7I JH,;DC+U%QSJMI8!-B7C)*N#10^R)*]^T4LMQ$F P.D/L.L ^SS
M?2/ J0.<L0QN'>".9?#J &]L@%\'^$K[2BRE] IQM)Q3<@!4MA9H\D'9I:*%
MP$DN9]83I^)M(N+X\AX+6QBX!@^(ES3AB2B0'5#5X#Y!ZR2M*J]6F*,D91]%
MVV]/*W#UX2/X )(<?(U)R5"^97.3BPY)6'-3D]]6Y/8;Y YX(#F/&0CS+=[V
MQ*^&XX.!>%,(T:AAOZIQ:P\"/N'B!CC6'\"V;+>G/W?CPYV^X?P:>_AK[-%P
M^ IO1#CL"V]IZ30SRU%XSAMX[0F5J@F5'B?4K&^Z5(AN/Z+<9&>L0!N\,,0N
MRC!]QL;R]]^@;_W9YY5.L)5.L% G6*0)K.6QVWCL#J$OY40%5_AEDY;;)-\#
M'F.0BS8@J]8EENL2B(G)<;;&M)G<'_O,KZA\124_B,]+:$'7GYO/IZX.=NA2
M5T=1ACHI(TU@+;N\QB[O/;N\/N6K*.]$!B=P'?=,^4'L2Y4?11GJI(PT@;64
M]QOE_?>4]_N4][LR>'YGS@]B7ZK\*,I0)V6D":RE_*11?O*>\I,^Y2==&:!8
M_&?*#V)?JOPHRE G9:0)K*7\M%%^^I[RTS[EIQT9[(G=V6T&L2]5?A1EJ),R
MT@364CYHE \&E?\:8Y%E[CBF??H''3'@-)A.)F<&#%)<:L XSE G9Z0)K.4
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
M%D@1N9UI;Q=:K.U8>"$TM(,]S"G)J#0WP/6E$/IA839H_K,P_1]02P,$%
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
MPCP@6,T>P\H>PU9[7,O\_2V(XBQ/XYSX&8M$)/,P>?/C3*8PM&(T03Y--IG
M^422KA#!+(W2-4<;F?'SQ(UP0K-4H N9OXM,?MGDM*(QP[V>,NK=='NRAGVR
MAG.RAMOZ4+J: 1+F <%J9AA59ABUCQ5JFM>0H1HR8-&=K;BN P<DS(:$.9 P
M%Q*VA(1Y0+":]<:5]<9@DZ,QI.L@838DS(&$N9"P)23, X+57#>I7#=I'?#^
MR))GF<%D1BM7G_*(9H(+N225^4VEO41F/)Z/BS@3(671OS(G"HJ>9<KSY4*8
MR6(FUWH,X;+>;JZ%-L=-7#3,M/:2E&GV#F8VMZW-[^K.LT(ZD"'=LT(N&VH9
MAY6\R8>D;E8U:IT_K3I_VFEF?&KNTDKK.NQ PFQ(F ,)<Z<-_?^A:Y>0(3T@
M6,U2IK';*#,^O=QJ1W1U$BC-+FGU%5??.)QA@P9U06E+4)H'1:O[:6_CU6Q?
MG[T2AM<JDT1^,4(%-(XQVUMZ-0Y6[=C.'H.DV25MO.>QOAP5#.O09)!1W8:H
MUK0WG1Z,1:!!/2A:W3W6SCU6JWON\%N49 GZ#W5>VK63.QL(DF:#TAQ0F@M*
M6X+2/"A:W8V[_6\3;@/<!-T!!Z79H#0'E.:"TI:@- ^*5K??;B/<[+83?FJ^
MWX[K;$'0??&2=K!D,@\3*&1,%Y2V!*5Y4+3"6OK>/^4)8>O\K0F.?+7#7?S?
M5YVMWLRXSM]'.#A_8U[=F@WG;?/**=Z[V.&+UT#N,%M'*4<Q6<E01F\L%[RL
M>+.B* BZR?^G?Z9"T"0_# D."%,5Y/45I>*]H )4[[<L_@=02P,$%     @
MW81867^3W]T;!   1!0  !D   !X;"]W;W)K<VAE971S+W-H965T-3$N>&UL
MK5C9CMLV%/T50@V*! A&XJ)M:AO(6&J;AVD'XZ9]IFW:%B*)+DG;*="/#[58
MMA8K,PE?;)$ZYY#W7NJ(XN3$Q6>Y8TR!+UF:RZFU4VI_;]MRM6,9E7=\SW)]
M9\-%1I5NBJTM]X+1=4G*4ALYCF=G-,FMV:3L>Q*S"3^H-,G9DP#RD&54_/?
M4GZ:6M Z=SPGVYTJ.NS99$^W;,'4I_V3T"V[45DG&<MEPG,@V&9J?8#W,20%
MH43\G;"3O+H&12A+SC\7C8_KJ>44,V(I6ZE"@NJ_(YNS-"V4]#S^K46M9LR"
M>'U]5O^U#%X'LZ22S7GZ3[)6NZD56&#--O20JF=^^IW5 ;F%WHJGLOP%IPI+
M7 NL#E+QK";K&61)7OW3+W4BK@@(W2"@FH!>2L U 7<(V+E!(#6!O'0$MR:4
MH=M5[&7B(JKH;"+X"8@"K=6*BS+[)5OG*\F+A;)00M]--$_-%FRKRZ[ Q[Q:
M=$7QWD9,T225[\ ;D.3@KQT_2)JOY<16>L2"9Z]J]8=*'=U0Q^"1YVHG09RO
MV7J 'XWSPQ&^K2-MPD7G<!_0J.""[>\ =MX#Y" "/BTB\/;-NX%YS5\N@T=D
MHN^8#9!520;DXA^>52MIN%DCN-3%+U\C0TNA$B'#(H7AW<L]7;&II1U-,G%D
MUNSGGZ#G_#*4?Y-BD4FQV)!8JQ*DJ0094Y_]<<B63 "^T1Z]YT+19<K.ZT6"
M_T>6SL.H\&NK8U(LJL3<4JQXKQUG:&(?KU-N:+A6RMTFY>YHRI_9D>4'-I32
MBNA=31P&$&'/:T]_/H##OD:2-B[JXUSHAI[?34<?AP,2PO"BUXK4:R+U1B/]
M37 IP9/@FV1P!7F].N$ ^K 3Q;P/0[Y/PK 3;!\&'8(\'W>"[>-\Z 3H1JQ^
M$ZL_&NN?>R:TD>5;L+@\/8]LM:-YLJ+IN7<H#:/"KWV03(I%)L5B0V*MZ@1-
M=0(3+YS 9"5,BD4FQ6)#8JU*A$TEPN]UO[#_ !,<>-#O^,$ SL$00Z=C"'T<
M<7P7.V['$/HX%"(W(,&P(T#GLA-V?LC_:GIG9-RUY_D0#CJ0=!(3#>#\('3<
MSNLC'L"YQ/="]T; 5UM_^'H3C(M/./$M$QQ7?NVS9U0M,JH6FU)KUPA=:H1,
M6&&M8JH>)M4BHVJQ*;5V/2Z?0G!T?S]FB#6SM4'RL=[Z=/UA $>\H+N1B@9P
M>N=#L.=W#:(/U+ZD-6\8Q.5K XY_;GS3$4EO)QJ$F/0,L0_3^SP7=>/MPY"+
M>R^4>  '/0Q1V G7OCH5R9C8EL=1$JSX(5?5QV_3VQQY?2@/>CK]#_!^#@?Z
MH^*(K#R%N<A7YVN/5&R37(*4;?10SIVO:R.J(ZNJH?B^/)-9<J5X5E[N&%TS
M40#T_0WGZMPH!F@.#F=? 5!+ P04    " #=A%A9SLDW0S\#   F%   #0
M 'AL+W-T>6QE<RYX;6S=6%UOVC 4_2N1NTZM-#5 1B K(&U(E29M4Z7V86^5
M(0Y8<NS,,1WTU\\W#N&COHCU82T+:F/?XW/NL7U#W Y*LQ+L;LZ8"9:YD.60
MS(TI/H5A.9VSG)97JF#2(IG2.36VJV=A66A&TQ)(N0@[K58<YI1+,AK(17Z3
MFS*8JH4T0])K0H&[?4V'I!U_)(&3&ZN4#<G#Q?M?"V6NWP7N?O;A[*SU<'F]
M'[^H@$L2>D6[1XA>M7!=BV'2\7'2![51\=Y1X@>D,>'^KO#:R+F5:ER=8^3$
M0]XP,5JOY<VYE;$BAG69C :9DIMJB8@+6&6:L^"1BB$94\$GF@,KHSD7*Q?N
M0&"JA-*!L65J4[4A4CXYN.UZ4,&U3LZETE5NE\']GM3#]X!U#PQR(1J#'>("
MHT%!C6%:WMA.-;@*/H."NGV_*JS#F::K=J=+-H3J9I-,E$Z9;M*TR3HT&@B6
M@1W-9W.X&U6$ !JC<MM(.9TI22L/:T;=L+)3)L0=/-X_LQWM9;:U9]6.R:9I
M#=5-)^,ZH+^MYK2W9:,7Z08%?U3FR\).1U9]*&QVJUG&EU5_F34&,/4VKDZ+
M0JP^"SZ3.7.3/SKA:$#7O&"N-'^RV:!4IC; - D>F39\NAWYK6EQSY9F74[+
M#/?<.4'/_W:=9TPR3<6V:5O[;WF57^PXZKV6Y>I;9=^PUV/]SG[K)KNG8#(^
M!9,G49/]4S"9G(#)WJM]:QXT&=:GC*VCS,Y!IHD&<& <DA]P]!2;I,%DP87A
MLN[->9HR^>P\8^4-G=@_@G;T[?B4970AS'T##LFF_9VE?)$GS:A;6(AZU*;]
M#:;7CIO3JLW%9<J6+!W773V;5,W -FS6^@+"/G)377X$XSC,CP"&Y<$<8!S'
MPO+\3_/IH_-Q&.:M[T7Z**>/<AS+AXRK#Y;'STGLY9]IDD11'&,K.AY['8RQ
M=8MC^/&K8=Z @>6!3'^WUOANXQ5RN ZP/3U4(=A,\4K$9HJO-2#^=0-&DOAW
M&\L##&P7L-J!_/X\4%-^3A3!KF+>L"<81Y($0Z 6_34:Q\CJQ/#Q[P_VE$11
MDO@1P/P.H@A#X&G$$<P!>,"0**K>@WOOHW#]G@HW_QD<_0%02P,$%     @
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
M36*!    L0   !               ( !     &1O8U!R;W!S+V%P<"YX;6Q0
M2P$"% ,4    " #=A%A9ZKE^EN\    K @  $0              @ &O
M9&]C4')O<',O8V]R92YX;6Q02P$"% ,4    " #=A%A9F5R<(Q &  "<)P
M$P              @ '- 0  >&PO=&AE;64O=&AE;64Q+GAM;%!+ 0(4 Q0
M   ( -V$6%G_BR3 ^@4  -0?   8              " @0X(  !X;"]W;W)K
M<VAE971S+W-H965T,2YX;6Q02P$"% ,4    " #=A%A9</OQ"NT'   S(
M&               @($^#@  >&PO=V]R:W-H965T<R]S:&5E=#(N>&UL4$L!
M A0#%     @ W8186?K-" NX P  6@T  !@              ("!818  'AL
M+W=O<FMS:&5E=',O<VAE970S+GAM;%!+ 0(4 Q0    ( -V$6%EO=!]L9@8
M +L<   8              " @4\:  !X;"]W;W)K<VAE971S+W-H965T-"YX
M;6Q02P$"% ,4    " #=A%A97:BZ%]D1  !SQ0  &               @('K
M(   >&PO=V]R:W-H965T<R]S:&5E=#4N>&UL4$L! A0#%     @ W81862,&
M(46\ @  4@D  !@              ("!^C(  'AL+W=O<FMS:&5E=',O<VAE
M970V+GAM;%!+ 0(4 Q0    ( -V$6%DV)% \R @  )$E   8
M  " @>PU  !X;"]W;W)K<VAE971S+W-H965T-RYX;6Q02P$"% ,4    " #=
MA%A9D)WI*D8#  ""!P  &               @('J/@  >&PO=V]R:W-H965T
M<R]S:&5E=#@N>&UL4$L! A0#%     @ W81865;MKG <$0  ER\  !@
M         ("!9D(  'AL+W=O<FMS:&5E=',O<VAE970Y+GAM;%!+ 0(4 Q0
M   ( -V$6%EA66M5,!,  .H]   9              " @;A3  !X;"]W;W)K
M<VAE971S+W-H965T,3 N>&UL4$L! A0#%     @ W81865Q0.A6X!P  )A8
M !D              ("!'V<  'AL+W=O<FMS:&5E=',O<VAE970Q,2YX;6Q0
M2P$"% ,4    " #=A%A9V%'X+34+  !$)P  &0              @($.;P
M>&PO=V]R:W-H965T<R]S:&5E=#$R+GAM;%!+ 0(4 Q0    ( -V$6%FH;"BM
MEP,   (*   9              " @7IZ  !X;"]W;W)K<VAE971S+W-H965T
M,3,N>&UL4$L! A0#%     @ W818661KXSDE"0  GA@  !D
M ("!2'X  'AL+W=O<FMS:&5E=',O<VAE970Q-"YX;6Q02P$"% ,4    " #=
MA%A9J#<)'\0'  "Z%@  &0              @(&DAP  >&PO=V]R:W-H965T
M<R]S:&5E=#$U+GAM;%!+ 0(4 Q0    ( -V$6%D>*+4T%0D  &05   9
M          " @9^/  !X;"]W;W)K<VAE971S+W-H965T,38N>&UL4$L! A0#
M%     @ W81866Q;]0S+!@  )!,  !D              ("!ZY@  'AL+W=O
M<FMS:&5E=',O<VAE970Q-RYX;6Q02P$"% ,4    " #=A%A9K6^M+J0#  !-
M#   &0              @('MGP  >&PO=V]R:W-H965T<R]S:&5E=#$X+GAM
M;%!+ 0(4 Q0    ( -V$6%EW9N8/A@(  ,,'   9              " @<BC
M  !X;"]W;W)K<VAE971S+W-H965T,3DN>&UL4$L! A0#%     @ W81860!Z
MCZM# @  B@8  !D              ("!A:8  'AL+W=O<FMS:&5E=',O<VAE
M970R,"YX;6Q02P$"% ,4    " #=A%A9-5L;PQ05  !_/P  &0
M    @('_J   >&PO=V]R:W-H965T<R]S:&5E=#(Q+GAM;%!+ 0(4 Q0    (
M -V$6%FZ6P#<C 8  "<8   9              " @4J^  !X;"]W;W)K<VAE
M971S+W-H965T,C(N>&UL4$L! A0#%     @ W81865-">V@(!   A0T  !D
M             ("!#<4  'AL+W=O<FMS:&5E=',O<VAE970R,RYX;6Q02P$"
M% ,4    " #=A%A9+>E?\\(%  #C%0  &0              @(%,R0  >&PO
M=V]R:W-H965T<R]S:&5E=#(T+GAM;%!+ 0(4 Q0    ( -V$6%E#J=1]K0,
M $T*   9              " @47/  !X;"]W;W)K<VAE971S+W-H965T,C4N
M>&UL4$L! A0#%     @ W8186>ZUL8PK!   7@P  !D              ("!
M*=,  'AL+W=O<FMS:&5E=',O<VAE970R-BYX;6Q02P$"% ,4    " #=A%A9
M.IZ8WC$$  #7#   &0              @(&+UP  >&PO=V]R:W-H965T<R]S
M:&5E=#(W+GAM;%!+ 0(4 Q0    ( -V$6%F"D,W+6@,  " )   9
M      " @?/;  !X;"]W;W)K<VAE971S+W-H965T,C@N>&UL4$L! A0#%
M  @ W81868&A69Q& P  .PL  !D              ("!A-\  'AL+W=O<FMS
M:&5E=',O<VAE970R.2YX;6Q02P$"% ,4    " #=A%A9->8*T48"  #]!
M&0              @($!XP  >&PO=V]R:W-H965T<R]S:&5E=#,P+GAM;%!+
M 0(4 Q0    ( -V$6%G$.B*_$0(  &<$   9              " @7[E  !X
M;"]W;W)K<VAE971S+W-H965T,S$N>&UL4$L! A0#%     @ W8186:ZW44N@
M @  %@@  !D              ("!QN<  'AL+W=O<FMS:&5E=',O<VAE970S
M,BYX;6Q02P$"% ,4    " #=A%A9CQ19XC8*  !55P  &0
M@(&=Z@  >&PO=V]R:W-H965T<R]S:&5E=#,S+GAM;%!+ 0(4 Q0    ( -V$
M6%G:XTYV: ,  *@,   9              " @0KU  !X;"]W;W)K<VAE971S
M+W-H965T,S0N>&UL4$L! A0#%     @ W81868O)#*MQ P  5PT  !D
M         ("!J?@  'AL+W=O<FMS:&5E=',O<VAE970S-2YX;6Q02P$"% ,4
M    " #=A%A9;N9N53P&   Z)@  &0              @(%1_   >&PO=V]R
M:W-H965T<R]S:&5E=#,V+GAM;%!+ 0(4 Q0    ( -V$6%D*C(/)3@P  '.7
M   9              " @<0" 0!X;"]W;W)K<VAE971S+W-H965T,S<N>&UL
M4$L! A0#%     @ W818630G0A==!@  KRP  !D              ("!20\!
M 'AL+W=O<FMS:&5E=',O<VAE970S."YX;6Q02P$"% ,4    " #=A%A9L5B+
MFGD#   K$P  &0              @('=%0$ >&PO=V]R:W-H965T<R]S:&5E
M=#,Y+GAM;%!+ 0(4 Q0    ( -V$6%F"GVANVP,  -T/   9
M  " @8T9 0!X;"]W;W)K<VAE971S+W-H965T-# N>&UL4$L! A0#%     @
MW81861#6MMFC @  '0<  !D              ("!GQT! 'AL+W=O<FMS:&5E
M=',O<VAE970T,2YX;6Q02P$"% ,4    " #=A%A98Z5R[,H"  !1"0  &0
M            @(%Y( $ >&PO=V]R:W-H965T<R]S:&5E=#0R+GAM;%!+ 0(4
M Q0    ( -V$6%ES*3R(X@@   )7   9              " @7HC 0!X;"]W
M;W)K<VAE971S+W-H965T-#,N>&UL4$L! A0#%     @ W81860(&U#Y+!
M;1T  !D              ("!DRP! 'AL+W=O<FMS:&5E=',O<VAE970T-"YX
M;6Q02P$"% ,4    " #=A%A9T(CBA1,%  #Q'@  &0              @($5
M,0$ >&PO=V]R:W-H965T<R]S:&5E=#0U+GAM;%!+ 0(4 Q0    ( -V$6%E;
M.FUF"P,  (()   9              " @5\V 0!X;"]W;W)K<VAE971S+W-H
M965T-#8N>&UL4$L! A0#%     @ W8186:3P7X?7!   9!H  !D
M     ("!H3D! 'AL+W=O<FMS:&5E=',O<VAE970T-RYX;6Q02P$"% ,4
M" #=A%A9L] +558$  !E&   &0              @(&O/@$ >&PO=V]R:W-H
M965T<R]S:&5E=#0X+GAM;%!+ 0(4 Q0    ( -V$6%GT6".CSP,  * -   9
M              " @3Q# 0!X;"]W;W)K<VAE971S+W-H965T-#DN>&UL4$L!
M A0#%     @ W81869*LZ=,1!0  ZR(  !D              ("!0D<! 'AL
M+W=O<FMS:&5E=',O<VAE970U,"YX;6Q02P$"% ,4    " #=A%A9?Y/?W1L$
M  !$%   &0              @(&*3 $ >&PO=V]R:W-H965T<R]S:&5E=#4Q
M+GAM;%!+ 0(4 Q0    ( -V$6%G.R3=#/P,  "84   -              "
M =Q0 0!X;"]S='EL97,N>&UL4$L! A0#%     @ W81869>*NQS     $P(
M  L              ( !1E0! %]R96QS+RYR96QS4$L! A0#%     @ W818
M6;_EJ(MK!   &R(   \              ( !+U4! 'AL+W=O<FMB;V]K+GAM
M;%!+ 0(4 Q0    ( -V$6%FAE^J4R0$  * >   :              "  <=9
M 0!X;"]?<F5L<R]W;W)K8F]O:RYX;6PN<F5L<U!+ 0(4 Q0    ( -V$6%DH
MM&@3PP$  (D>   3              "  <A; 0!;0V]N=&5N=%]4>7!E<UTN
9>&UL4$L%!@     [ #L %!   +Q= 0    $!

end
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>64
<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>65
<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>67
<FILENAME>FilingSummary.xml
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<XML>
<?xml version='1.0' encoding='utf-8'?>
<FilingSummary>
  <Version>3.24.3</Version>
  <ProcessingTime/>
  <ReportFormat>html</ReportFormat>
  <ContextCount>245</ContextCount>
  <ElementCount>285</ElementCount>
  <EntityCount>1</EntityCount>
  <FootnotesReported>false</FootnotesReported>
  <SegmentCount>62</SegmentCount>
  <ScenarioCount>0</ScenarioCount>
  <TuplesReported>false</TuplesReported>
  <UnitCount>10</UnitCount>
  <MyReports>
    <Report instance="fix-20240930x10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R1.htm</HtmlFileName>
      <LongName>995200090 - Document - Document and Entity Information</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.comfortsystemsusa.com/role/DocumentDocumentAndEntityInformation</Role>
      <ShortName>Document and Entity Information</ShortName>
      <MenuCategory>Cover</MenuCategory>
      <Position>1</Position>
    </Report>
    <Report instance="fix-20240930x10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R2.htm</HtmlFileName>
      <LongName>995200100 - Statement - CONSOLIDATED BALANCE SHEETS</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.comfortsystemsusa.com/role/StatementConsolidatedBalanceSheets</Role>
      <ShortName>CONSOLIDATED BALANCE SHEETS</ShortName>
      <MenuCategory>Statements</MenuCategory>
      <Position>2</Position>
    </Report>
    <Report instance="fix-20240930x10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R3.htm</HtmlFileName>
      <LongName>995200105 - Statement - CONSOLIDATED BALANCE SHEETS (Parenthetical)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.comfortsystemsusa.com/role/StatementConsolidatedBalanceSheetsParenthetical</Role>
      <ShortName>CONSOLIDATED BALANCE SHEETS (Parenthetical)</ShortName>
      <MenuCategory>Statements</MenuCategory>
      <Position>3</Position>
    </Report>
    <Report instance="fix-20240930x10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R4.htm</HtmlFileName>
      <LongName>995200200 - Statement - CONSOLIDATED STATEMENTS OF OPERATIONS</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfOperations</Role>
      <ShortName>CONSOLIDATED STATEMENTS OF OPERATIONS</ShortName>
      <MenuCategory>Statements</MenuCategory>
      <Position>4</Position>
    </Report>
    <Report instance="fix-20240930x10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R5.htm</HtmlFileName>
      <LongName>995200300 - Statement - CONSOLIDATED STATEMENTS OF STOCKHOLDERS' EQUITY</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfStockholdersEquity</Role>
      <ShortName>CONSOLIDATED STATEMENTS OF STOCKHOLDERS' EQUITY</ShortName>
      <MenuCategory>Statements</MenuCategory>
      <Position>5</Position>
    </Report>
    <Report instance="fix-20240930x10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R6.htm</HtmlFileName>
      <LongName>995200305 - Statement - CONSOLIDATED STATEMENTS OF STOCKHOLDERS' EQUITY (Parenthetical)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfStockholdersEquityParenthetical</Role>
      <ShortName>CONSOLIDATED STATEMENTS OF STOCKHOLDERS' EQUITY (Parenthetical)</ShortName>
      <MenuCategory>Statements</MenuCategory>
      <Position>6</Position>
    </Report>
    <Report instance="fix-20240930x10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R7.htm</HtmlFileName>
      <LongName>995200400 - Statement - CONSOLIDATED STATEMENTS OF CASH FLOWS</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfCashFlows</Role>
      <ShortName>CONSOLIDATED STATEMENTS OF CASH FLOWS</ShortName>
      <MenuCategory>Statements</MenuCategory>
      <Position>7</Position>
    </Report>
    <Report instance="fix-20240930x10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R8.htm</HtmlFileName>
      <LongName>995210101 - Disclosure - Business and Organization</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.comfortsystemsusa.com/role/DisclosureBusinessAndOrganization</Role>
      <ShortName>Business and Organization</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>8</Position>
    </Report>
    <Report instance="fix-20240930x10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R9.htm</HtmlFileName>
      <LongName>995210201 - Disclosure - Summary of Significant Accounting Policies and Estimates</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.comfortsystemsusa.com/role/DisclosureSummaryOfSignificantAccountingPoliciesAndEstimates</Role>
      <ShortName>Summary of Significant Accounting Policies and Estimates</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>9</Position>
    </Report>
    <Report instance="fix-20240930x10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R10.htm</HtmlFileName>
      <LongName>995210301 - Disclosure - Revenue from Contracts with Customers</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.comfortsystemsusa.com/role/DisclosureRevenueFromContractsWithCustomers</Role>
      <ShortName>Revenue from Contracts with Customers</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>10</Position>
    </Report>
    <Report instance="fix-20240930x10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R11.htm</HtmlFileName>
      <LongName>995210401 - Disclosure - Fair Value Measurements</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.comfortsystemsusa.com/role/DisclosureFairValueMeasurements</Role>
      <ShortName>Fair Value Measurements</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>11</Position>
    </Report>
    <Report instance="fix-20240930x10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R12.htm</HtmlFileName>
      <LongName>995210501 - Disclosure - Acquisitions</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.comfortsystemsusa.com/role/DisclosureAcquisitions</Role>
      <ShortName>Acquisitions</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>12</Position>
    </Report>
    <Report instance="fix-20240930x10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R13.htm</HtmlFileName>
      <LongName>995210601 - Disclosure - Goodwill and Identifiable Intangible Assets, Net</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.comfortsystemsusa.com/role/DisclosureGoodwillAndIdentifiableIntangibleAssetsNet</Role>
      <ShortName>Goodwill and Identifiable Intangible Assets, Net</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>13</Position>
    </Report>
    <Report instance="fix-20240930x10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R14.htm</HtmlFileName>
      <LongName>995210701 - Disclosure - Debt Obligations</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.comfortsystemsusa.com/role/DisclosureDebtObligations</Role>
      <ShortName>Debt Obligations</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>14</Position>
    </Report>
    <Report instance="fix-20240930x10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R15.htm</HtmlFileName>
      <LongName>995210801 - Disclosure - Leases</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.comfortsystemsusa.com/role/DisclosureLeases</Role>
      <ShortName>Leases</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>15</Position>
    </Report>
    <Report instance="fix-20240930x10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R16.htm</HtmlFileName>
      <LongName>995210901 - Disclosure - Commitments and Contingencies</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.comfortsystemsusa.com/role/DisclosureCommitmentsAndContingencies</Role>
      <ShortName>Commitments and Contingencies</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>16</Position>
    </Report>
    <Report instance="fix-20240930x10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R17.htm</HtmlFileName>
      <LongName>995211001 - Disclosure - Stockholders' Equity</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.comfortsystemsusa.com/role/DisclosureStockholdersEquity</Role>
      <ShortName>Stockholders' Equity</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>17</Position>
    </Report>
    <Report instance="fix-20240930x10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R18.htm</HtmlFileName>
      <LongName>995211101 - Disclosure - Segment Information</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.comfortsystemsusa.com/role/DisclosureSegmentInformation</Role>
      <ShortName>Segment Information</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>18</Position>
    </Report>
    <Report instance="fix-20240930x10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R19.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>19</Position>
    </Report>
    <Report instance="fix-20240930x10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R20.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>20</Position>
    </Report>
    <Report instance="fix-20240930x10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R21.htm</HtmlFileName>
      <LongName>99920202 - Disclosure - Summary of Significant Accounting Policies and Estimates (Policies)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.comfortsystemsusa.com/role/DisclosureSummaryOfSignificantAccountingPoliciesAndEstimatesPolicies</Role>
      <ShortName>Summary of Significant Accounting Policies and Estimates (Policies)</ShortName>
      <MenuCategory>Policies</MenuCategory>
      <ParentRole>http://www.comfortsystemsusa.com/role/DisclosureSummaryOfSignificantAccountingPoliciesAndEstimates</ParentRole>
      <Position>21</Position>
    </Report>
    <Report instance="fix-20240930x10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R22.htm</HtmlFileName>
      <LongName>99930303 - Disclosure - Revenue from Contracts with Customers (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.comfortsystemsusa.com/role/DisclosureRevenueFromContractsWithCustomersTables</Role>
      <ShortName>Revenue from Contracts with Customers (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.comfortsystemsusa.com/role/DisclosureRevenueFromContractsWithCustomers</ParentRole>
      <Position>22</Position>
    </Report>
    <Report instance="fix-20240930x10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R23.htm</HtmlFileName>
      <LongName>99930403 - Disclosure - Fair Value Measurements (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.comfortsystemsusa.com/role/DisclosureFairValueMeasurementsTables</Role>
      <ShortName>Fair Value Measurements (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.comfortsystemsusa.com/role/DisclosureFairValueMeasurements</ParentRole>
      <Position>23</Position>
    </Report>
    <Report instance="fix-20240930x10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R24.htm</HtmlFileName>
      <LongName>99930503 - Disclosure - Acquisitions (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsTables</Role>
      <ShortName>Acquisitions (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.comfortsystemsusa.com/role/DisclosureAcquisitions</ParentRole>
      <Position>24</Position>
    </Report>
    <Report instance="fix-20240930x10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R25.htm</HtmlFileName>
      <LongName>99930603 - Disclosure - Goodwill and Identifiable Intangible Assets, Net (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.comfortsystemsusa.com/role/DisclosureGoodwillAndIdentifiableIntangibleAssetsNetTables</Role>
      <ShortName>Goodwill and Identifiable Intangible Assets, Net (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.comfortsystemsusa.com/role/DisclosureGoodwillAndIdentifiableIntangibleAssetsNet</ParentRole>
      <Position>25</Position>
    </Report>
    <Report instance="fix-20240930x10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R26.htm</HtmlFileName>
      <LongName>99930703 - Disclosure - Debt Obligations (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsTables</Role>
      <ShortName>Debt Obligations (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.comfortsystemsusa.com/role/DisclosureDebtObligations</ParentRole>
      <Position>26</Position>
    </Report>
    <Report instance="fix-20240930x10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R27.htm</HtmlFileName>
      <LongName>99930803 - Disclosure - Leases (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.comfortsystemsusa.com/role/DisclosureLeasesTables</Role>
      <ShortName>Leases (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.comfortsystemsusa.com/role/DisclosureLeases</ParentRole>
      <Position>27</Position>
    </Report>
    <Report instance="fix-20240930x10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R28.htm</HtmlFileName>
      <LongName>99931003 - Disclosure - Stockholders' Equity (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.comfortsystemsusa.com/role/DisclosureStockholdersEquityTables</Role>
      <ShortName>Stockholders' Equity (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.comfortsystemsusa.com/role/DisclosureStockholdersEquity</ParentRole>
      <Position>28</Position>
    </Report>
    <Report instance="fix-20240930x10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R29.htm</HtmlFileName>
      <LongName>99931103 - Disclosure - Segment Information (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.comfortsystemsusa.com/role/DisclosureSegmentInformationTables</Role>
      <ShortName>Segment Information (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.comfortsystemsusa.com/role/DisclosureSegmentInformation</ParentRole>
      <Position>29</Position>
    </Report>
    <Report instance="fix-20240930x10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R30.htm</HtmlFileName>
      <LongName>99940201 - Disclosure - Summary of Significant Accounting Policies and Estimates - Income Taxes (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.comfortsystemsusa.com/role/DisclosureSummaryOfSignificantAccountingPoliciesAndEstimatesIncomeTaxesDetails</Role>
      <ShortName>Summary of Significant Accounting Policies and Estimates - Income Taxes (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>30</Position>
    </Report>
    <Report instance="fix-20240930x10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R31.htm</HtmlFileName>
      <LongName>99940202 - Disclosure - Summary of Significant Accounting Policies and Estimates - Investments (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.comfortsystemsusa.com/role/DisclosureSummaryOfSignificantAccountingPoliciesAndEstimatesInvestmentsDetails</Role>
      <ShortName>Summary of Significant Accounting Policies and Estimates - Investments (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://www.comfortsystemsusa.com/role/DisclosureSummaryOfSignificantAccountingPoliciesAndEstimatesPolicies</ParentRole>
      <Position>31</Position>
    </Report>
    <Report instance="fix-20240930x10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R32.htm</HtmlFileName>
      <LongName>99940301 - Disclosure - Revenue from Contracts with Customers - Narratives (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.comfortsystemsusa.com/role/DisclosureRevenueFromContractsWithCustomersNarrativesDetails</Role>
      <ShortName>Revenue from Contracts with Customers - Narratives (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>32</Position>
    </Report>
    <Report instance="fix-20240930x10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R33.htm</HtmlFileName>
      <LongName>99940302 - Disclosure - Revenue from Contracts with Customers - Disaggregation of Revenue (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.comfortsystemsusa.com/role/DisclosureRevenueFromContractsWithCustomersDisaggregationOfRevenueDetails</Role>
      <ShortName>Revenue from Contracts with Customers - Disaggregation of Revenue (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>33</Position>
    </Report>
    <Report instance="fix-20240930x10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R34.htm</HtmlFileName>
      <LongName>99940303 - Disclosure - Revenue from Contracts with Customers - Contract Assets and Liabilities (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.comfortsystemsusa.com/role/DisclosureRevenueFromContractsWithCustomersContractAssetsAndLiabilitiesDetails</Role>
      <ShortName>Revenue from Contracts with Customers - Contract Assets and Liabilities (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>34</Position>
    </Report>
    <Report instance="fix-20240930x10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R35.htm</HtmlFileName>
      <LongName>99940304 - Disclosure - Revenue from Contracts with Customers - Remaining Performance Obligations (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.comfortsystemsusa.com/role/DisclosureRevenueFromContractsWithCustomersRemainingPerformanceObligationsDetails</Role>
      <ShortName>Revenue from Contracts with Customers - Remaining Performance Obligations (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>35</Position>
    </Report>
    <Report instance="fix-20240930x10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R36.htm</HtmlFileName>
      <LongName>99940401 - Disclosure - Fair Value Measurements (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.comfortsystemsusa.com/role/DisclosureFairValueMeasurementsDetails</Role>
      <ShortName>Fair Value Measurements (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://www.comfortsystemsusa.com/role/DisclosureFairValueMeasurementsTables</ParentRole>
      <Position>36</Position>
    </Report>
    <Report instance="fix-20240930x10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R37.htm</HtmlFileName>
      <LongName>99940501 - Disclosure - Acquisitions (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsDetails</Role>
      <ShortName>Acquisitions (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsTables</ParentRole>
      <Position>37</Position>
    </Report>
    <Report instance="fix-20240930x10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R38.htm</HtmlFileName>
      <LongName>99940502 - Disclosure - Acquisitions - Acquired Intangible Assets (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsAcquiredIntangibleAssetsDetails</Role>
      <ShortName>Acquisitions - Acquired Intangible Assets (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>38</Position>
    </Report>
    <Report instance="fix-20240930x10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R39.htm</HtmlFileName>
      <LongName>99940503 - Disclosure - Acquisitions - Other Acquisitions (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsOtherAcquisitionsDetails</Role>
      <ShortName>Acquisitions - Other Acquisitions (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>39</Position>
    </Report>
    <Report instance="fix-20240930x10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R40.htm</HtmlFileName>
      <LongName>99940601 - Disclosure - Goodwill and Identifiable Intangible Assets, Net - Changes in Carrying Amount of Goodwill (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.comfortsystemsusa.com/role/DisclosureGoodwillAndIdentifiableIntangibleAssetsNetChangesInCarryingAmountOfGoodwillDetails</Role>
      <ShortName>Goodwill and Identifiable Intangible Assets, Net - Changes in Carrying Amount of Goodwill (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>40</Position>
    </Report>
    <Report instance="fix-20240930x10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R41.htm</HtmlFileName>
      <LongName>99940602 - Disclosure - Goodwill and Identifiable Intangible Assets, Net - Identifiable Intangible Assets, Net (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.comfortsystemsusa.com/role/DisclosureGoodwillAndIdentifiableIntangibleAssetsNetIdentifiableIntangibleAssetsNetDetails</Role>
      <ShortName>Goodwill and Identifiable Intangible Assets, Net - Identifiable Intangible Assets, Net (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>41</Position>
    </Report>
    <Report instance="fix-20240930x10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R42.htm</HtmlFileName>
      <LongName>99940701 - Disclosure - Debt Obligations (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsDetails</Role>
      <ShortName>Debt Obligations (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsTables</ParentRole>
      <Position>42</Position>
    </Report>
    <Report instance="fix-20240930x10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R43.htm</HtmlFileName>
      <LongName>99940702 - Disclosure - Debt Obligations - Other (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsOtherDetails</Role>
      <ShortName>Debt Obligations - Other (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>43</Position>
    </Report>
    <Report instance="fix-20240930x10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R44.htm</HtmlFileName>
      <LongName>99940703 - Disclosure - Debt Obligations - Notes to Former Owners (Details)</LongName>
      <ReportType>Notes</ReportType>
      <Role>http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsNotesToFormerOwnersDetails</Role>
      <ShortName>Debt Obligations - Notes to Former Owners (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>44</Position>
    </Report>
    <Report instance="fix-20240930x10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R45.htm</HtmlFileName>
      <LongName>99940801 - Disclosure - Leases (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.comfortsystemsusa.com/role/DisclosureLeasesDetails</Role>
      <ShortName>Leases (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://www.comfortsystemsusa.com/role/DisclosureLeasesTables</ParentRole>
      <Position>45</Position>
    </Report>
    <Report instance="fix-20240930x10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R46.htm</HtmlFileName>
      <LongName>99940802 - Disclosure - Leases - Summary of Operating Lease Assets and Liabilities (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.comfortsystemsusa.com/role/DisclosureLeasesSummaryOfOperatingLeaseAssetsAndLiabilitiesDetails</Role>
      <ShortName>Leases - Summary of Operating Lease Assets and Liabilities (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>46</Position>
    </Report>
    <Report instance="fix-20240930x10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R47.htm</HtmlFileName>
      <LongName>99940803 - Disclosure - Leases - Maturities of Lease Liabilities (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.comfortsystemsusa.com/role/DisclosureLeasesMaturitiesOfLeaseLiabilitiesDetails</Role>
      <ShortName>Leases - Maturities of Lease Liabilities (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>47</Position>
    </Report>
    <Report instance="fix-20240930x10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R48.htm</HtmlFileName>
      <LongName>99940901 - Disclosure - Commitments and Contingencies (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.comfortsystemsusa.com/role/DisclosureCommitmentsAndContingenciesDetails</Role>
      <ShortName>Commitments and Contingencies (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://www.comfortsystemsusa.com/role/DisclosureCommitmentsAndContingencies</ParentRole>
      <Position>48</Position>
    </Report>
    <Report instance="fix-20240930x10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R49.htm</HtmlFileName>
      <LongName>99941001 - Disclosure - Stockholders' Equity - Number of Shares (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.comfortsystemsusa.com/role/DisclosureStockholdersEquityNumberOfSharesDetails</Role>
      <ShortName>Stockholders' Equity - Number of Shares (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>49</Position>
    </Report>
    <Report instance="fix-20240930x10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R50.htm</HtmlFileName>
      <LongName>99941002 - Disclosure - Stockholders' Equity - Incentive and Other (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.comfortsystemsusa.com/role/DisclosureStockholdersEquityIncentiveAndOtherDetails</Role>
      <ShortName>Stockholders' Equity - Incentive and Other (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>50</Position>
    </Report>
    <Report instance="fix-20240930x10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R51.htm</HtmlFileName>
      <LongName>99941101 - Disclosure - Segment Information (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.comfortsystemsusa.com/role/DisclosureSegmentInformationDetails</Role>
      <ShortName>Segment Information (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://www.comfortsystemsusa.com/role/DisclosureSegmentInformationTables</ParentRole>
      <Position>51</Position>
    </Report>
    <Report>
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <LongName>All Reports</LongName>
      <ReportType>Book</ReportType>
      <ShortName>All Reports</ShortName>
    </Report>
  </MyReports>
  <InputFiles>
    <File>fix-20240930.xsd</File>
    <File>fix-20240930_cal.xml</File>
    <File>fix-20240930_def.xml</File>
    <File>fix-20240930_lab.xml</File>
    <File>fix-20240930_pre.xml</File>
    <File doctype="10-Q" isDefinitelyFs="true" isUsgaap="true" original="fix-20240930x10q.htm">fix-20240930x10q.htm</File>
  </InputFiles>
  <SupplementalFiles/>
  <BaseTaxonomies>
    <BaseTaxonomy items="3">http://fasb.org/srt/2024</BaseTaxonomy>
    <BaseTaxonomy items="762">http://fasb.org/us-gaap/2024</BaseTaxonomy>
    <BaseTaxonomy items="30">http://xbrl.sec.gov/dei/2024</BaseTaxonomy>
    <BaseTaxonomy items="4">http://xbrl.sec.gov/ecd/2024</BaseTaxonomy>
  </BaseTaxonomies>
  <HasPresentationLinkbase>true</HasPresentationLinkbase>
  <HasCalculationLinkbase>true</HasCalculationLinkbase>
</FilingSummary>
</XML>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>JSON
<SEQUENCE>70
<FILENAME>MetaLinks.json
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
{
 "version": "2.2",
 "instance": {
  "fix-20240930x10q.htm": {
   "nsprefix": "fix",
   "nsuri": "http://www.comfortsystemsusa.com/20240930",
   "dts": {
    "schema": {
     "local": [
      "fix-20240930.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/2024/elts/srt-2024.xsd",
      "https://xbrl.fasb.org/srt/2024/elts/srt-roles-2024.xsd",
      "https://xbrl.fasb.org/srt/2024/elts/srt-types-2024.xsd",
      "https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd",
      "https://xbrl.fasb.org/us-gaap/2024/elts/us-roles-2024.xsd",
      "https://xbrl.fasb.org/us-gaap/2024/elts/us-types-2024.xsd",
      "https://xbrl.sec.gov/country/2024/country-2024.xsd",
      "https://xbrl.sec.gov/dei/2024/dei-2024.xsd",
      "https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd",
      "https://xbrl.sec.gov/ecd/2024/ecd-sub-2024.xsd",
      "https://xbrl.sec.gov/stpr/2024/stpr-2024.xsd"
     ]
    },
    "calculationLink": {
     "local": [
      "fix-20240930_cal.xml"
     ]
    },
    "definitionLink": {
     "local": [
      "fix-20240930_def.xml"
     ]
    },
    "labelLink": {
     "local": [
      "fix-20240930_lab.xml"
     ]
    },
    "presentationLink": {
     "local": [
      "fix-20240930_pre.xml"
     ]
    },
    "inline": {
     "local": [
      "fix-20240930x10q.htm"
     ]
    }
   },
   "keyStandard": 254,
   "keyCustom": 31,
   "axisStandard": 20,
   "axisCustom": 2,
   "memberStandard": 25,
   "memberCustom": 35,
   "hidden": {
    "total": 16,
    "http://xbrl.sec.gov/dei/2024": 5,
    "http://fasb.org/us-gaap/2024": 9,
    "http://www.comfortsystemsusa.com/20240930": 2
   },
   "contextCount": 245,
   "entityCount": 1,
   "segmentCount": 62,
   "elementCount": 567,
   "unitCount": 10,
   "baseTaxonomies": {
    "http://fasb.org/us-gaap/2024": 762,
    "http://xbrl.sec.gov/dei/2024": 30,
    "http://xbrl.sec.gov/ecd/2024": 4,
    "http://fasb.org/srt/2024": 3
   },
   "report": {
    "R1": {
     "role": "http://www.comfortsystemsusa.com/role/DocumentDocumentAndEntityInformation",
     "longName": "995200090 - Document - Document and Entity Information",
     "shortName": "Document and Entity Information",
     "isDefault": "true",
     "groupType": "document",
     "subGroupType": "",
     "menuCat": "Cover",
     "order": "1",
     "firstAnchor": {
      "contextRef": "Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ",
      "name": "dei:DocumentType",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "p",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "fix-20240930x10q.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ",
      "name": "dei:DocumentType",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "p",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "fix-20240930x10q.htm",
      "first": true,
      "unique": true
     }
    },
    "R2": {
     "role": "http://www.comfortsystemsusa.com/role/StatementConsolidatedBalanceSheets",
     "longName": "995200100 - Statement - CONSOLIDATED BALANCE SHEETS",
     "shortName": "CONSOLIDATED BALANCE SHEETS",
     "isDefault": "false",
     "groupType": "statement",
     "subGroupType": "",
     "menuCat": "Statements",
     "order": "2",
     "firstAnchor": {
      "contextRef": "As_Of_9_30_2024_um13j0l3zk2ITGaiED1DFA",
      "name": "us-gaap:CashAndCashEquivalentsAtCarryingValue",
      "unitRef": "Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "fix-20240930x10q.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "As_Of_9_30_2024_um13j0l3zk2ITGaiED1DFA",
      "name": "us-gaap:CashAndCashEquivalentsAtCarryingValue",
      "unitRef": "Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "fix-20240930x10q.htm",
      "first": true,
      "unique": true
     }
    },
    "R3": {
     "role": "http://www.comfortsystemsusa.com/role/StatementConsolidatedBalanceSheetsParenthetical",
     "longName": "995200105 - Statement - CONSOLIDATED BALANCE SHEETS (Parenthetical)",
     "shortName": "CONSOLIDATED BALANCE SHEETS (Parenthetical)",
     "isDefault": "false",
     "groupType": "statement",
     "subGroupType": "parenthetical",
     "menuCat": "Statements",
     "order": "3",
     "firstAnchor": {
      "contextRef": "As_Of_9_30_2024_um13j0l3zk2ITGaiED1DFA",
      "name": "us-gaap:AllowanceForDoubtfulAccountsReceivableCurrent",
      "unitRef": "Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "fix-20240930x10q.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "As_Of_9_30_2024_um13j0l3zk2ITGaiED1DFA",
      "name": "us-gaap:AllowanceForDoubtfulAccountsReceivableCurrent",
      "unitRef": "Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "fix-20240930x10q.htm",
      "first": true,
      "unique": true
     }
    },
    "R4": {
     "role": "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfOperations",
     "longName": "995200200 - Statement - CONSOLIDATED STATEMENTS OF OPERATIONS",
     "shortName": "CONSOLIDATED STATEMENTS OF OPERATIONS",
     "isDefault": "false",
     "groupType": "statement",
     "subGroupType": "",
     "menuCat": "Statements",
     "order": "4",
     "firstAnchor": {
      "contextRef": "Duration_7_1_2024_To_9_30_2024_XquWrHsdeEmkK9F8qXf6qA",
      "name": "us-gaap:Revenues",
      "unitRef": "Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "p",
       "td",
       "tr",
       "table",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "fix-20240930x10q.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "Duration_7_1_2024_To_9_30_2024_XquWrHsdeEmkK9F8qXf6qA",
      "name": "us-gaap:CostOfRevenue",
      "unitRef": "Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "p",
       "td",
       "tr",
       "table",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "fix-20240930x10q.htm",
      "unique": true
     }
    },
    "R5": {
     "role": "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfStockholdersEquity",
     "longName": "995200300 - Statement - CONSOLIDATED STATEMENTS OF STOCKHOLDERS' EQUITY",
     "shortName": "CONSOLIDATED STATEMENTS OF STOCKHOLDERS' EQUITY",
     "isDefault": "false",
     "groupType": "statement",
     "subGroupType": "",
     "menuCat": "Statements",
     "order": "5",
     "firstAnchor": {
      "contextRef": "As_Of_12_31_2022_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember_jd1AYHA2ckyDgIPkOhtN4g",
      "name": "us-gaap:StockholdersEquity",
      "unitRef": "Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "p",
       "td",
       "tr",
       "table",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "fix-20240930x10q.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "Duration_1_1_2023_To_3_31_2023_us-gaap_StatementEquityComponentsAxis_us-gaap_RetainedEarningsMember_Aw1vox8rnUCTCSpKHgL90Q",
      "name": "us-gaap:ProfitLoss",
      "unitRef": "Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "p",
       "td",
       "tr",
       "table",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "fix-20240930x10q.htm",
      "unique": true
     }
    },
    "R6": {
     "role": "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfStockholdersEquityParenthetical",
     "longName": "995200305 - Statement - CONSOLIDATED STATEMENTS OF STOCKHOLDERS' EQUITY (Parenthetical)",
     "shortName": "CONSOLIDATED STATEMENTS OF STOCKHOLDERS' EQUITY (Parenthetical)",
     "isDefault": "false",
     "groupType": "statement",
     "subGroupType": "parenthetical",
     "menuCat": "Statements",
     "order": "6",
     "firstAnchor": {
      "contextRef": "Duration_7_1_2024_To_9_30_2024_XquWrHsdeEmkK9F8qXf6qA",
      "name": "us-gaap:CommonStockDividendsPerShareDeclared",
      "unitRef": "Unit_Divide_USD_shares_0ZfRDiWNfk6kp61F6IdjQA",
      "xsiNil": "false",
      "lang": null,
      "decimals": "2",
      "ancestors": [
       "p",
       "td",
       "tr",
       "table",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "fix-20240930x10q.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "Duration_7_1_2024_To_9_30_2024_XquWrHsdeEmkK9F8qXf6qA",
      "name": "us-gaap:CommonStockDividendsPerShareDeclared",
      "unitRef": "Unit_Divide_USD_shares_0ZfRDiWNfk6kp61F6IdjQA",
      "xsiNil": "false",
      "lang": null,
      "decimals": "2",
      "ancestors": [
       "p",
       "td",
       "tr",
       "table",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "fix-20240930x10q.htm",
      "first": true,
      "unique": true
     }
    },
    "R7": {
     "role": "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfCashFlows",
     "longName": "995200400 - Statement - CONSOLIDATED STATEMENTS OF CASH FLOWS",
     "shortName": "CONSOLIDATED STATEMENTS OF CASH FLOWS",
     "isDefault": "false",
     "groupType": "statement",
     "subGroupType": "",
     "menuCat": "Statements",
     "order": "7",
     "firstAnchor": {
      "contextRef": "Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ",
      "name": "us-gaap:ProfitLoss",
      "unitRef": "Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "p",
       "td",
       "tr",
       "table",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "fix-20240930x10q.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ",
      "name": "us-gaap:AmortizationOfIntangibleAssets",
      "unitRef": "Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "p",
       "td",
       "tr",
       "table",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "fix-20240930x10q.htm",
      "unique": true
     }
    },
    "R8": {
     "role": "http://www.comfortsystemsusa.com/role/DisclosureBusinessAndOrganization",
     "longName": "995210101 - Disclosure - Business and Organization",
     "shortName": "Business and Organization",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "8",
     "firstAnchor": {
      "contextRef": "Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ",
      "name": "us-gaap:NatureOfOperations",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "fix-20240930x10q.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ",
      "name": "us-gaap:NatureOfOperations",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "fix-20240930x10q.htm",
      "first": true,
      "unique": true
     }
    },
    "R9": {
     "role": "http://www.comfortsystemsusa.com/role/DisclosureSummaryOfSignificantAccountingPoliciesAndEstimates",
     "longName": "995210201 - Disclosure - Summary of Significant Accounting Policies and Estimates",
     "shortName": "Summary of Significant Accounting Policies and Estimates",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "9",
     "firstAnchor": {
      "contextRef": "Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ",
      "name": "us-gaap:BasisOfPresentationAndSignificantAccountingPoliciesTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "fix-20240930x10q.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ",
      "name": "us-gaap:BasisOfPresentationAndSignificantAccountingPoliciesTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "fix-20240930x10q.htm",
      "first": true,
      "unique": true
     }
    },
    "R10": {
     "role": "http://www.comfortsystemsusa.com/role/DisclosureRevenueFromContractsWithCustomers",
     "longName": "995210301 - Disclosure - Revenue from Contracts with Customers",
     "shortName": "Revenue from Contracts with Customers",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "10",
     "firstAnchor": {
      "contextRef": "Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ",
      "name": "us-gaap:RevenueFromContractWithCustomerTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "fix-20240930x10q.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ",
      "name": "us-gaap:RevenueFromContractWithCustomerTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "fix-20240930x10q.htm",
      "first": true,
      "unique": true
     }
    },
    "R11": {
     "role": "http://www.comfortsystemsusa.com/role/DisclosureFairValueMeasurements",
     "longName": "995210401 - Disclosure - Fair Value Measurements",
     "shortName": "Fair Value Measurements",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "11",
     "firstAnchor": {
      "contextRef": "Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ",
      "name": "us-gaap:FairValueDisclosuresTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "fix-20240930x10q.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ",
      "name": "us-gaap:FairValueDisclosuresTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "fix-20240930x10q.htm",
      "first": true,
      "unique": true
     }
    },
    "R12": {
     "role": "http://www.comfortsystemsusa.com/role/DisclosureAcquisitions",
     "longName": "995210501 - Disclosure - Acquisitions",
     "shortName": "Acquisitions",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "12",
     "firstAnchor": {
      "contextRef": "Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ",
      "name": "us-gaap:BusinessCombinationDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "fix-20240930x10q.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ",
      "name": "us-gaap:BusinessCombinationDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "fix-20240930x10q.htm",
      "first": true,
      "unique": true
     }
    },
    "R13": {
     "role": "http://www.comfortsystemsusa.com/role/DisclosureGoodwillAndIdentifiableIntangibleAssetsNet",
     "longName": "995210601 - Disclosure - Goodwill and Identifiable Intangible Assets, Net",
     "shortName": "Goodwill and Identifiable Intangible Assets, Net",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "13",
     "firstAnchor": {
      "contextRef": "Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ",
      "name": "us-gaap:GoodwillAndIntangibleAssetsDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "fix-20240930x10q.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ",
      "name": "us-gaap:GoodwillAndIntangibleAssetsDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "fix-20240930x10q.htm",
      "first": true,
      "unique": true
     }
    },
    "R14": {
     "role": "http://www.comfortsystemsusa.com/role/DisclosureDebtObligations",
     "longName": "995210701 - Disclosure - Debt Obligations",
     "shortName": "Debt Obligations",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "14",
     "firstAnchor": {
      "contextRef": "Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ",
      "name": "us-gaap:DebtDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "fix-20240930x10q.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ",
      "name": "us-gaap:DebtDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "fix-20240930x10q.htm",
      "first": true,
      "unique": true
     }
    },
    "R15": {
     "role": "http://www.comfortsystemsusa.com/role/DisclosureLeases",
     "longName": "995210801 - Disclosure - Leases",
     "shortName": "Leases",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "15",
     "firstAnchor": {
      "contextRef": "Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ",
      "name": "us-gaap:LesseeOperatingLeasesTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "fix-20240930x10q.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ",
      "name": "us-gaap:LesseeOperatingLeasesTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "fix-20240930x10q.htm",
      "first": true,
      "unique": true
     }
    },
    "R16": {
     "role": "http://www.comfortsystemsusa.com/role/DisclosureCommitmentsAndContingencies",
     "longName": "995210901 - Disclosure - Commitments and Contingencies",
     "shortName": "Commitments and Contingencies",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "16",
     "firstAnchor": {
      "contextRef": "Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ",
      "name": "us-gaap:CommitmentsAndContingenciesDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "fix-20240930x10q.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ",
      "name": "us-gaap:CommitmentsAndContingenciesDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "fix-20240930x10q.htm",
      "first": true,
      "unique": true
     }
    },
    "R17": {
     "role": "http://www.comfortsystemsusa.com/role/DisclosureStockholdersEquity",
     "longName": "995211001 - Disclosure - Stockholders' Equity",
     "shortName": "Stockholders' Equity",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "17",
     "firstAnchor": {
      "contextRef": "Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ",
      "name": "us-gaap:StockholdersEquityNoteDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "fix-20240930x10q.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ",
      "name": "us-gaap:StockholdersEquityNoteDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "fix-20240930x10q.htm",
      "first": true,
      "unique": true
     }
    },
    "R18": {
     "role": "http://www.comfortsystemsusa.com/role/DisclosureSegmentInformation",
     "longName": "995211101 - Disclosure - Segment Information",
     "shortName": "Segment Information",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "18",
     "firstAnchor": {
      "contextRef": "Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ",
      "name": "us-gaap:SegmentReportingDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "fix-20240930x10q.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ",
      "name": "us-gaap:SegmentReportingDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "fix-20240930x10q.htm",
      "first": true,
      "unique": true
     }
    },
    "R19": {
     "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": "19",
     "firstAnchor": {
      "contextRef": "Duration_7_1_2024_To_9_30_2024_XquWrHsdeEmkK9F8qXf6qA",
      "name": "us-gaap:NetIncomeLoss",
      "unitRef": "Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "p",
       "td",
       "tr",
       "table",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "fix-20240930x10q.htm",
      "first": true
     },
     "uniqueAnchor": null
    },
    "R20": {
     "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": "20",
     "firstAnchor": {
      "contextRef": "Duration_7_1_2024_To_9_30_2024_XquWrHsdeEmkK9F8qXf6qA",
      "name": "ecd:Rule10b51ArrAdoptedFlag",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "ecd:NonRule10b51ArrAdoptedFlag",
       "p",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "fix-20240930x10q.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "Duration_7_1_2024_To_9_30_2024_XquWrHsdeEmkK9F8qXf6qA",
      "name": "ecd:Rule10b51ArrAdoptedFlag",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "ecd:NonRule10b51ArrAdoptedFlag",
       "p",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "fix-20240930x10q.htm",
      "first": true,
      "unique": true
     }
    },
    "R21": {
     "role": "http://www.comfortsystemsusa.com/role/DisclosureSummaryOfSignificantAccountingPoliciesAndEstimatesPolicies",
     "longName": "99920202 - Disclosure - Summary of Significant Accounting Policies and Estimates (Policies)",
     "shortName": "Summary of Significant Accounting Policies and Estimates (Policies)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "policies",
     "menuCat": "Policies",
     "order": "21",
     "firstAnchor": {
      "contextRef": "Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ",
      "name": "us-gaap:BasisOfAccountingPolicyPolicyTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "us-gaap:BasisOfPresentationAndSignificantAccountingPoliciesTextBlock",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "fix-20240930x10q.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ",
      "name": "us-gaap:BasisOfAccountingPolicyPolicyTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "us-gaap:BasisOfPresentationAndSignificantAccountingPoliciesTextBlock",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "fix-20240930x10q.htm",
      "first": true,
      "unique": true
     }
    },
    "R22": {
     "role": "http://www.comfortsystemsusa.com/role/DisclosureRevenueFromContractsWithCustomersTables",
     "longName": "99930303 - Disclosure - Revenue from Contracts with Customers (Tables)",
     "shortName": "Revenue from Contracts with Customers (Tables)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "tables",
     "menuCat": "Tables",
     "order": "22",
     "firstAnchor": {
      "contextRef": "Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ",
      "name": "us-gaap:DisaggregationOfRevenueTableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "p",
       "ix:continuation",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "fix-20240930x10q.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ",
      "name": "us-gaap:DisaggregationOfRevenueTableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "p",
       "ix:continuation",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "fix-20240930x10q.htm",
      "first": true,
      "unique": true
     }
    },
    "R23": {
     "role": "http://www.comfortsystemsusa.com/role/DisclosureFairValueMeasurementsTables",
     "longName": "99930403 - Disclosure - Fair Value Measurements (Tables)",
     "shortName": "Fair Value Measurements (Tables)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "tables",
     "menuCat": "Tables",
     "order": "23",
     "firstAnchor": {
      "contextRef": "Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ",
      "name": "us-gaap:ScheduleOfFairValueAssetsAndLiabilitiesMeasuredOnRecurringBasisTableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "ix:continuation",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "fix-20240930x10q.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ",
      "name": "us-gaap:ScheduleOfFairValueAssetsAndLiabilitiesMeasuredOnRecurringBasisTableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "ix:continuation",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "fix-20240930x10q.htm",
      "first": true,
      "unique": true
     }
    },
    "R24": {
     "role": "http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsTables",
     "longName": "99930503 - Disclosure - Acquisitions (Tables)",
     "shortName": "Acquisitions (Tables)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "tables",
     "menuCat": "Tables",
     "order": "24",
     "firstAnchor": {
      "contextRef": "Duration_1_1_2024_To_9_30_2024_us-gaap_BusinessAcquisitionAxis_fix_SummitIndustrialConstructionLlcMember_CxZRbwSqy0yVRiIvUOAx4A",
      "name": "us-gaap:ScheduleOfBusinessAcquisitionsByAcquisitionTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "ix:continuation",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "fix-20240930x10q.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "Duration_1_1_2024_To_9_30_2024_us-gaap_BusinessAcquisitionAxis_fix_SummitIndustrialConstructionLlcMember_CxZRbwSqy0yVRiIvUOAx4A",
      "name": "us-gaap:ScheduleOfBusinessAcquisitionsByAcquisitionTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "ix:continuation",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "fix-20240930x10q.htm",
      "first": true,
      "unique": true
     }
    },
    "R25": {
     "role": "http://www.comfortsystemsusa.com/role/DisclosureGoodwillAndIdentifiableIntangibleAssetsNetTables",
     "longName": "99930603 - Disclosure - Goodwill and Identifiable Intangible Assets, Net (Tables)",
     "shortName": "Goodwill and Identifiable Intangible Assets, Net (Tables)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "tables",
     "menuCat": "Tables",
     "order": "25",
     "firstAnchor": {
      "contextRef": "Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ",
      "name": "us-gaap:ScheduleOfGoodwillTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "us-gaap:GoodwillAndIntangibleAssetsDisclosureTextBlock",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "fix-20240930x10q.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ",
      "name": "us-gaap:ScheduleOfGoodwillTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "us-gaap:GoodwillAndIntangibleAssetsDisclosureTextBlock",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "fix-20240930x10q.htm",
      "first": true,
      "unique": true
     }
    },
    "R26": {
     "role": "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsTables",
     "longName": "99930703 - Disclosure - Debt Obligations (Tables)",
     "shortName": "Debt Obligations (Tables)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "tables",
     "menuCat": "Tables",
     "order": "26",
     "firstAnchor": {
      "contextRef": "Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ",
      "name": "us-gaap:ScheduleOfDebtTableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "us-gaap:DebtDisclosureTextBlock",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "fix-20240930x10q.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ",
      "name": "us-gaap:ScheduleOfDebtTableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "us-gaap:DebtDisclosureTextBlock",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "fix-20240930x10q.htm",
      "first": true,
      "unique": true
     }
    },
    "R27": {
     "role": "http://www.comfortsystemsusa.com/role/DisclosureLeasesTables",
     "longName": "99930803 - Disclosure - Leases (Tables)",
     "shortName": "Leases (Tables)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "tables",
     "menuCat": "Tables",
     "order": "27",
     "firstAnchor": {
      "contextRef": "Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ",
      "name": "fix:ScheduleOfLeaseAssetsAndLiabilitiesTableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "ix:continuation",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "fix-20240930x10q.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ",
      "name": "fix:ScheduleOfLeaseAssetsAndLiabilitiesTableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "ix:continuation",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "fix-20240930x10q.htm",
      "first": true,
      "unique": true
     }
    },
    "R28": {
     "role": "http://www.comfortsystemsusa.com/role/DisclosureStockholdersEquityTables",
     "longName": "99931003 - Disclosure - Stockholders' Equity (Tables)",
     "shortName": "Stockholders' Equity (Tables)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "tables",
     "menuCat": "Tables",
     "order": "28",
     "firstAnchor": {
      "contextRef": "Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ",
      "name": "us-gaap:ScheduleOfWeightedAverageNumberOfSharesTableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "us-gaap:StockholdersEquityNoteDisclosureTextBlock",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "fix-20240930x10q.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ",
      "name": "us-gaap:ScheduleOfWeightedAverageNumberOfSharesTableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "us-gaap:StockholdersEquityNoteDisclosureTextBlock",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "fix-20240930x10q.htm",
      "first": true,
      "unique": true
     }
    },
    "R29": {
     "role": "http://www.comfortsystemsusa.com/role/DisclosureSegmentInformationTables",
     "longName": "99931103 - Disclosure - Segment Information (Tables)",
     "shortName": "Segment Information (Tables)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "tables",
     "menuCat": "Tables",
     "order": "29",
     "firstAnchor": {
      "contextRef": "Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ",
      "name": "us-gaap:ScheduleOfSegmentReportingInformationBySegmentTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "p",
       "us-gaap:SegmentReportingDisclosureTextBlock",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "fix-20240930x10q.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ",
      "name": "us-gaap:ScheduleOfSegmentReportingInformationBySegmentTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "p",
       "us-gaap:SegmentReportingDisclosureTextBlock",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "fix-20240930x10q.htm",
      "first": true,
      "unique": true
     }
    },
    "R30": {
     "role": "http://www.comfortsystemsusa.com/role/DisclosureSummaryOfSignificantAccountingPoliciesAndEstimatesIncomeTaxesDetails",
     "longName": "99940201 - Disclosure - Summary of Significant Accounting Policies and Estimates - Income Taxes (Details)",
     "shortName": "Summary of Significant Accounting Policies and Estimates - Income Taxes (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "30",
     "firstAnchor": {
      "contextRef": "Duration_9_1_2023_To_9_30_2023_C6BTPqBxtkOfHGcvUcDV1g",
      "name": "us-gaap:IncreaseDecreaseInIncomeTaxesReceivable",
      "unitRef": "Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-5",
      "ancestors": [
       "p",
       "us-gaap:IncomeTaxPolicyTextBlock",
       "ix:continuation",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "fix-20240930x10q.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "Duration_9_1_2023_To_9_30_2023_C6BTPqBxtkOfHGcvUcDV1g",
      "name": "us-gaap:IncreaseDecreaseInIncomeTaxesReceivable",
      "unitRef": "Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-5",
      "ancestors": [
       "p",
       "us-gaap:IncomeTaxPolicyTextBlock",
       "ix:continuation",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "fix-20240930x10q.htm",
      "first": true,
      "unique": true
     }
    },
    "R31": {
     "role": "http://www.comfortsystemsusa.com/role/DisclosureSummaryOfSignificantAccountingPoliciesAndEstimatesInvestmentsDetails",
     "longName": "99940202 - Disclosure - Summary of Significant Accounting Policies and Estimates - Investments (Details)",
     "shortName": "Summary of Significant Accounting Policies and Estimates - Investments (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "31",
     "firstAnchor": {
      "contextRef": "As_Of_9_30_2024_um13j0l3zk2ITGaiED1DFA",
      "name": "us-gaap:EquitySecuritiesWithoutReadilyDeterminableFairValueAmount",
      "unitRef": "Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-5",
      "ancestors": [
       "p",
       "us-gaap:EquitySecuritiesWithoutReadilyDeterminableFairValuePolicyTextBlock",
       "ix:continuation",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "fix-20240930x10q.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "As_Of_9_30_2024_um13j0l3zk2ITGaiED1DFA",
      "name": "us-gaap:EquitySecuritiesWithoutReadilyDeterminableFairValueAmount",
      "unitRef": "Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-5",
      "ancestors": [
       "p",
       "us-gaap:EquitySecuritiesWithoutReadilyDeterminableFairValuePolicyTextBlock",
       "ix:continuation",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "fix-20240930x10q.htm",
      "first": true,
      "unique": true
     }
    },
    "R32": {
     "role": "http://www.comfortsystemsusa.com/role/DisclosureRevenueFromContractsWithCustomersNarrativesDetails",
     "longName": "99940301 - Disclosure - Revenue from Contracts with Customers - Narratives (Details)",
     "shortName": "Revenue from Contracts with Customers - Narratives (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "32",
     "firstAnchor": {
      "contextRef": "Duration_7_1_2024_To_9_30_2024_XquWrHsdeEmkK9F8qXf6qA",
      "name": "fix:ContractWithCustomerPerformanceObligationSatisfiedInPreviousPeriodPercentage",
      "unitRef": "Unit_Standard_pure_0GIr2wv4rk-T38a8Lz0A5w",
      "xsiNil": "false",
      "lang": null,
      "decimals": "3",
      "ancestors": [
       "p",
       "ix:continuation",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "fix-20240930x10q.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "Duration_7_1_2024_To_9_30_2024_XquWrHsdeEmkK9F8qXf6qA",
      "name": "fix:ContractWithCustomerPerformanceObligationSatisfiedInPreviousPeriodPercentage",
      "unitRef": "Unit_Standard_pure_0GIr2wv4rk-T38a8Lz0A5w",
      "xsiNil": "false",
      "lang": null,
      "decimals": "3",
      "ancestors": [
       "p",
       "ix:continuation",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "fix-20240930x10q.htm",
      "first": true,
      "unique": true
     }
    },
    "R33": {
     "role": "http://www.comfortsystemsusa.com/role/DisclosureRevenueFromContractsWithCustomersDisaggregationOfRevenueDetails",
     "longName": "99940302 - Disclosure - Revenue from Contracts with Customers - Disaggregation of Revenue (Details)",
     "shortName": "Revenue from Contracts with Customers - Disaggregation of Revenue (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "33",
     "firstAnchor": {
      "contextRef": "Duration_7_1_2024_To_9_30_2024_XquWrHsdeEmkK9F8qXf6qA",
      "name": "us-gaap:Revenues",
      "unitRef": "Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "p",
       "td",
       "tr",
       "table",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "fix-20240930x10q.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "Duration_7_1_2024_To_9_30_2024_XquWrHsdeEmkK9F8qXf6qA",
      "name": "fix:PercentageOfRevenueFromContractWithCustomer",
      "unitRef": "Unit_Standard_pure_0GIr2wv4rk-T38a8Lz0A5w",
      "xsiNil": "false",
      "lang": null,
      "decimals": "3",
      "ancestors": [
       "p",
       "td",
       "tr",
       "table",
       "ix:continuation",
       "ix:continuation",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "fix-20240930x10q.htm",
      "unique": true
     }
    },
    "R34": {
     "role": "http://www.comfortsystemsusa.com/role/DisclosureRevenueFromContractsWithCustomersContractAssetsAndLiabilitiesDetails",
     "longName": "99940303 - Disclosure - Revenue from Contracts with Customers - Contract Assets and Liabilities (Details)",
     "shortName": "Revenue from Contracts with Customers - Contract Assets and Liabilities (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "34",
     "firstAnchor": {
      "contextRef": "As_Of_9_30_2024_um13j0l3zk2ITGaiED1DFA",
      "name": "us-gaap:ContractWithCustomerAssetNet",
      "unitRef": "Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ContractWithCustomerAssetAndLiabilityTableTextBlock",
       "ix:continuation",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "fix-20240930x10q.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "As_Of_9_30_2024_um13j0l3zk2ITGaiED1DFA",
      "name": "us-gaap:ContractWithCustomerAssetNet",
      "unitRef": "Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ContractWithCustomerAssetAndLiabilityTableTextBlock",
       "ix:continuation",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "fix-20240930x10q.htm",
      "first": true,
      "unique": true
     }
    },
    "R35": {
     "role": "http://www.comfortsystemsusa.com/role/DisclosureRevenueFromContractsWithCustomersRemainingPerformanceObligationsDetails",
     "longName": "99940304 - Disclosure - Revenue from Contracts with Customers - Remaining Performance Obligations (Details)",
     "shortName": "Revenue from Contracts with Customers - Remaining Performance Obligations (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "35",
     "firstAnchor": {
      "contextRef": "Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ",
      "name": "fix:RenewableServiceMaintenanceAgreementsTerm",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "p",
       "ix:continuation",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "fix-20240930x10q.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ",
      "name": "fix:RenewableServiceMaintenanceAgreementsTerm",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "p",
       "ix:continuation",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "fix-20240930x10q.htm",
      "first": true,
      "unique": true
     }
    },
    "R36": {
     "role": "http://www.comfortsystemsusa.com/role/DisclosureFairValueMeasurementsDetails",
     "longName": "99940401 - Disclosure - Fair Value Measurements (Details)",
     "shortName": "Fair Value Measurements (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "36",
     "firstAnchor": {
      "contextRef": "As_Of_12_31_2023_X7eqeHRTF0mRLJW7InVDdA",
      "name": "fix:LifeInsuranceContractsNumberOfEmployeesCovered",
      "unitRef": "Unit_Standard_employee_4_T_xVXJeUGRyiTsD-I_ag",
      "xsiNil": "false",
      "lang": null,
      "decimals": "INF",
      "ancestors": [
       "p",
       "ix:continuation",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "fix-20240930x10q.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "As_Of_12_31_2023_X7eqeHRTF0mRLJW7InVDdA",
      "name": "fix:LifeInsuranceContractsNumberOfEmployeesCovered",
      "unitRef": "Unit_Standard_employee_4_T_xVXJeUGRyiTsD-I_ag",
      "xsiNil": "false",
      "lang": null,
      "decimals": "INF",
      "ancestors": [
       "p",
       "ix:continuation",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "fix-20240930x10q.htm",
      "first": true,
      "unique": true
     }
    },
    "R37": {
     "role": "http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsDetails",
     "longName": "99940501 - Disclosure - Acquisitions (Details)",
     "shortName": "Acquisitions (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "37",
     "firstAnchor": {
      "contextRef": "Duration_7_1_2024_To_9_30_2024_XquWrHsdeEmkK9F8qXf6qA",
      "name": "us-gaap:Revenues",
      "unitRef": "Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "p",
       "td",
       "tr",
       "table",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "fix-20240930x10q.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "Duration_2_1_2024_To_2_1_2024_us-gaap_BusinessAcquisitionAxis_fix_SummitIndustrialConstructionLlcMember_S5n0ZNTvS0KLqs4fzBJX1A",
      "name": "us-gaap:PaymentsToAcquireBusinessesGross",
      "unitRef": "Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "p",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:ScheduleOfBusinessAcquisitionsByAcquisitionTextBlock",
       "ix:continuation",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "fix-20240930x10q.htm",
      "unique": true
     }
    },
    "R38": {
     "role": "http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsAcquiredIntangibleAssetsDetails",
     "longName": "99940502 - Disclosure - Acquisitions - Acquired Intangible Assets (Details)",
     "shortName": "Acquisitions - Acquired Intangible Assets (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "38",
     "firstAnchor": {
      "contextRef": "As_Of_2_1_2024_us-gaap_BusinessAcquisitionAxis_fix_SummitIndustrialConstructionLlcMember_4nZLiHoQek-94UQ4yBtSSQ",
      "name": "us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles",
      "unitRef": "Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "p",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:ScheduleOfFiniteLivedIntangibleAssetsAcquiredAsPartOfBusinessCombinationTextBlock",
       "ix:continuation",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "fix-20240930x10q.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "Duration_2_1_2024_To_2_1_2024_srt_RangeAxis_srt_MinimumMember_us-gaap_BusinessAcquisitionAxis_fix_SummitIndustrialConstructionLlcMember_us-gaap_MeasurementInputTypeAxis_us-gaap_MeasurementInputInceptionDiscountRateMember_jsSEzNLlEE-Ex4s5gpzSkA",
      "name": "fix:CashFlowDiscountRate",
      "unitRef": "Unit_Standard_pure_0GIr2wv4rk-T38a8Lz0A5w",
      "xsiNil": "false",
      "lang": null,
      "decimals": "3",
      "ancestors": [
       "p",
       "ix:continuation",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "fix-20240930x10q.htm",
      "unique": true
     }
    },
    "R39": {
     "role": "http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsOtherAcquisitionsDetails",
     "longName": "99940503 - Disclosure - Acquisitions - Other Acquisitions (Details)",
     "shortName": "Acquisitions - Other Acquisitions (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "39",
     "firstAnchor": {
      "contextRef": "Duration_10_2_2023_To_10_2_2023_us-gaap_BusinessAcquisitionAxis_fix_DeccoIncMember_Dx8j_lCNK0GxxJ_7YlmX8g",
      "name": "us-gaap:BusinessCombinationConsiderationTransferred1",
      "unitRef": "Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-5",
      "ancestors": [
       "p",
       "ix:continuation",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "fix-20240930x10q.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "Duration_10_2_2023_To_10_2_2023_us-gaap_BusinessAcquisitionAxis_fix_DeccoIncMember_Dx8j_lCNK0GxxJ_7YlmX8g",
      "name": "us-gaap:BusinessCombinationConsiderationTransferred1",
      "unitRef": "Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-5",
      "ancestors": [
       "p",
       "ix:continuation",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "fix-20240930x10q.htm",
      "first": true,
      "unique": true
     }
    },
    "R40": {
     "role": "http://www.comfortsystemsusa.com/role/DisclosureGoodwillAndIdentifiableIntangibleAssetsNetChangesInCarryingAmountOfGoodwillDetails",
     "longName": "99940601 - Disclosure - Goodwill and Identifiable Intangible Assets, Net - Changes in Carrying Amount of Goodwill (Details)",
     "shortName": "Goodwill and Identifiable Intangible Assets, Net - Changes in Carrying Amount of Goodwill (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "40",
     "firstAnchor": {
      "contextRef": "As_Of_12_31_2023_X7eqeHRTF0mRLJW7InVDdA",
      "name": "us-gaap:Goodwill",
      "unitRef": "Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "fix-20240930x10q.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ",
      "name": "us-gaap:GoodwillAcquiredDuringPeriod",
      "unitRef": "Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfGoodwillTextBlock",
       "us-gaap:GoodwillAndIntangibleAssetsDisclosureTextBlock",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "fix-20240930x10q.htm",
      "unique": true
     }
    },
    "R41": {
     "role": "http://www.comfortsystemsusa.com/role/DisclosureGoodwillAndIdentifiableIntangibleAssetsNetIdentifiableIntangibleAssetsNetDetails",
     "longName": "99940602 - Disclosure - Goodwill and Identifiable Intangible Assets, Net - Identifiable Intangible Assets, Net (Details)",
     "shortName": "Goodwill and Identifiable Intangible Assets, Net - Identifiable Intangible Assets, Net (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "41",
     "firstAnchor": {
      "contextRef": "As_Of_9_30_2024_um13j0l3zk2ITGaiED1DFA",
      "name": "us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseRemainderOfFiscalYear",
      "unitRef": "Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock",
       "us-gaap:GoodwillAndIntangibleAssetsDisclosureTextBlock",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "fix-20240930x10q.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "As_Of_9_30_2024_um13j0l3zk2ITGaiED1DFA",
      "name": "us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseRemainderOfFiscalYear",
      "unitRef": "Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock",
       "us-gaap:GoodwillAndIntangibleAssetsDisclosureTextBlock",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "fix-20240930x10q.htm",
      "first": true,
      "unique": true
     }
    },
    "R42": {
     "role": "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsDetails",
     "longName": "99940701 - Disclosure - Debt Obligations (Details)",
     "shortName": "Debt Obligations (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "42",
     "firstAnchor": {
      "contextRef": "As_Of_9_30_2024_um13j0l3zk2ITGaiED1DFA",
      "name": "fix:OtherDebtLongTermAndShortTermCombinedAmount",
      "unitRef": "Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfDebtTableTextBlock",
       "us-gaap:DebtDisclosureTextBlock",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "fix-20240930x10q.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "As_Of_9_30_2024_um13j0l3zk2ITGaiED1DFA",
      "name": "fix:OtherDebtLongTermAndShortTermCombinedAmount",
      "unitRef": "Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfDebtTableTextBlock",
       "us-gaap:DebtDisclosureTextBlock",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "fix-20240930x10q.htm",
      "first": true,
      "unique": true
     }
    },
    "R43": {
     "role": "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsOtherDetails",
     "longName": "99940702 - Disclosure - Debt Obligations - Other (Details)",
     "shortName": "Debt Obligations - Other (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "43",
     "firstAnchor": {
      "contextRef": "As_Of_9_30_2024_us-gaap_DebtInstrumentAxis_fix_SubordinateDebtAndPromissoryNoteMember_XSQD6UqffkiEduCjJs-FPQ",
      "name": "fix:CumulativeNumberOfCompaniesAcquiredOutstandingNotesToFormerOwners",
      "unitRef": "Unit_Standard_item_PbUC2ubErUqwW8N_vj70-g",
      "xsiNil": "false",
      "lang": null,
      "decimals": "INF",
      "ancestors": [
       "p",
       "ix:continuation",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "fix-20240930x10q.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "As_Of_9_30_2024_us-gaap_DebtInstrumentAxis_fix_SubordinateDebtAndPromissoryNoteMember_XSQD6UqffkiEduCjJs-FPQ",
      "name": "fix:CumulativeNumberOfCompaniesAcquiredOutstandingNotesToFormerOwners",
      "unitRef": "Unit_Standard_item_PbUC2ubErUqwW8N_vj70-g",
      "xsiNil": "false",
      "lang": null,
      "decimals": "INF",
      "ancestors": [
       "p",
       "ix:continuation",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "fix-20240930x10q.htm",
      "first": true,
      "unique": true
     }
    },
    "R44": {
     "role": "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsNotesToFormerOwnersDetails",
     "longName": "99940703 - Disclosure - Debt Obligations - Notes to Former Owners (Details)",
     "shortName": "Debt Obligations - Notes to Former Owners (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "44",
     "firstAnchor": {
      "contextRef": "As_Of_9_30_2024_us-gaap_DebtInstrumentAxis_fix_SubordinateDebtAndPromissoryNoteMember_XSQD6UqffkiEduCjJs-FPQ",
      "name": "us-gaap:NotesAndLoansPayable",
      "unitRef": "Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfDebtTableTextBlock",
       "us-gaap:DebtDisclosureTextBlock",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "fix-20240930x10q.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "As_Of_9_30_2024_fix_DebtMaturityDateAxis_fix_MaturityYearTwoMember_us-gaap_DebtInstrumentAxis_fix_SubordinateDebtAndPromissoryNoteMember_skGkSkrrj0m22UCbee6nbg",
      "name": "us-gaap:NotesAndLoansPayable",
      "unitRef": "Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "p",
       "td",
       "tr",
       "table",
       "ix:continuation",
       "ix:continuation",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "fix-20240930x10q.htm",
      "unique": true
     }
    },
    "R45": {
     "role": "http://www.comfortsystemsusa.com/role/DisclosureLeasesDetails",
     "longName": "99940801 - Disclosure - Leases (Details)",
     "shortName": "Leases (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "45",
     "firstAnchor": {
      "contextRef": "Duration_7_1_2024_To_9_30_2024_XquWrHsdeEmkK9F8qXf6qA",
      "name": "fix:VariableLeaseAndShortTermLeaseCost",
      "unitRef": "Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-5",
      "ancestors": [
       "p",
       "us-gaap:LesseeLeasesPolicyTextBlock",
       "us-gaap:LesseeOperatingLeasesTextBlock",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "fix-20240930x10q.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "Duration_7_1_2024_To_9_30_2024_XquWrHsdeEmkK9F8qXf6qA",
      "name": "fix:VariableLeaseAndShortTermLeaseCost",
      "unitRef": "Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-5",
      "ancestors": [
       "p",
       "us-gaap:LesseeLeasesPolicyTextBlock",
       "us-gaap:LesseeOperatingLeasesTextBlock",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "fix-20240930x10q.htm",
      "first": true,
      "unique": true
     }
    },
    "R46": {
     "role": "http://www.comfortsystemsusa.com/role/DisclosureLeasesSummaryOfOperatingLeaseAssetsAndLiabilitiesDetails",
     "longName": "99940802 - Disclosure - Leases - Summary of Operating Lease Assets and Liabilities (Details)",
     "shortName": "Leases - Summary of Operating Lease Assets and Liabilities (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "46",
     "firstAnchor": {
      "contextRef": "As_Of_9_30_2024_um13j0l3zk2ITGaiED1DFA",
      "name": "us-gaap:OperatingLeaseRightOfUseAsset",
      "unitRef": "Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "fix-20240930x10q.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "As_Of_9_30_2024_um13j0l3zk2ITGaiED1DFA",
      "name": "us-gaap:OperatingLeaseLiabilityCurrent",
      "unitRef": "Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "p",
       "td",
       "tr",
       "table",
       "fix:ScheduleOfLeaseAssetsAndLiabilitiesTableTextBlock",
       "ix:continuation",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "fix-20240930x10q.htm",
      "unique": true
     }
    },
    "R47": {
     "role": "http://www.comfortsystemsusa.com/role/DisclosureLeasesMaturitiesOfLeaseLiabilitiesDetails",
     "longName": "99940803 - Disclosure - Leases - Maturities of Lease Liabilities (Details)",
     "shortName": "Leases - Maturities of Lease Liabilities (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "47",
     "firstAnchor": {
      "contextRef": "As_Of_9_30_2024_um13j0l3zk2ITGaiED1DFA",
      "name": "us-gaap:LesseeOperatingLeaseLiabilityPaymentsRemainderOfFiscalYear",
      "unitRef": "Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:LesseeOperatingLeaseLiabilityMaturityTableTextBlock",
       "ix:continuation",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "fix-20240930x10q.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "Duration_7_1_2024_To_9_30_2024_XquWrHsdeEmkK9F8qXf6qA",
      "name": "us-gaap:OperatingLeasePayments",
      "unitRef": "Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "p",
       "td",
       "tr",
       "table",
       "fix:ScheduleOfSupplementalInformationRelatedToLeasesTableTextBlock",
       "ix:continuation",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "fix-20240930x10q.htm",
      "unique": true
     }
    },
    "R48": {
     "role": "http://www.comfortsystemsusa.com/role/DisclosureCommitmentsAndContingenciesDetails",
     "longName": "99940901 - Disclosure - Commitments and Contingencies (Details)",
     "shortName": "Commitments and Contingencies (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "48",
     "firstAnchor": {
      "contextRef": "Duration_1_1_2023_To_3_31_2023_us-gaap_LossContingenciesByNatureOfContingencyAxis_fix_DisputeWithCustomerMember_bDYxGk5BM02TJTfRtOn_AA",
      "name": "us-gaap:GainLossRelatedToLitigationSettlement",
      "unitRef": "Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-5",
      "ancestors": [
       "p",
       "us-gaap:CommitmentsAndContingenciesDisclosureTextBlock",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "fix-20240930x10q.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "Duration_1_1_2023_To_3_31_2023_us-gaap_LossContingenciesByNatureOfContingencyAxis_fix_DisputeWithCustomerMember_bDYxGk5BM02TJTfRtOn_AA",
      "name": "us-gaap:GainLossRelatedToLitigationSettlement",
      "unitRef": "Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-5",
      "ancestors": [
       "p",
       "us-gaap:CommitmentsAndContingenciesDisclosureTextBlock",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "fix-20240930x10q.htm",
      "first": true,
      "unique": true
     }
    },
    "R49": {
     "role": "http://www.comfortsystemsusa.com/role/DisclosureStockholdersEquityNumberOfSharesDetails",
     "longName": "99941001 - Disclosure - Stockholders' Equity - Number of Shares (Details)",
     "shortName": "Stockholders' Equity - Number of Shares (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "49",
     "firstAnchor": {
      "contextRef": "As_Of_9_30_2024_um13j0l3zk2ITGaiED1DFA",
      "name": "us-gaap:CommonStockSharesOutstanding",
      "unitRef": "Unit_Standard_shares_YK1c03HsOkOiDLLsAeYHoA",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfWeightedAverageNumberOfSharesTableTextBlock",
       "us-gaap:StockholdersEquityNoteDisclosureTextBlock",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "fix-20240930x10q.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "Duration_7_1_2024_To_9_30_2024_XquWrHsdeEmkK9F8qXf6qA",
      "name": "fix:EffectOfUsingWeightedAverageCommonSharesOutstanding",
      "unitRef": "Unit_Standard_shares_YK1c03HsOkOiDLLsAeYHoA",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfWeightedAverageNumberOfSharesTableTextBlock",
       "us-gaap:StockholdersEquityNoteDisclosureTextBlock",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "fix-20240930x10q.htm",
      "unique": true
     }
    },
    "R50": {
     "role": "http://www.comfortsystemsusa.com/role/DisclosureStockholdersEquityIncentiveAndOtherDetails",
     "longName": "99941002 - Disclosure - Stockholders' Equity - Incentive and Other (Details)",
     "shortName": "Stockholders' Equity - Incentive and Other (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "50",
     "firstAnchor": {
      "contextRef": "Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ",
      "name": "us-gaap:PaymentsForRepurchaseOfCommonStock",
      "unitRef": "Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "p",
       "td",
       "tr",
       "table",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "fix-20240930x10q.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "Duration_7_1_2024_To_9_30_2024_XquWrHsdeEmkK9F8qXf6qA",
      "name": "us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount",
      "unitRef": "Unit_Standard_shares_YK1c03HsOkOiDLLsAeYHoA",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-5",
      "ancestors": [
       "us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount",
       "us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount",
       "us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount",
       "p",
       "us-gaap:StockholdersEquityNoteDisclosureTextBlock",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "fix-20240930x10q.htm",
      "unique": true
     }
    },
    "R51": {
     "role": "http://www.comfortsystemsusa.com/role/DisclosureSegmentInformationDetails",
     "longName": "99941101 - Disclosure - Segment Information (Details)",
     "shortName": "Segment Information (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "51",
     "firstAnchor": {
      "contextRef": "Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ",
      "name": "us-gaap:NumberOfReportableSegments",
      "unitRef": "Unit_Standard_segment_3_qs4qRnNUKHCam52rVs-g",
      "xsiNil": "false",
      "lang": null,
      "decimals": "INF",
      "ancestors": [
       "p",
       "us-gaap:SegmentReportingDisclosureTextBlock",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "fix-20240930x10q.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ",
      "name": "us-gaap:NumberOfReportableSegments",
      "unitRef": "Unit_Standard_segment_3_qs4qRnNUKHCam52rVs-g",
      "xsiNil": "false",
      "lang": null,
      "decimals": "INF",
      "ancestors": [
       "p",
       "us-gaap:SegmentReportingDisclosureTextBlock",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "fix-20240930x10q.htm",
      "first": true,
      "unique": true
     }
    }
   },
   "tag": {
    "us-gaap_AccountingPoliciesAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "AccountingPoliciesAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "Summary of Significant Accounting Policies and Estimates"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_AccountsPayableCurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "AccountsPayableCurrent",
     "crdr": "credit",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "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": [
      "r45",
      "r701"
     ]
    },
    "us-gaap_AcquiredFiniteLivedIntangibleAssetsLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "AcquiredFiniteLivedIntangibleAssetsLineItems",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsAcquiredIntangibleAssetsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Acquired Finite-Lived Intangible Assets [Line Items]",
        "terseLabel": "Acquisitions",
        "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": [
      "r279",
      "r280",
      "r281",
      "r283",
      "r647"
     ]
    },
    "us-gaap_AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife": {
     "xbrltype": "durationItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsAcquiredIntangibleAssetsDetails",
      "http://www.comfortsystemsusa.com/role/DisclosureGoodwillAndIdentifiableIntangibleAssetsNetIdentifiableIntangibleAssetsNetDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Acquired Finite-Lived Intangible Assets, Weighted Average Useful Life",
        "terseLabel": "Estimated Useful Life",
        "documentation": "Weighted average amortization period of finite-lived intangible assets acquired either individually or as part of a group of assets, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days."
       }
      }
     },
     "auth_ref": [
      "r281",
      "r647"
     ]
    },
    "ecd_Additional402vDisclosureTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "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": [
      "r757"
     ]
    },
    "us-gaap_AdditionalPaidInCapitalCommonStock": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "AdditionalPaidInCapitalCommonStock",
     "crdr": "credit",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Additional Paid in Capital, Common Stock",
        "terseLabel": "Additional paid-in capital",
        "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": [
      "r58"
     ]
    },
    "us-gaap_AdditionalPaidInCapitalMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "AdditionalPaidInCapitalMember",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfStockholdersEquity"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Additional Paid-in Capital [Member]",
        "terseLabel": "Additional Paid-In Capital",
        "documentation": "Excess of issue price over par or stated value of the entity's capital stock and amounts received from other transactions involving the entity's stock or stockholders."
       }
      }
     },
     "auth_ref": [
      "r583",
      "r822",
      "r823",
      "r824",
      "r825",
      "r905",
      "r961"
     ]
    },
    "ecd_AdjToCompAmt": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "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": [
      "r770"
     ]
    },
    "ecd_AdjToCompAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "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": [
      "r770"
     ]
    },
    "ecd_AdjToNonPeoNeoCompFnTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "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": [
      "r770"
     ]
    },
    "ecd_AdjToPeoCompFnTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "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": [
      "r770"
     ]
    },
    "us-gaap_AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation",
     "crdr": "debit",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfStockholdersEquity"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Share-Based Payment Arrangement, Decrease for Tax Withholding Obligation",
        "negatedLabel": "Shares received in lieu of tax withholding on vested stock",
        "documentation": "Amount of decrease to equity for grantee's tax withholding obligation for award under share-based payment arrangement."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue",
     "crdr": "credit",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfStockholdersEquity"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "APIC, Share-Based Payment Arrangement, Increase for Cost Recognition",
        "terseLabel": "Stock-based compensation",
        "documentation": "Amount of increase to additional paid-in capital (APIC) for recognition of cost for award under share-based payment arrangement."
       }
      }
     },
     "auth_ref": [
      "r32",
      "r33",
      "r397"
     ]
    },
    "us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Adjustments to Reconcile Net Income (Loss) to Cash Provided by (Used in) Operating Activities [Abstract]",
        "terseLabel": "Adjustments to reconcile net income to net cash provided by operating activities-"
       }
      }
     },
     "auth_ref": []
    },
    "ecd_AggtChngPnsnValInSummryCompstnTblForAplblYrMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "AggtChngPnsnValInSummryCompstnTblForAplblYrMember",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Aggregate Change in Present Value of Accumulated Benefit for All Pension Plans Reported in Summary Compensation Table [Member]",
        "terseLabel": "Aggregate Change in Present Value of Accumulated Benefit for All Pension Plans Reported in Summary Compensation Table"
       }
      }
     },
     "auth_ref": [
      "r803"
     ]
    },
    "ecd_AggtErrCompAmt": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "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": [
      "r729",
      "r739",
      "r749",
      "r781"
     ]
    },
    "ecd_AggtErrCompNotYetDeterminedTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "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": [
      "r732",
      "r742",
      "r752",
      "r784"
     ]
    },
    "ecd_AggtPnsnAdjsSvcCstMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "AggtPnsnAdjsSvcCstMember",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Aggregate Pension Adjustments Service Cost [Member]",
        "terseLabel": "Aggregate Pension Adjustments Service Cost"
       }
      }
     },
     "auth_ref": [
      "r804"
     ]
    },
    "ecd_AllAdjToCompMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "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": [
      "r770"
     ]
    },
    "ecd_AllExecutiveCategoriesMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "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": [
      "r777"
     ]
    },
    "ecd_AllIndividualsMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "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": [
      "r733",
      "r743",
      "r753",
      "r777",
      "r785",
      "r789",
      "r797"
     ]
    },
    "ecd_AllTradingArrangementsMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "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": [
      "r795"
     ]
    },
    "us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "AllowanceForDoubtfulAccountsReceivableCurrent",
     "crdr": "credit",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedBalanceSheetsParenthetical"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Accounts Receivable, Allowance for Credit Loss, Current",
        "verboseLabel": "Billed accounts receivable, allowance for credit losses (in dollars)",
        "documentation": "Amount of allowance for credit loss on accounts receivable, classified as current."
       }
      }
     },
     "auth_ref": [
      "r148",
      "r239",
      "r248"
     ]
    },
    "us-gaap_AllowanceForDoubtfulOtherReceivablesCurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "AllowanceForDoubtfulOtherReceivablesCurrent",
     "crdr": "credit",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedBalanceSheetsParenthetical"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Allowance for Credit Loss, Receivable, Other, Current",
        "terseLabel": "Other receivables, allowance for credit losses (in dollars)",
        "documentation": "Amount of allowance for credit loss on receivable, classified as other and current."
       }
      }
     },
     "auth_ref": [
      "r147"
     ]
    },
    "dei_AmendmentFlag": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "AmendmentFlag",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DocumentDocumentAndEntityInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Amendment Flag",
        "documentation": "Boolean flag that is true when the XBRL content amends previously-filed or accepted submission."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_AmortizationOfFinancingCosts": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "AmortizationOfFinancingCosts",
     "crdr": "debit",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Amortization of Debt Issuance Costs",
        "terseLabel": "Amortization of debt financing costs",
        "documentation": "Amount of amortization expense attributable to debt issuance costs."
       }
      }
     },
     "auth_ref": [
      "r69",
      "r345",
      "r818",
      "r915"
     ]
    },
    "us-gaap_AmortizationOfIntangibleAssets": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "AmortizationOfIntangibleAssets",
     "crdr": "debit",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Amortization of Intangible Assets",
        "terseLabel": "Amortization of identifiable intangible assets",
        "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": [
      "r7",
      "r278",
      "r285",
      "r666"
     ]
    },
    "us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureStockholdersEquityIncentiveAndOtherDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Antidilutive Securities Excluded from Computation of Earnings Per Share, Amount",
        "terseLabel": "Anti-dilutive securities excluded from computation of earnings per share amount (in shares)",
        "documentation": "Securities (including those issuable pursuant to contingent stock agreements) that could potentially dilute basic earnings per share (EPS) or earnings per unit (EPU) in the future that were not included in the computation of diluted EPS or EPU because to do so would increase EPS or EPU amounts or decrease loss per share or unit amounts for the period presented."
       }
      }
     },
     "auth_ref": [
      "r200"
     ]
    },
    "us-gaap_Assets": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "Assets",
     "crdr": "debit",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Assets",
        "totalLabel": "Total assets",
        "documentation": "Amount of asset recognized for present right to economic benefit."
       }
      }
     },
     "auth_ref": [
      "r89",
      "r99",
      "r144",
      "r166",
      "r202",
      "r208",
      "r226",
      "r230",
      "r242",
      "r312",
      "r313",
      "r315",
      "r316",
      "r317",
      "r318",
      "r319",
      "r321",
      "r322",
      "r454",
      "r458",
      "r494",
      "r536",
      "r607",
      "r659",
      "r660",
      "r701",
      "r720",
      "r872",
      "r873",
      "r920"
     ]
    },
    "us-gaap_AssetsAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "AssetsAbstract",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Assets [Abstract]",
        "terseLabel": "ASSETS"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_AssetsAndLiabilitiesLesseeAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "AssetsAndLiabilitiesLesseeAbstract",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureLeasesSummaryOfOperatingLeaseAssetsAndLiabilitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Assets and Liabilities, Lessee [Abstract]",
        "terseLabel": "Summary of lease asset and liabilities"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_AssetsCurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "AssetsCurrent",
     "crdr": "debit",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Assets, Current",
        "totalLabel": "Total current assets",
        "documentation": "Amount of asset recognized for present right to economic benefit, classified as current."
       }
      }
     },
     "auth_ref": [
      "r139",
      "r150",
      "r166",
      "r242",
      "r312",
      "r313",
      "r315",
      "r316",
      "r317",
      "r318",
      "r319",
      "r321",
      "r322",
      "r454",
      "r458",
      "r494",
      "r701",
      "r872",
      "r873",
      "r920"
     ]
    },
    "us-gaap_AssetsCurrentAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "AssetsCurrentAbstract",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Assets, Current [Abstract]",
        "terseLabel": "CURRENT ASSETS:"
       }
      }
     },
     "auth_ref": []
    },
    "ecd_AwardExrcPrice": {
     "xbrltype": "perShareItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "AwardExrcPrice",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Award Exercise Price",
        "terseLabel": "Exercise Price"
       }
      }
     },
     "auth_ref": [
      "r792"
     ]
    },
    "ecd_AwardGrantDateFairValue": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "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": [
      "r793"
     ]
    },
    "ecd_AwardTmgDiscLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "AwardTmgDiscLineItems",
     "lang": {
      "en-us": {
       "role": {
        "label": "Award Timing Disclosures [Line Items]",
        "terseLabel": "Award Timing Disclosures"
       }
      }
     },
     "auth_ref": [
      "r788"
     ]
    },
    "ecd_AwardTmgHowMnpiCnsdrdTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "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": [
      "r788"
     ]
    },
    "ecd_AwardTmgMethodTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "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": [
      "r788"
     ]
    },
    "ecd_AwardTmgMnpiCnsdrdFlag": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "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": [
      "r788"
     ]
    },
    "ecd_AwardTmgMnpiDiscTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "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": [
      "r788"
     ]
    },
    "ecd_AwardTmgPredtrmndFlag": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "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": [
      "r788"
     ]
    },
    "us-gaap_AwardTypeAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "AwardTypeAxis",
     "presentation": [
      "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": [
      "r400",
      "r401",
      "r402",
      "r403",
      "r404",
      "r405",
      "r406",
      "r407",
      "r408",
      "r409",
      "r410",
      "r411",
      "r412",
      "r413",
      "r414",
      "r415",
      "r416",
      "r417",
      "r418",
      "r419",
      "r420",
      "r421",
      "r422",
      "r423",
      "r424",
      "r425"
     ]
    },
    "ecd_AwardUndrlygSecuritiesAmt": {
     "xbrltype": "decimalItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "AwardUndrlygSecuritiesAmt",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Award Underlying Securities Amount",
        "terseLabel": "Underlying Securities"
       }
      }
     },
     "auth_ref": [
      "r791"
     ]
    },
    "ecd_AwardsCloseToMnpiDiscIndName": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "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": [
      "r790"
     ]
    },
    "ecd_AwardsCloseToMnpiDiscTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "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": [
      "r789"
     ]
    },
    "ecd_AwardsCloseToMnpiDiscTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "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": [
      "r789"
     ]
    },
    "us-gaap_BaseRateMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "BaseRateMember",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsOtherDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Base Rate [Member]",
        "terseLabel": "Base Rate",
        "documentation": "Minimum rate investor will accept."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_BasisOfAccountingPolicyPolicyTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "BasisOfAccountingPolicyPolicyTextBlock",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureSummaryOfSignificantAccountingPoliciesAndEstimatesPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Basis of Accounting, Policy [Policy Text Block]",
        "terseLabel": "Basis of Presentation",
        "documentation": "Disclosure of accounting policy for basis of accounting, or basis of presentation, used to prepare the financial statements (for example, US Generally Accepted Accounting Principles, Other Comprehensive Basis of Accounting, IFRS)."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_BasisOfPresentationAndSignificantAccountingPoliciesTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "BasisOfPresentationAndSignificantAccountingPoliciesTextBlock",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureSummaryOfSignificantAccountingPoliciesAndEstimates"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Basis of Presentation and Significant Accounting Policies [Text Block]",
        "terseLabel": "Summary of Significant Accounting Policies and Estimates",
        "documentation": "The entire disclosure for the basis of presentation and significant accounting policies concepts. Basis of presentation describes the underlying basis used to prepare the financial statements (for example, US Generally Accepted Accounting Principles, Other Comprehensive Basis of Accounting, IFRS). Accounting policies describe all significant accounting policies of the reporting entity."
       }
      }
     },
     "auth_ref": [
      "r79"
     ]
    },
    "us-gaap_BilledContractReceivables": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "BilledContractReceivables",
     "crdr": "debit",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Billed Contracts Receivable",
        "verboseLabel": "Billed accounts receivable, less allowance for credit losses of $15,280 and $11,926, respectively",
        "documentation": "Amounts due for billed services rendered or to be rendered, actions taken or to be taken, or a promise to refrain from taking certain actions in accordance with the terms of a legally binding agreement between the Company and, at a minimum, one other party. An example would be amounts billed to customers under contracts or programs but not paid as of the balance sheet date."
       }
      }
     },
     "auth_ref": [
      "r527"
     ]
    },
    "us-gaap_BusinessAcquisitionAcquireeDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "BusinessAcquisitionAcquireeDomain",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsAcquiredIntangibleAssetsDetails",
      "http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsDetails",
      "http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsOtherAcquisitionsDetails",
      "http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "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": [
      "r279",
      "r280",
      "r281",
      "r282",
      "r283",
      "r445",
      "r685",
      "r686"
     ]
    },
    "us-gaap_BusinessAcquisitionAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "BusinessAcquisitionAxis",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsAcquiredIntangibleAssetsDetails",
      "http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsDetails",
      "http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsOtherAcquisitionsDetails",
      "http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Business Acquisition [Axis]",
        "documentation": "Information by business combination or series of individually immaterial business combinations."
       }
      }
     },
     "auth_ref": [
      "r34",
      "r35",
      "r279",
      "r280",
      "r281",
      "r282",
      "r283",
      "r445",
      "r685",
      "r686"
     ]
    },
    "us-gaap_BusinessAcquisitionLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "BusinessAcquisitionLineItems",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsDetails",
      "http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsOtherAcquisitionsDetails",
      "http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Business Acquisition [Line Items]",
        "terseLabel": "Acquisitions",
        "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": [
      "r445"
     ]
    },
    "us-gaap_BusinessCombinationConsiderationTransferred1": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "BusinessCombinationConsiderationTransferred1",
     "crdr": "credit",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsOtherAcquisitionsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Business Combination, Consideration Transferred",
        "terseLabel": "Fair value of consideration transferred",
        "documentation": "Amount of consideration transferred, consisting of acquisition-date fair value of assets transferred by the acquirer, liabilities incurred by the acquirer, and equity interest issued by the acquirer."
       }
      }
     },
     "auth_ref": [
      "r0",
      "r1",
      "r11"
     ]
    },
    "us-gaap_BusinessCombinationConsiderationTransferredAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "BusinessCombinationConsiderationTransferredAbstract",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Business Combination, Consideration Transferred [Abstract]",
        "terseLabel": "Consideration transferred:"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_BusinessCombinationConsiderationTransferredLiabilitiesIncurred": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "BusinessCombinationConsiderationTransferredLiabilitiesIncurred",
     "crdr": "credit",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsDetails",
      "http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsOtherAcquisitionsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Business Combination, Consideration Transferred, Liabilities Incurred",
        "verboseLabel": "Notes issued to former owners",
        "documentation": "Amount of liabilities incurred by the acquirer as part of consideration transferred in a business combination."
       }
      }
     },
     "auth_ref": [
      "r0",
      "r1",
      "r41",
      "r448"
     ]
    },
    "fix_BusinessCombinationConsiderationTransferredWorkingCapitalAdjustment": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.comfortsystemsusa.com/20240930",
     "localname": "BusinessCombinationConsiderationTransferredWorkingCapitalAdjustment",
     "crdr": "credit",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of working capital settlement under business combination.",
        "label": "Business Combination Consideration Transferred Working Capital Adjustment",
        "terseLabel": "Working capital adjustment"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1",
     "crdr": "debit",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfCashFlows",
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfOperations"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Business Combination, Contingent Consideration Arrangements, Change in Amount of Contingent Consideration, Liability",
        "negatedLabel": "Changes in the fair value of contingent earn-out obligations",
        "terseLabel": "Changes in the fair value of contingent earn-out obligations",
        "documentation": "Amount of increase (decrease) in the value of a contingent consideration liability, including, but not limited to, differences arising upon settlement."
       }
      }
     },
     "auth_ref": [
      "r450",
      "r817"
     ]
    },
    "us-gaap_BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueHigh": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueHigh",
     "crdr": "credit",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsAcquiredIntangibleAssetsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Business Combination, Contingent Consideration Arrangements, Range of Outcomes, Value, High",
        "terseLabel": "Estimated milestone payment, upper range",
        "documentation": "For contingent consideration arrangements recognized in connection with a business combination, this element represents an estimate of the high-end of the potential range (undiscounted) of the consideration which may be paid."
       }
      }
     },
     "auth_ref": [
      "r43"
     ]
    },
    "us-gaap_BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueLow": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueLow",
     "crdr": "credit",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsAcquiredIntangibleAssetsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Business Combination, Contingent Consideration Arrangements, Range of Outcomes, Value, Low",
        "terseLabel": "Estimated milestone payment, lower range",
        "documentation": "For contingent consideration arrangements and indemnification assets recognized in connection with a business combination, this element represents an estimate of the low-end of the potential range (undiscounted) of the consideration which may be paid."
       }
      }
     },
     "auth_ref": [
      "r43"
     ]
    },
    "fix_BusinessCombinationContingentConsiderationChangeInContingentConsiderationLiabilityMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.comfortsystemsusa.com/20240930",
     "localname": "BusinessCombinationContingentConsiderationChangeInContingentConsiderationLiabilityMember",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureCommitmentsAndContingenciesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Primary financial statement caption encompassing change in the value of a contingent consideration liability.",
        "label": "Business Combination, Contingent Consideration, Change in Contingent Consideration, Liability",
        "terseLabel": "Change in Fair Value of Contingent Earn-Out Obligations"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_BusinessCombinationContingentConsiderationLiability": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "BusinessCombinationContingentConsiderationLiability",
     "crdr": "credit",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Business Combination, Contingent Consideration, Liability",
        "terseLabel": "Estimated fair value of contingent earn-out payments",
        "documentation": "Amount of liability recognized arising from contingent consideration in a business combination."
       }
      }
     },
     "auth_ref": [
      "r42",
      "r88",
      "r449",
      "r473",
      "r474",
      "r475"
     ]
    },
    "us-gaap_BusinessCombinationDisclosureTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "BusinessCombinationDisclosureTextBlock",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureAcquisitions"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Business Combination Disclosure [Text Block]",
        "terseLabel": "Acquisitions",
        "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": [
      "r87",
      "r446"
     ]
    },
    "fix_BusinessCombinationNumberOfEarningsMilestones": {
     "xbrltype": "integerItemType",
     "nsuri": "http://www.comfortsystemsusa.com/20240930",
     "localname": "BusinessCombinationNumberOfEarningsMilestones",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsAcquiredIntangibleAssetsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The number of earnings milestone.",
        "label": "Business Combination Number of Earnings Milestones",
        "terseLabel": "Number of earnings milestones"
       }
      }
     },
     "auth_ref": []
    },
    "fix_BusinessCombinationRecognizedIdentifiableAssetAcquiredAndLiabilityAssumedOperatingLeaseObligation": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.comfortsystemsusa.com/20240930",
     "localname": "BusinessCombinationRecognizedIdentifiableAssetAcquiredAndLiabilityAssumedOperatingLeaseObligation",
     "crdr": "credit",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of operating lease obligation assumed in business combination.",
        "label": "Business Combination, Recognized Identifiable Asset Acquired and Liability Assumed, Operating Lease Obligation",
        "negatedLabel": "Long-term operating lease liabilities"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents",
     "crdr": "debit",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Cash and Equivalents",
        "terseLabel": "Cash and cash 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": [
      "r37"
     ]
    },
    "fix_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsCostsInExcessOfBillings": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.comfortsystemsusa.com/20240930",
     "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsCostsInExcessOfBillings",
     "crdr": "debit",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of costs in excess of billings.",
        "label": "Business Combination Recognized Identifiable Assets Acquired And Liabilities Assumed Current Assets Costs in Excess of Billings",
        "terseLabel": "Cost and estimated earnings in excess of billings"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsPrepaidExpenseAndOtherAssets": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsPrepaidExpenseAndOtherAssets",
     "crdr": "debit",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Current Assets, Prepaid Expense and Other Assets",
        "terseLabel": "Prepaid expenses and other",
        "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, acquired at the acquisition date."
       }
      }
     },
     "auth_ref": [
      "r37"
     ]
    },
    "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables",
     "crdr": "debit",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Current Assets, Receivables",
        "terseLabel": "Billed and unbilled accounts receivable",
        "documentation": "Amount due from customers or clients for goods or services, including trade receivables, that have been delivered or sold in the normal course of business, and amounts due from others, including related parties expected to be converted to cash, sold or exchanged within one year or the normal operating cycle, if longer, acquired at the acquisition date."
       }
      }
     },
     "auth_ref": [
      "r37"
     ]
    },
    "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable",
     "crdr": "credit",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Current Liabilities, Accounts Payable",
        "negatedLabel": "Accounts payable",
        "documentation": "Amount of liabilities incurred for goods and services received that are used in an entity's business and related party payables, assumed at the acquisition date."
       }
      }
     },
     "auth_ref": [
      "r37"
     ]
    },
    "fix_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesBillingsInExcessOfCostsAndEstimatedEarnings": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.comfortsystemsusa.com/20240930",
     "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesBillingsInExcessOfCostsAndEstimatedEarnings",
     "crdr": "credit",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Business Combination Recognized Identifiable Assets Acquired And Liabilities Assumed Current Liabilities Billings In Excess of Costs And Estimated Earnings",
        "label": "Business Combination Recognized Identifiable Assets Acquired And Liabilities Assumed Current Liabilities Billings In Excess Of Costs And Estimated Earnings",
        "negatedLabel": "Billings in excess of costs and estimated earnings"
       }
      }
     },
     "auth_ref": []
    },
    "fix_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesOperatingLeaseLiabilities": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.comfortsystemsusa.com/20240930",
     "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesOperatingLeaseLiabilities",
     "crdr": "credit",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of current operating lease liabilities due within one year or within the normal operating cycle, if longer, assumed at the acquisition date.",
        "label": "Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Current Liabilities, Operating Lease Liabilities",
        "negatedLabel": "Current operating lease liabilities"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesOther": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesOther",
     "crdr": "credit",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Current Liabilities, Other",
        "negatedLabel": "Accrued expenses and other current liabilities",
        "documentation": "Amount of other liabilities due within one year or within the normal operating cycle, if longer, assumed at the acquisition date."
       }
      }
     },
     "auth_ref": [
      "r37"
     ]
    },
    "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles",
     "crdr": "debit",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsAcquiredIntangibleAssetsDetails",
      "http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Finite-Lived Intangibles",
        "terseLabel": "Identifiable intangible assets",
        "verboseLabel": "Estimated Fair Value",
        "documentation": "The amount of identifiable intangible assets recognized as of the acquisition date."
       }
      }
     },
     "auth_ref": [
      "r36",
      "r37"
     ]
    },
    "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedInventory": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedInventory",
     "crdr": "debit",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Inventory",
        "terseLabel": "Inventory",
        "documentation": "The amount of inventory recognized as of the acquisition date."
       }
      }
     },
     "auth_ref": [
      "r36",
      "r37"
     ]
    },
    "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNoncurrentLiabilitiesLongTermDebt": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNoncurrentLiabilitiesLongTermDebt",
     "crdr": "credit",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsDetails",
      "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsDetails",
      "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsOtherDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Noncurrent Liabilities, Long-Term Debt",
        "negatedLabel": "Long-term debt",
        "verboseLabel": "Acquired debt",
        "documentation": "Amount of long-term debt due after one year or the normal operating cycle, if longer, assumed at the acquisition date."
       }
      }
     },
     "auth_ref": [
      "r37"
     ]
    },
    "fix_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseRightOfUseAssets": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.comfortsystemsusa.com/20240930",
     "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseRightOfUseAssets",
     "crdr": "debit",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The amount of right of use assets from operating leases recognized as of the acquisition date.",
        "label": "Business Combination, Recognized Identifiable Assets Acquired And Liabilities Assumed, Operating Lease Right Of Use Assets",
        "terseLabel": "Lease right-of-use asset"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOtherNoncurrentAssets": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOtherNoncurrentAssets",
     "crdr": "debit",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Other Noncurrent Assets",
        "terseLabel": "Other noncurrent assets",
        "documentation": "Amount of other assets expected to be realized or consumed after one year or the normal operating cycle, if longer, acquired at the acquisition date."
       }
      }
     },
     "auth_ref": [
      "r37"
     ]
    },
    "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment",
     "crdr": "debit",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Property, Plant, and Equipment",
        "terseLabel": "Property and equipment",
        "documentation": "The amount of property, plant, and equipment recognized as of the acquisition date."
       }
      }
     },
     "auth_ref": [
      "r36",
      "r37"
     ]
    },
    "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet",
     "crdr": "debit",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Business Combination, Recognized Identifiable Assets Acquired, Goodwill, and Liabilities Assumed, Net",
        "totalLabel": "Total assets acquired and liabilities assumed",
        "verboseLabel": "Consideration transferred",
        "documentation": "Amount recognized for assets, including goodwill, in excess of (less than) the aggregate liabilities assumed."
       }
      }
     },
     "auth_ref": [
      "r37"
     ]
    },
    "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNetAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNetAbstract",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Business Combination, Recognized Identifiable Assets Acquired, Goodwill, and Liabilities Assumed, Net [Abstract]",
        "terseLabel": "Recognized amounts of identifiable assets acquired and liabilities assumed:"
       }
      }
     },
     "auth_ref": []
    },
    "fix_BusinessCombinationTermOfEarningsMilestones": {
     "xbrltype": "durationItemType",
     "nsuri": "http://www.comfortsystemsusa.com/20240930",
     "localname": "BusinessCombinationTermOfEarningsMilestones",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsAcquiredIntangibleAssetsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The term of earnings milestones.",
        "label": "Business Combination Term of Earnings Milestones",
        "terseLabel": "Term of earnings milestones"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_BusinessCombinationsAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "BusinessCombinationsAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "Acquisitions"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_CashAndCashEquivalentsAtCarryingValue": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "CashAndCashEquivalentsAtCarryingValue",
     "crdr": "debit",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Cash and Cash Equivalents, at Carrying Value",
        "terseLabel": "Cash and cash equivalents",
        "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": [
      "r17",
      "r141",
      "r650"
     ]
    },
    "us-gaap_CashAndCashEquivalentsFairValueDisclosure": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "CashAndCashEquivalentsFairValueDisclosure",
     "crdr": "debit",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureFairValueMeasurementsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Cash and Cash Equivalents, Fair Value Disclosure",
        "terseLabel": "Cash and cash equivalents",
        "documentation": "Fair value portion 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."
       }
      }
     },
     "auth_ref": [
      "r906",
      "r907"
     ]
    },
    "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents",
     "crdr": "debit",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Cash, Cash Equivalents, Restricted Cash, and Restricted Cash Equivalents",
        "periodEndLabel": "CASH AND CASH EQUIVALENTS, end of period",
        "periodStartLabel": "CASH AND CASH EQUIVALENTS, beginning of period",
        "documentation": "Amount of cash and cash equivalents, and cash and cash equivalents restricted to withdrawal or usage. Excludes amount for disposal group and discontinued operations. Cash includes, but is not limited to, currency on hand, demand deposits with banks or financial institutions, and other accounts with general characteristics of demand deposits. Cash equivalents include, but are not limited to, short-term, highly liquid investments that are both readily convertible to known amounts of cash and so near their maturity that they present insignificant risk of changes in value because of changes in interest rates."
       }
      }
     },
     "auth_ref": [
      "r17",
      "r76",
      "r163"
     ]
    },
    "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect",
     "crdr": "debit",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Cash, Cash Equivalents, Restricted Cash, and Restricted Cash Equivalents, Period Increase (Decrease), Including Exchange Rate Effect",
        "totalLabel": "NET INCREASE IN CASH AND CASH EQUIVALENTS",
        "documentation": "Amount of increase (decrease) in cash, cash equivalents, and cash and cash equivalents restricted to withdrawal or usage; including effect from exchange rate change. Cash includes, but is not limited to, currency on hand, demand deposits with banks or financial institutions, and other accounts with general characteristics of demand deposits. Cash equivalents include, but are not limited to, short-term, highly liquid investments that are both readily convertible to known amounts of cash and so near their maturity that they present insignificant risk of changes in value because of changes in interest rates."
       }
      }
     },
     "auth_ref": [
      "r2",
      "r76"
     ]
    },
    "fix_CashFlowDiscountRate": {
     "xbrltype": "percentItemType",
     "nsuri": "http://www.comfortsystemsusa.com/20240930",
     "localname": "CashFlowDiscountRate",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsAcquiredIntangibleAssetsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of probable cash flows discount rate.",
        "label": "Cash Flow Discount Rate",
        "terseLabel": "Cash flow discount rate"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_CashSurrenderValueFairValueDisclosure": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "CashSurrenderValueFairValueDisclosure",
     "crdr": "debit",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureFairValueMeasurementsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Cash Surrender Value, Fair Value Disclosure",
        "terseLabel": "Life insurance-cash surrender value",
        "documentation": "Fair value portion of the amount that could be realized under a life insurance contract or contracts owned by the entity, commonly known as corporate-owned life insurance (COLI) or bank-owned life insurance (BOLI)."
       }
      }
     },
     "auth_ref": [
      "r906",
      "r907",
      "r908",
      "r909",
      "r910",
      "r911"
     ]
    },
    "us-gaap_ChangeInContractWithCustomerAssetAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ChangeInContractWithCustomerAssetAbstract",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureRevenueFromContractsWithCustomersContractAssetsAndLiabilitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Change in Contract with Customer, Asset [Abstract]",
        "terseLabel": "Contract Assets"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ChangeInContractWithCustomerLiabilityAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ChangeInContractWithCustomerLiabilityAbstract",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureRevenueFromContractsWithCustomersContractAssetsAndLiabilitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Change in Contract with Customer, Liability [Abstract]",
        "terseLabel": "Contract Liabilities"
       }
      }
     },
     "auth_ref": []
    },
    "fix_ChangeInRightOfUseAssets": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.comfortsystemsusa.com/20240930",
     "localname": "ChangeInRightOfUseAssets",
     "crdr": "debit",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of change in right-of-use assets.",
        "label": "Change in Right of Use Assets",
        "terseLabel": "Change in right-of-use assets"
       }
      }
     },
     "auth_ref": []
    },
    "ecd_ChangedPeerGroupFnTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "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": [
      "r768"
     ]
    },
    "ecd_ChngInFrValAsOfVstngDtOfPrrYrEqtyAwrdsVstdInCvrdYrMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "ChngInFrValAsOfVstngDtOfPrrYrEqtyAwrdsVstdInCvrdYrMember",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Change in Fair Value as of Vesting Date of Prior Year Equity Awards Vested in Covered Year [Member]",
        "terseLabel": "Change in Fair Value as of Vesting Date of Prior Year Equity Awards Vested in Covered Year"
       }
      }
     },
     "auth_ref": [
      "r765"
     ]
    },
    "ecd_ChngInFrValOfOutsdngAndUnvstdEqtyAwrdsGrntdInPrrYrsMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "ChngInFrValOfOutsdngAndUnvstdEqtyAwrdsGrntdInPrrYrsMember",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Year-over-Year Change in Fair Value of Equity Awards Granted in Prior Years That are Outstanding and Unvested [Member]",
        "terseLabel": "Year-over-Year Change in Fair Value of Equity Awards Granted in Prior Years That are Outstanding and Unvested"
       }
      }
     },
     "auth_ref": [
      "r763"
     ]
    },
    "dei_CityAreaCode": {
     "xbrltype": "normalizedStringItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "CityAreaCode",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DocumentDocumentAndEntityInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "City Area Code",
        "documentation": "Area code of city"
       }
      }
     },
     "auth_ref": []
    },
    "ecd_CoSelectedMeasureAmt": {
     "xbrltype": "decimalItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "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": [
      "r769"
     ]
    },
    "ecd_CoSelectedMeasureName": {
     "xbrltype": "normalizedStringItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "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": [
      "r769"
     ]
    },
    "us-gaap_CommitmentsAndContingencies": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "CommitmentsAndContingencies",
     "crdr": "credit",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Commitments and Contingencies.",
        "terseLabel": "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": [
      "r54",
      "r92",
      "r539",
      "r594"
     ]
    },
    "us-gaap_CommitmentsAndContingenciesDisclosureAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "CommitmentsAndContingenciesDisclosureAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "Commitments and Contingencies"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_CommitmentsAndContingenciesDisclosureTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "CommitmentsAndContingenciesDisclosureTextBlock",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureCommitmentsAndContingencies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Commitments and Contingencies Disclosure [Text Block]",
        "terseLabel": "Commitments and Contingencies",
        "documentation": "The entire disclosure for commitments and contingencies."
       }
      }
     },
     "auth_ref": [
      "r81",
      "r302",
      "r303",
      "r644",
      "r859",
      "r864"
     ]
    },
    "us-gaap_CommonStockDividendsPerShareDeclared": {
     "xbrltype": "perShareItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "CommonStockDividendsPerShareDeclared",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfStockholdersEquityParenthetical"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Common Stock, Dividends, Per Share, Declared",
        "verboseLabel": "Dividends (per share)",
        "documentation": "Aggregate dividends declared during the period for each share of common stock outstanding."
       }
      }
     },
     "auth_ref": [
      "r86"
     ]
    },
    "us-gaap_CommonStockMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "CommonStockMember",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfStockholdersEquity"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Common Stock [Member]",
        "terseLabel": "Common Stock",
        "documentation": "Stock that is subordinate to all other stock of the issuer."
       }
      }
     },
     "auth_ref": [
      "r710",
      "r711",
      "r712",
      "r714",
      "r715",
      "r716",
      "r717",
      "r822",
      "r823",
      "r825",
      "r905",
      "r960",
      "r961"
     ]
    },
    "us-gaap_CommonStockParOrStatedValuePerShare": {
     "xbrltype": "perShareItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "CommonStockParOrStatedValuePerShare",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedBalanceSheetsParenthetical"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Common Stock, Par or Stated Value Per Share",
        "terseLabel": "Common stock, par value (in dollars per share)",
        "documentation": "Face amount or stated value per share of common stock."
       }
      }
     },
     "auth_ref": [
      "r57"
     ]
    },
    "us-gaap_CommonStockSharesAuthorized": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "CommonStockSharesAuthorized",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedBalanceSheetsParenthetical"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Common Stock, Shares Authorized",
        "terseLabel": "Common stock, shares authorized",
        "documentation": "The maximum number of common shares permitted to be issued by an entity's charter and bylaws."
       }
      }
     },
     "auth_ref": [
      "r57",
      "r595"
     ]
    },
    "us-gaap_CommonStockSharesIssued": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "CommonStockSharesIssued",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedBalanceSheetsParenthetical",
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfStockholdersEquity"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Common Stock, Shares, Issued",
        "periodEndLabel": "BALANCE (in shares)",
        "periodStartLabel": "BALANCE (in shares)",
        "terseLabel": "Common stock, shares issued",
        "documentation": "Total number of common shares of an entity that have been sold or granted to shareholders (includes common shares that were issued, repurchased and remain in the treasury). These shares represent capital invested by the firm's shareholders and owners, and may be all or only a portion of the number of shares authorized. Shares issued include shares outstanding and shares held in the treasury."
       }
      }
     },
     "auth_ref": [
      "r57"
     ]
    },
    "us-gaap_CommonStockSharesOutstanding": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "CommonStockSharesOutstanding",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureStockholdersEquityNumberOfSharesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Common Stock, Shares, Outstanding",
        "terseLabel": "Common shares outstanding, end of period",
        "documentation": "Number of shares of common stock outstanding. Common stock represent the ownership interest in a corporation."
       }
      }
     },
     "auth_ref": [
      "r12",
      "r57",
      "r595",
      "r613",
      "r961",
      "r962"
     ]
    },
    "us-gaap_CommonStockValue": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "CommonStockValue",
     "crdr": "credit",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Common Stock, Value, Issued",
        "verboseLabel": "Common stock, $.01 par, 102,969,912 shares authorized, 41,123,365 and 41,123,365 shares issued, respectively",
        "documentation": "Aggregate par or stated value of issued nonredeemable common stock (or common stock redeemable solely at the option of the issuer). This item includes treasury stock repurchased by the entity. Note: elements for number of nonredeemable common shares, par value and other disclosure concepts are in another section within stockholders' equity."
       }
      }
     },
     "auth_ref": [
      "r57",
      "r541",
      "r701"
     ]
    },
    "ecd_CompActuallyPaidVsCoSelectedMeasureTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "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": [
      "r774"
     ]
    },
    "ecd_CompActuallyPaidVsNetIncomeTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "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": [
      "r773"
     ]
    },
    "ecd_CompActuallyPaidVsOtherMeasureTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "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": [
      "r775"
     ]
    },
    "ecd_CompActuallyPaidVsTotalShareholderRtnTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "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": [
      "r772"
     ]
    },
    "srt_ConsolidationItemsAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/srt/2024",
     "localname": "ConsolidationItemsAxis",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureSegmentInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Consolidation Items [Axis]",
        "documentation": "Information by components, eliminations, non-segment corporate-level activity and reconciling items used in consolidating a parent entity and its subsidiaries or its operating segments."
       }
      }
     },
     "auth_ref": [
      "r97",
      "r112",
      "r124",
      "r125",
      "r126",
      "r127",
      "r128",
      "r129",
      "r130",
      "r131",
      "r132",
      "r167",
      "r202",
      "r210",
      "r224",
      "r225",
      "r226",
      "r227",
      "r228",
      "r230",
      "r231",
      "r232",
      "r312",
      "r313",
      "r314",
      "r315",
      "r317",
      "r318",
      "r319",
      "r320",
      "r321",
      "r659",
      "r660",
      "r808",
      "r809",
      "r872",
      "r873"
     ]
    },
    "srt_ConsolidationItemsDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/srt/2024",
     "localname": "ConsolidationItemsDomain",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureSegmentInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Consolidation Items [Domain]",
        "documentation": "Components, elimination, non-segment corporate-level activity and reconciling items used in consolidating a parent entity and its subsidiaries or its operating segments."
       }
      }
     },
     "auth_ref": [
      "r97",
      "r112",
      "r124",
      "r125",
      "r126",
      "r127",
      "r128",
      "r129",
      "r130",
      "r131",
      "r132",
      "r167",
      "r202",
      "r210",
      "r224",
      "r225",
      "r226",
      "r227",
      "r228",
      "r230",
      "r231",
      "r232",
      "r312",
      "r313",
      "r314",
      "r315",
      "r317",
      "r318",
      "r319",
      "r320",
      "r321",
      "r659",
      "r660",
      "r808",
      "r809",
      "r872",
      "r873"
     ]
    },
    "fix_ContingentConsiderationObligationsMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.comfortsystemsusa.com/20240930",
     "localname": "ContingentConsiderationObligationsMember",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsAcquiredIntangibleAssetsDetails",
      "http://www.comfortsystemsusa.com/role/DisclosureFairValueMeasurementsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Represents the information pertaining to the contingent consideration obligations that have been provided in a business combination.",
        "label": "Contingent earn-out obligations"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ContractWithCustomerAssetAccumulatedAllowanceForCreditLossCurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ContractWithCustomerAssetAccumulatedAllowanceForCreditLossCurrent",
     "crdr": "credit",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedBalanceSheetsParenthetical"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Contract with Customer, Asset, Allowance for Credit Loss, Current",
        "terseLabel": "Costs and estimated earnings in excess of billings, allowance for credit losses (in dollars)",
        "documentation": "Amount of allowance for credit loss for right to consideration in exchange for good or service transferred to customer when right is conditioned on something other than passage of time, classified as current."
       }
      }
     },
     "auth_ref": [
      "r248",
      "r366"
     ]
    },
    "us-gaap_ContractWithCustomerAssetAndLiabilityTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ContractWithCustomerAssetAndLiabilityTableTextBlock",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureRevenueFromContractsWithCustomersTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Contract with Customer, Contract Asset, Contract Liability, and Receivable [Table Text Block]",
        "terseLabel": "Schedule of contract assets and liabilities",
        "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": [
      "r876"
     ]
    },
    "us-gaap_ContractWithCustomerAssetCreditLossExpense": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ContractWithCustomerAssetCreditLossExpense",
     "crdr": "debit",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureRevenueFromContractsWithCustomersContractAssetsAndLiabilitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Contract with Customer, Asset, Credit Loss Expense (Reversal)",
        "terseLabel": "Impairment losses",
        "documentation": "Amount of expense (reversal of expense) for expected credit loss on right to consideration in exchange for good or service transferred to customer when right is conditioned on something other than passage of time."
       }
      }
     },
     "auth_ref": [
      "r251",
      "r383",
      "r674"
     ]
    },
    "us-gaap_ContractWithCustomerAssetNet": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ContractWithCustomerAssetNet",
     "crdr": "debit",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureRevenueFromContractsWithCustomersContractAssetsAndLiabilitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Contract with Customer, Asset, after Allowance for Credit Loss",
        "terseLabel": "Costs and estimated earnings in excess of billings, less allowance for credit losses",
        "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."
       }
      }
     },
     "auth_ref": [
      "r364",
      "r366",
      "r385"
     ]
    },
    "us-gaap_ContractWithCustomerAssetNetCurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ContractWithCustomerAssetNetCurrent",
     "crdr": "debit",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureRevenueFromContractsWithCustomersContractAssetsAndLiabilitiesDetails",
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Contract with Customer, Asset, after Allowance for Credit Loss, Current",
        "terseLabel": "Costs and estimated earnings in excess of billings, less allowance for credit losses of $200 and $79, respectively",
        "verboseLabel": "Costs and estimated earnings in excess of billings, less allowance for credit losses, current",
        "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": [
      "r364",
      "r366",
      "r385"
     ]
    },
    "us-gaap_ContractWithCustomerLiabilityCurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ContractWithCustomerLiabilityCurrent",
     "crdr": "credit",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureRevenueFromContractsWithCustomersContractAssetsAndLiabilitiesDetails",
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Contract with Customer, Liability, Current",
        "terseLabel": "Billings in excess of costs and estimated earnings and deferred revenue",
        "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": [
      "r364",
      "r365",
      "r385"
     ]
    },
    "us-gaap_ContractWithCustomerLiabilityRevenueRecognized": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ContractWithCustomerLiabilityRevenueRecognized",
     "crdr": "credit",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureRevenueFromContractsWithCustomersContractAssetsAndLiabilitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Contract with Customer, Liability, Revenue Recognized",
        "terseLabel": "Revenue related to our contract liabilities",
        "documentation": "Amount of revenue recognized that was previously included in balance of obligation to transfer good or service to customer for which consideration from customer has been received or is due."
       }
      }
     },
     "auth_ref": [
      "r386"
     ]
    },
    "fix_ContractWithCustomerPerformanceObligationSatisfiedInPreviousPeriodPercentage": {
     "xbrltype": "percentItemType",
     "nsuri": "http://www.comfortsystemsusa.com/20240930",
     "localname": "ContractWithCustomerPerformanceObligationSatisfiedInPreviousPeriodPercentage",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureRevenueFromContractsWithCustomersNarrativesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Percentage of revenue attributable to performance obligation satisfied or partially satisfied in previous reporting periods. Includes, but is not limited to, change in transaction price.",
        "label": "Contract with Customer, Performance Obligation Satisfied in Previous Period, Percentage",
        "terseLabel": "Percentage impact on revenue from performance obligations satisfied in previous period"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_CostOfRevenue": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "CostOfRevenue",
     "crdr": "debit",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfOperations"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Cost of Revenue",
        "terseLabel": "COST OF SERVICES",
        "documentation": "The aggregate cost of goods produced and sold and services rendered during the reporting period."
       }
      }
     },
     "auth_ref": [
      "r65",
      "r166",
      "r242",
      "r312",
      "r313",
      "r315",
      "r316",
      "r317",
      "r318",
      "r319",
      "r321",
      "r322",
      "r494",
      "r659",
      "r872"
     ]
    },
    "dei_CoverAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "CoverAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "Cover [Abstract]",
        "documentation": "Cover page."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_CreditFacilityAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "CreditFacilityAxis",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsOtherDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Credit Facility [Axis]",
        "documentation": "Information by type of credit facility. Credit facilities provide capital to borrowers without the need to structure a loan for each borrowing."
       }
      }
     },
     "auth_ref": [
      "r311",
      "r870"
     ]
    },
    "us-gaap_CreditFacilityDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "CreditFacilityDomain",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsOtherDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "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": [
      "r311",
      "r870",
      "r871"
     ]
    },
    "us-gaap_CreditLossFinancialInstrumentPolicyTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "CreditLossFinancialInstrumentPolicyTextBlock",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureSummaryOfSignificantAccountingPoliciesAndEstimatesPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Credit Loss, Financial Instrument [Policy Text Block]",
        "verboseLabel": "Accounts Receivable and Allowance for Credit Losses",
        "documentation": "Disclosure of accounting policy for credit loss on financial instrument measured at amortized cost basis, net investment in lease, off-balance sheet credit exposure, and available-for-sale debt security. Includes, but is not limited to, methodology used to estimate allowance for credit loss, how writeoff of uncollectible amount is recognized, and determination of past due status and nonaccrual status."
       }
      }
     },
     "auth_ref": [
      "r245",
      "r246",
      "r247",
      "r249",
      "r250",
      "r252",
      "r253",
      "r254",
      "r255",
      "r256",
      "r257",
      "r258",
      "r259",
      "r260",
      "r261",
      "r262",
      "r263",
      "r264"
     ]
    },
    "fix_CumulativeNumberOfCompaniesAcquiredOutstandingNotesToFormerOwners": {
     "xbrltype": "integerItemType",
     "nsuri": "http://www.comfortsystemsusa.com/20240930",
     "localname": "CumulativeNumberOfCompaniesAcquiredOutstandingNotesToFormerOwners",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsOtherDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The cumulative number of companies acquired by the entity whereby there are outstanding notes to former owners.",
        "label": "Cumulative Number Of Companies Acquired Outstanding, Notes To Former Owners",
        "terseLabel": "Cumulative number of companies acquired"
       }
      }
     },
     "auth_ref": []
    },
    "dei_CurrentFiscalYearEndDate": {
     "xbrltype": "gMonthDayItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "CurrentFiscalYearEndDate",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DocumentDocumentAndEntityInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Current Fiscal Year End Date",
        "documentation": "End date of current fiscal year in the format --MM-DD."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_CustomerRelationshipsMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "CustomerRelationshipsMember",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsAcquiredIntangibleAssetsDetails",
      "http://www.comfortsystemsusa.com/role/DisclosureGoodwillAndIdentifiableIntangibleAssetsNetIdentifiableIntangibleAssetsNetDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Customer Relationships [Member]",
        "terseLabel": "Customer Relationships",
        "documentation": "Customer relationship that exists between an entity and its customer, for example, but not limited to, tenant relationships."
       }
      }
     },
     "auth_ref": [
      "r40",
      "r846",
      "r847",
      "r848",
      "r849",
      "r851",
      "r852",
      "r855",
      "r856"
     ]
    },
    "fix_DebtCovenantRatioAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://www.comfortsystemsusa.com/20240930",
     "localname": "DebtCovenantRatioAxis",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsOtherDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Information by different ratios applicable to debt covenants.",
        "label": "Debt Covenant Ratio [Axis]"
       }
      }
     },
     "auth_ref": []
    },
    "fix_DebtCovenantRatioDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.comfortsystemsusa.com/20240930",
     "localname": "DebtCovenantRatioDomain",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsOtherDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Groups of debt covenant ratio ranges.",
        "label": "Debt Covenant Ratio [Domain]"
       }
      }
     },
     "auth_ref": []
    },
    "fix_DebtCovenantRatioRangeFiveMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.comfortsystemsusa.com/20240930",
     "localname": "DebtCovenantRatioRangeFiveMember",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsOtherDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Represents activity related to range five of specified debt covenant.",
        "label": "Debt Covenant Ratio Range Five [Member]",
        "terseLabel": "Consolidated Total Indebtedness to Credit Facility Adjusted EBITDA: 3.00 or Greater"
       }
      }
     },
     "auth_ref": []
    },
    "fix_DebtCovenantRatioRangeFourMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.comfortsystemsusa.com/20240930",
     "localname": "DebtCovenantRatioRangeFourMember",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsOtherDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Represents activity related to range four of specified debt covenant.",
        "label": "Consolidated Total Indebtedness to Credit Facility Adjusted EBITDA: 2.50 to less than 3.00"
       }
      }
     },
     "auth_ref": []
    },
    "fix_DebtCovenantRatioRangeOneMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.comfortsystemsusa.com/20240930",
     "localname": "DebtCovenantRatioRangeOneMember",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsOtherDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Represents activity related to range one of specified debt covenant.",
        "label": "Consolidated Total Indebtedness to Credit Facility Adjusted EBITDA: Less than 1.00"
       }
      }
     },
     "auth_ref": []
    },
    "fix_DebtCovenantRatioRangeThreeMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.comfortsystemsusa.com/20240930",
     "localname": "DebtCovenantRatioRangeThreeMember",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsOtherDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Represents activity related to range three of specified debt covenant.",
        "label": "Consolidated Total Indebtedness to Credit Facility Adjusted EBITDA: 1.75 to less than 2.50"
       }
      }
     },
     "auth_ref": []
    },
    "fix_DebtCovenantRatioRangeTwoMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.comfortsystemsusa.com/20240930",
     "localname": "DebtCovenantRatioRangeTwoMember",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsOtherDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Represents activity related to range two of specified debt covenant.",
        "label": "Consolidated Total Indebtedness to Credit Facility Adjusted EBITDA: 1.00 to less than 1.75"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_DebtDisclosureAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "DebtDisclosureAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "Debt Obligations"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_DebtDisclosureTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "DebtDisclosureTextBlock",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureDebtObligations"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Debt Disclosure [Text Block]",
        "terseLabel": "Debt Obligations",
        "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": [
      "r82",
      "r164",
      "r293",
      "r294",
      "r295",
      "r296",
      "r297",
      "r310",
      "r311",
      "r323",
      "r329",
      "r330",
      "r331",
      "r332",
      "r333",
      "r334",
      "r339",
      "r346",
      "r347",
      "r349",
      "r501"
     ]
    },
    "us-gaap_DebtInstrumentAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "DebtInstrumentAxis",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsDetails",
      "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsNotesToFormerOwnersDetails",
      "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsOtherDetails",
      "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Debt Instrument [Axis]",
        "documentation": "Information by type of debt instrument, including, but not limited to, draws against credit facilities."
       }
      }
     },
     "auth_ref": [
      "r14",
      "r47",
      "r48",
      "r90",
      "r91",
      "r167",
      "r324",
      "r325",
      "r326",
      "r327",
      "r328",
      "r330",
      "r335",
      "r336",
      "r337",
      "r338",
      "r340",
      "r341",
      "r342",
      "r343",
      "r344",
      "r345",
      "r668",
      "r669",
      "r670",
      "r671",
      "r672",
      "r699",
      "r819",
      "r860",
      "r861",
      "r862",
      "r914",
      "r916"
     ]
    },
    "us-gaap_DebtInstrumentBasisSpreadOnVariableRate1": {
     "xbrltype": "percentItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "DebtInstrumentBasisSpreadOnVariableRate1",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsOtherDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Debt Instrument, Basis Spread on Variable Rate",
        "terseLabel": "Additional per annum interest margin (as a percent)",
        "documentation": "Percentage points added to the reference rate to compute the variable rate on the debt instrument."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_DebtInstrumentInterestRateEffectivePercentageAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "DebtInstrumentInterestRateEffectivePercentageAbstract",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsOtherDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Debt Instrument, Interest Rate, Effective Percentage [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_DebtInstrumentInterestRateStatedPercentage": {
     "xbrltype": "percentItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "DebtInstrumentInterestRateStatedPercentage",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsNotesToFormerOwnersDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Debt Instrument, Interest Rate, Stated Percentage",
        "terseLabel": "Stated interest rate (as a percent)",
        "documentation": "Contractual interest rate for funds borrowed, under the debt agreement."
       }
      }
     },
     "auth_ref": [
      "r50",
      "r325"
     ]
    },
    "us-gaap_DebtInstrumentLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "DebtInstrumentLineItems",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsDetails",
      "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsNotesToFormerOwnersDetails",
      "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsOtherDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Debt Instrument [Line Items]",
        "terseLabel": "Debt Obligations",
        "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": [
      "r167",
      "r324",
      "r325",
      "r326",
      "r327",
      "r328",
      "r330",
      "r335",
      "r336",
      "r337",
      "r338",
      "r340",
      "r341",
      "r342",
      "r343",
      "r344",
      "r345",
      "r348",
      "r668",
      "r669",
      "r670",
      "r671",
      "r672",
      "r699",
      "r819",
      "r914",
      "r916"
     ]
    },
    "us-gaap_DebtInstrumentNameDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "DebtInstrumentNameDomain",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsDetails",
      "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsNotesToFormerOwnersDetails",
      "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsOtherDetails",
      "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "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": [
      "r14",
      "r167",
      "r324",
      "r325",
      "r326",
      "r327",
      "r328",
      "r330",
      "r335",
      "r336",
      "r337",
      "r338",
      "r340",
      "r341",
      "r342",
      "r343",
      "r344",
      "r345",
      "r668",
      "r669",
      "r670",
      "r671",
      "r672",
      "r699",
      "r819",
      "r860",
      "r861",
      "r862",
      "r914",
      "r916"
     ]
    },
    "us-gaap_DebtInstrumentTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "DebtInstrumentTable",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsDetails",
      "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsNotesToFormerOwnersDetails",
      "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsOtherDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Schedule of Long-Term Debt Instruments [Table]",
        "documentation": "Disclosure of information about long-term debt instrument or arrangement."
       }
      }
     },
     "auth_ref": [
      "r14",
      "r27",
      "r28",
      "r44",
      "r84",
      "r85",
      "r167",
      "r324",
      "r325",
      "r326",
      "r327",
      "r328",
      "r330",
      "r335",
      "r336",
      "r337",
      "r338",
      "r340",
      "r341",
      "r342",
      "r343",
      "r344",
      "r345",
      "r348",
      "r668",
      "r669",
      "r670",
      "r671",
      "r672",
      "r699",
      "r819",
      "r914",
      "r916"
     ]
    },
    "fix_DebtMaturityDateAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://www.comfortsystemsusa.com/20240930",
     "localname": "DebtMaturityDateAxis",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsNotesToFormerOwnersDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "It represents the information pertaining to debt maturity date.",
        "label": "Debt Maturity Date [Axis]"
       }
      }
     },
     "auth_ref": []
    },
    "fix_DebtMaturityDateDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.comfortsystemsusa.com/20240930",
     "localname": "DebtMaturityDateDomain",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsNotesToFormerOwnersDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "It  represents debt maturity date.",
        "label": "Debt Maturity Date [Domain]"
       }
      }
     },
     "auth_ref": []
    },
    "fix_DeccoIncMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.comfortsystemsusa.com/20240930",
     "localname": "DeccoIncMember",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsOtherAcquisitionsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Represents the information pertaining to DECCO, Inc and each of its related subsidiary[ies].",
        "label": "DECCO, Inc [Member]",
        "terseLabel": "DECCO"
       }
      }
     },
     "auth_ref": []
    },
    "fix_DeferredAcquisitionPayments": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.comfortsystemsusa.com/20240930",
     "localname": "DeferredAcquisitionPayments",
     "crdr": "credit",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Deferred acquisition payments.",
        "label": "Deferred Acquisition Payments",
        "negatedLabel": "Deferred acquisition payments"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_DeferredIncomeTaxAssetsNet": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "DeferredIncomeTaxAssetsNet",
     "crdr": "debit",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Deferred Income Tax Assets, Net",
        "verboseLabel": "DEFERRED TAX ASSETS",
        "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": [
      "r429",
      "r430"
     ]
    },
    "us-gaap_DeferredIncomeTaxExpenseBenefit": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "DeferredIncomeTaxExpenseBenefit",
     "crdr": "debit",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Deferred Income Tax Expense (Benefit)",
        "verboseLabel": "Deferred tax provision (benefit)",
        "documentation": "Amount of deferred income tax expense (benefit) pertaining to income (loss) from continuing operations."
       }
      }
     },
     "auth_ref": [
      "r7",
      "r108",
      "r821"
     ]
    },
    "us-gaap_DeferredIncomeTaxLiabilitiesNet": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "DeferredIncomeTaxLiabilitiesNet",
     "crdr": "credit",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Deferred Income Tax Liabilities, Net",
        "verboseLabel": "DEFERRED TAX LIABILITIES",
        "documentation": "Amount, after deferred tax asset, of deferred tax liability attributable to taxable differences with jurisdictional netting."
       }
      }
     },
     "auth_ref": [
      "r429",
      "r430",
      "r537"
     ]
    },
    "us-gaap_Depreciation": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "Depreciation",
     "crdr": "debit",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Depreciation",
        "terseLabel": "Depreciation expense",
        "documentation": "The amount of expense recognized in the current period that reflects the allocation of the cost of tangible assets over the assets' useful lives. Includes production and non-production related depreciation."
       }
      }
     },
     "auth_ref": [
      "r7",
      "r26"
     ]
    },
    "us-gaap_DisaggregationOfRevenueLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "DisaggregationOfRevenueLineItems",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureRevenueFromContractsWithCustomersDisaggregationOfRevenueDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Disaggregation of Revenue [Line Items]",
        "terseLabel": "Disaggregation of Revenue",
        "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": [
      "r384",
      "r675",
      "r676",
      "r677",
      "r678",
      "r679",
      "r680",
      "r681"
     ]
    },
    "us-gaap_DisaggregationOfRevenueTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "DisaggregationOfRevenueTable",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureRevenueFromContractsWithCustomersDisaggregationOfRevenueDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Disaggregation of Revenue [Table]",
        "documentation": "Disclosure of information about disaggregation of revenue into categories depicting how nature, amount, timing, and uncertainty of revenue and cash flows are affected by economic factor."
       }
      }
     },
     "auth_ref": [
      "r384",
      "r675",
      "r676",
      "r677",
      "r678",
      "r679",
      "r680",
      "r681"
     ]
    },
    "us-gaap_DisaggregationOfRevenueTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "DisaggregationOfRevenueTableTextBlock",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureRevenueFromContractsWithCustomersTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Disaggregation of Revenue [Table Text Block]",
        "terseLabel": "Schedule of disaggregation of revenue",
        "documentation": "Tabular disclosure of disaggregation of revenue into categories depicting how nature, amount, timing, and uncertainty of revenue and cash flows are affected by economic factor."
       }
      }
     },
     "auth_ref": [
      "r877"
     ]
    },
    "us-gaap_DisclosureOfRepurchaseAgreementsAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "DisclosureOfRepurchaseAgreementsAbstract",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureStockholdersEquityIncentiveAndOtherDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Disclosure of Repurchase Agreements [Abstract]",
        "terseLabel": "Share Repurchase Program"
       }
      }
     },
     "auth_ref": []
    },
    "fix_DisputeWithCustomerMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.comfortsystemsusa.com/20240930",
     "localname": "DisputeWithCustomerMember",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureCommitmentsAndContingenciesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The risk of loss pertaining to dispute with customer.",
        "label": "Dispute With Customer"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_DividendsCommonStockCash": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "DividendsCommonStockCash",
     "crdr": "debit",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfStockholdersEquity"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Dividends, Common Stock, Cash",
        "negatedLabel": "Dividends",
        "documentation": "Amount of paid and unpaid common stock dividends declared with the form of settlement in cash."
       }
      }
     },
     "auth_ref": [
      "r86"
     ]
    },
    "dei_DocumentFiscalPeriodFocus": {
     "xbrltype": "fiscalPeriodItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "DocumentFiscalPeriodFocus",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DocumentDocumentAndEntityInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Document Fiscal Period Focus",
        "documentation": "Fiscal period values are FY, Q1, Q2, and Q3. 1st, 2nd and 3rd quarter 10-Q or 10-QT statements have value Q1, Q2, and Q3 respectively, with 10-K, 10-KT or other fiscal year statements having FY."
       }
      }
     },
     "auth_ref": []
    },
    "dei_DocumentFiscalYearFocus": {
     "xbrltype": "gYearItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "DocumentFiscalYearFocus",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DocumentDocumentAndEntityInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Document Fiscal Year Focus",
        "documentation": "This is focus fiscal year of the document report in YYYY format. For a 2006 annual report, which may also provide financial information from prior periods, fiscal 2006 should be given as the fiscal year focus. Example: 2006."
       }
      }
     },
     "auth_ref": []
    },
    "dei_DocumentPeriodEndDate": {
     "xbrltype": "dateItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "DocumentPeriodEndDate",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DocumentDocumentAndEntityInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Document Period End Date",
        "documentation": "For the EDGAR submission types of Form 8-K: the date of the report, the date of the earliest event reported; for the EDGAR submission types of Form N-1A: the filing date; for all other submission types: the end of the reporting or transition period. The format of the date is YYYY-MM-DD."
       }
      }
     },
     "auth_ref": []
    },
    "dei_DocumentQuarterlyReport": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "DocumentQuarterlyReport",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DocumentDocumentAndEntityInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Document Quarterly Report",
        "documentation": "Boolean flag that is true only for a form used as an quarterly report."
       }
      }
     },
     "auth_ref": [
      "r724"
     ]
    },
    "dei_DocumentTransitionReport": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "DocumentTransitionReport",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DocumentDocumentAndEntityInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Document Transition Report",
        "documentation": "Boolean flag that is true only for a form used as a transition report."
       }
      }
     },
     "auth_ref": [
      "r756"
     ]
    },
    "dei_DocumentType": {
     "xbrltype": "submissionTypeItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "DocumentType",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DocumentDocumentAndEntityInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Document Type",
        "documentation": "The type of document being provided (such as 10-K, 10-Q, 485BPOS, etc). The document type is limited to the same value as the supporting SEC submission type, or the word 'Other'."
       }
      }
     },
     "auth_ref": []
    },
    "ecd_DvddsOrOthrErngsPdOnEqtyAwrdsNtOthrwsRflctdInTtlCompForCvrdYrMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "DvddsOrOthrErngsPdOnEqtyAwrdsNtOthrwsRflctdInTtlCompForCvrdYrMember",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Dividends or Other Earnings Paid on Equity Awards not Otherwise Reflected in Total Compensation for Covered Year [Member]",
        "terseLabel": "Dividends or Other Earnings Paid on Equity Awards not Otherwise Reflected in Total Compensation for Covered Year"
       }
      }
     },
     "auth_ref": [
      "r767"
     ]
    },
    "us-gaap_EarningsPerShareAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "EarningsPerShareAbstract",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfOperations"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Earnings Per Share [Abstract]",
        "terseLabel": "INCOME PER SHARE:"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_EarningsPerShareBasic": {
     "xbrltype": "perShareItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "EarningsPerShareBasic",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfOperations"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Earnings Per Share, Basic",
        "terseLabel": "Basic",
        "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": [
      "r158",
      "r173",
      "r174",
      "r175",
      "r176",
      "r177",
      "r178",
      "r182",
      "r184",
      "r197",
      "r198",
      "r199",
      "r201",
      "r443",
      "r452",
      "r468",
      "r469",
      "r533",
      "r549",
      "r652"
     ]
    },
    "us-gaap_EarningsPerShareDiluted": {
     "xbrltype": "perShareItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "EarningsPerShareDiluted",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfOperations"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Earnings Per Share, Diluted",
        "terseLabel": "Diluted",
        "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": [
      "r158",
      "r173",
      "r174",
      "r175",
      "r176",
      "r177",
      "r178",
      "r184",
      "r197",
      "r198",
      "r199",
      "r201",
      "r443",
      "r452",
      "r468",
      "r469",
      "r533",
      "r549",
      "r652"
     ]
    },
    "fix_EducationMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.comfortsystemsusa.com/20240930",
     "localname": "EducationMember",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureRevenueFromContractsWithCustomersDisaggregationOfRevenueDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "This members stands for education.",
        "label": "Education"
       }
      }
     },
     "auth_ref": []
    },
    "fix_EffectOfUsingWeightedAverageCommonSharesOutstanding": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://www.comfortsystemsusa.com/20240930",
     "localname": "EffectOfUsingWeightedAverageCommonSharesOutstanding",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureStockholdersEquityNumberOfSharesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Represents the effect of using weighted average common shares outstanding.",
        "label": "Effect of Using Weighted Average Common Shares, Outstanding",
        "terseLabel": "Effect of using weighted average common shares outstanding"
       }
      }
     },
     "auth_ref": []
    },
    "fix_EldecoincMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.comfortsystemsusa.com/20240930",
     "localname": "EldecoincMember",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsOtherAcquisitionsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Represents information pertaining to Eldeco Inc",
        "label": "Eldeco, Inc [Member]",
        "terseLabel": "Eldeco Inc"
       }
      }
     },
     "auth_ref": []
    },
    "fix_ElectricalSegmentMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.comfortsystemsusa.com/20240930",
     "localname": "ElectricalSegmentMember",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureGoodwillAndIdentifiableIntangibleAssetsNetChangesInCarryingAmountOfGoodwillDetails",
      "http://www.comfortsystemsusa.com/role/DisclosureRevenueFromContractsWithCustomersDisaggregationOfRevenueDetails",
      "http://www.comfortsystemsusa.com/role/DisclosureSegmentInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Electrical Segment [Member]",
        "label": "Electrical Segment"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_EmployeeRelatedLiabilitiesCurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "EmployeeRelatedLiabilitiesCurrent",
     "crdr": "credit",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Employee-related Liabilities, Current",
        "terseLabel": "Accrued compensation and benefits",
        "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": [
      "r48"
     ]
    },
    "us-gaap_EmployeeStockOptionMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "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": []
    },
    "dei_EntityAddressAddressLine1": {
     "xbrltype": "normalizedStringItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "EntityAddressAddressLine1",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DocumentDocumentAndEntityInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "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/2024",
     "localname": "EntityAddressAddressLine2",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DocumentDocumentAndEntityInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "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/2024",
     "localname": "EntityAddressCityOrTown",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DocumentDocumentAndEntityInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Entity Address, City or Town",
        "documentation": "Name of the City or Town"
       }
      }
     },
     "auth_ref": []
    },
    "dei_EntityAddressPostalZipCode": {
     "xbrltype": "normalizedStringItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "EntityAddressPostalZipCode",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DocumentDocumentAndEntityInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Entity Address, Postal Zip Code",
        "documentation": "Code for the postal or zip code"
       }
      }
     },
     "auth_ref": []
    },
    "dei_EntityAddressStateOrProvince": {
     "xbrltype": "stateOrProvinceItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "EntityAddressStateOrProvince",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DocumentDocumentAndEntityInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Entity Address, State or Province",
        "documentation": "Name of the state or province."
       }
      }
     },
     "auth_ref": []
    },
    "dei_EntityCentralIndexKey": {
     "xbrltype": "centralIndexKeyItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "EntityCentralIndexKey",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DocumentDocumentAndEntityInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Entity Central Index Key",
        "documentation": "A unique 10-digit SEC-issued value to identify entities that have filed disclosures with the SEC. It is commonly abbreviated as CIK."
       }
      }
     },
     "auth_ref": [
      "r722"
     ]
    },
    "dei_EntityCommonStockSharesOutstanding": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "EntityCommonStockSharesOutstanding",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DocumentDocumentAndEntityInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Entity Common Stock, Shares Outstanding",
        "documentation": "Indicate number of shares or other units outstanding of each of registrant's classes of capital or common stock or other ownership interests, if and as stated on cover of related periodic report. Where multiple classes or units exist define each class/interest by adding class of stock items such as Common Class A [Member], Common Class B [Member] or Partnership Interest [Member] onto the Instrument [Domain] of the Entity Listings, Instrument."
       }
      }
     },
     "auth_ref": []
    },
    "dei_EntityCurrentReportingStatus": {
     "xbrltype": "yesNoItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "EntityCurrentReportingStatus",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DocumentDocumentAndEntityInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Entity Current Reporting Status",
        "documentation": "Indicate 'Yes' or 'No' whether registrants (1) have filed all reports required to be filed by Section 13 or 15(d) of the Securities Exchange Act of 1934 during the preceding 12 months (or for such shorter period that registrants were required to file such reports), and (2) have been subject to such filing requirements for the past 90 days. This information should be based on the registrant's current or most recent filing containing the related disclosure."
       }
      }
     },
     "auth_ref": []
    },
    "dei_EntityEmergingGrowthCompany": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "EntityEmergingGrowthCompany",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DocumentDocumentAndEntityInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Entity Emerging Growth Company",
        "documentation": "Indicate if registrant meets the emerging growth company criteria."
       }
      }
     },
     "auth_ref": [
      "r722"
     ]
    },
    "dei_EntityFileNumber": {
     "xbrltype": "fileNumberItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "EntityFileNumber",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DocumentDocumentAndEntityInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "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/2024",
     "localname": "EntityFilerCategory",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DocumentDocumentAndEntityInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Entity Filer Category",
        "documentation": "Indicate whether the registrant is one of the following: Large Accelerated Filer, Accelerated Filer, Non-accelerated Filer. Definitions of these categories are stated in Rule 12b-2 of the Exchange Act. This information should be based on the registrant's current or most recent filing containing the related disclosure."
       }
      }
     },
     "auth_ref": [
      "r722"
     ]
    },
    "dei_EntityIncorporationStateCountryCode": {
     "xbrltype": "edgarStateCountryItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "EntityIncorporationStateCountryCode",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DocumentDocumentAndEntityInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Entity Incorporation, State or Country Code",
        "documentation": "Two-character EDGAR code representing the state or country of incorporation."
       }
      }
     },
     "auth_ref": []
    },
    "dei_EntityInteractiveDataCurrent": {
     "xbrltype": "yesNoItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "EntityInteractiveDataCurrent",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DocumentDocumentAndEntityInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Entity Interactive Data Current",
        "documentation": "Boolean flag that is true when the registrant has submitted electronically every Interactive Data File required to be submitted pursuant to Rule 405 of Regulation S-T during the preceding 12 months (or for such shorter period that the registrant was required to submit such files)."
       }
      }
     },
     "auth_ref": [
      "r806"
     ]
    },
    "dei_EntityRegistrantName": {
     "xbrltype": "normalizedStringItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "EntityRegistrantName",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DocumentDocumentAndEntityInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Entity Registrant Name",
        "documentation": "The exact name of the entity filing the report as specified in its charter, which is required by forms filed with the SEC."
       }
      }
     },
     "auth_ref": [
      "r722"
     ]
    },
    "dei_EntityShellCompany": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "EntityShellCompany",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DocumentDocumentAndEntityInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Entity Shell Company",
        "documentation": "Boolean flag that is true when the registrant is a shell company as defined in Rule 12b-2 of the Exchange Act."
       }
      }
     },
     "auth_ref": [
      "r722"
     ]
    },
    "dei_EntitySmallBusiness": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "EntitySmallBusiness",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DocumentDocumentAndEntityInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Entity Small Business",
        "documentation": "Indicates that the company is a Smaller Reporting Company (SRC)."
       }
      }
     },
     "auth_ref": [
      "r722"
     ]
    },
    "dei_EntityTaxIdentificationNumber": {
     "xbrltype": "employerIdItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "EntityTaxIdentificationNumber",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DocumentDocumentAndEntityInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Entity Tax Identification Number",
        "documentation": "The Tax Identification Number (TIN), also known as an Employer Identification Number (EIN), is a unique 9-digit value assigned by the IRS."
       }
      }
     },
     "auth_ref": [
      "r722"
     ]
    },
    "ecd_EqtyAwrdsAdjFnTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "EqtyAwrdsAdjFnTextBlock",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Equity Awards Adjustments, Footnote [Text Block]",
        "terseLabel": "Equity Awards Adjustments, Footnote"
       }
      }
     },
     "auth_ref": [
      "r761"
     ]
    },
    "ecd_EqtyAwrdsAdjsExclgValRprtdInSummryCompstnTblMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "EqtyAwrdsAdjsExclgValRprtdInSummryCompstnTblMember",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Equity Awards Adjustments, Excluding Value Reported in the Compensation Table [Member]",
        "terseLabel": "Equity Awards Adjustments, Excluding Value Reported in Compensation Table"
       }
      }
     },
     "auth_ref": [
      "r802"
     ]
    },
    "ecd_EqtyAwrdsAdjsMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "EqtyAwrdsAdjsMember",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Equity Awards Adjustments [Member]",
        "terseLabel": "Equity Awards Adjustments"
       }
      }
     },
     "auth_ref": [
      "r802"
     ]
    },
    "ecd_EqtyAwrdsInSummryCompstnTblForAplblYrMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "EqtyAwrdsInSummryCompstnTblForAplblYrMember",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Aggregate Grant Date Fair Value of Equity Award Amounts Reported in Summary Compensation Table [Member]",
        "terseLabel": "Aggregate Grant Date Fair Value of Equity Award Amounts Reported in Summary Compensation Table"
       }
      }
     },
     "auth_ref": [
      "r802"
     ]
    },
    "us-gaap_EquityComponentDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "EquityComponentDomain",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfStockholdersEquity"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Equity Component [Domain]",
        "documentation": "Components of equity are the parts of the total Equity balance including that which is allocated to common, preferred, treasury stock, retained earnings, etc."
       }
      }
     },
     "auth_ref": [
      "r12",
      "r136",
      "r154",
      "r155",
      "r156",
      "r168",
      "r169",
      "r170",
      "r172",
      "r177",
      "r179",
      "r181",
      "r203",
      "r243",
      "r244",
      "r290",
      "r363",
      "r437",
      "r438",
      "r440",
      "r441",
      "r442",
      "r444",
      "r451",
      "r452",
      "r460",
      "r461",
      "r462",
      "r463",
      "r464",
      "r465",
      "r467",
      "r495",
      "r496",
      "r497",
      "r498",
      "r499",
      "r500",
      "r502",
      "r504",
      "r519",
      "r548",
      "r573",
      "r574",
      "r575",
      "r583",
      "r633"
     ]
    },
    "us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueAmount": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "EquitySecuritiesWithoutReadilyDeterminableFairValueAmount",
     "crdr": "debit",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureSummaryOfSignificantAccountingPoliciesAndEstimatesInvestmentsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Equity Securities without Readily Determinable Fair Value, Amount",
        "terseLabel": "Investment fair value",
        "documentation": "Amount of investment in equity security without readily determinable fair value."
       }
      }
     },
     "auth_ref": [
      "r240"
     ]
    },
    "us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValuePolicyTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "EquitySecuritiesWithoutReadilyDeterminableFairValuePolicyTextBlock",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureSummaryOfSignificantAccountingPoliciesAndEstimatesPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Equity Securities without Readily Determinable Fair Value [Policy Text Block]",
        "terseLabel": "Investments",
        "documentation": "Disclosure of accounting policy for investment in equity security without readily determinable fair value, which does not qualify for practical expedient to estimate fair value using net asset value per share. Includes, but is not limited to, information considered for determining upward and downward adjustment from observable price change."
       }
      }
     },
     "auth_ref": [
      "r241"
     ]
    },
    "ecd_EquityValuationAssumptionDifferenceFnTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "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": [
      "r771"
     ]
    },
    "ecd_ErrCompAnalysisTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "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": [
      "r729",
      "r739",
      "r749",
      "r781"
     ]
    },
    "ecd_ErrCompRecoveryTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "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": [
      "r726",
      "r736",
      "r746",
      "r778"
     ]
    },
    "us-gaap_EstimateOfFairValueFairValueDisclosureMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "EstimateOfFairValueFairValueDisclosureMember",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureFairValueMeasurementsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Estimate of Fair Value Measurement [Member]",
        "terseLabel": "Total",
        "documentation": "Measured as an estimate of fair value."
       }
      }
     },
     "auth_ref": [
      "r337",
      "r493",
      "r669",
      "r670"
     ]
    },
    "ecd_ExecutiveCategoryAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "ExecutiveCategoryAxis",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Executive Category [Axis]",
        "terseLabel": "Executive Category:"
       }
      }
     },
     "auth_ref": [
      "r777"
     ]
    },
    "fix_ExistingBuildingConstructionMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.comfortsystemsusa.com/20240930",
     "localname": "ExistingBuildingConstructionMember",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureRevenueFromContractsWithCustomersDisaggregationOfRevenueDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "This member stands for existing building construction.",
        "label": "Existing Building Construction"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureFairValueMeasurementsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items]",
        "terseLabel": "Fair Value Measurements",
        "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": [
      "r471",
      "r472",
      "r485",
      "r691"
     ]
    },
    "us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureFairValueMeasurementsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Fair Value, Recurring and Nonrecurring [Table]",
        "documentation": "Disclosure of information about asset and liability measured at fair value on recurring and nonrecurring basis."
       }
      }
     },
     "auth_ref": [
      "r471",
      "r472",
      "r485",
      "r691"
     ]
    },
    "us-gaap_FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationTextBlock",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureFairValueMeasurementsTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Fair Value, Assets Measured on Recurring Basis, Unobservable Input Reconciliation [Table Text Block]",
        "terseLabel": "Schedule of reconciliation of the fair value of contingent earn-out obligations that use significant unobservable inputs (Level 3)",
        "documentation": "Tabular disclosure of the fair value measurement of assets using significant unobservable inputs (Level 3), a reconciliation of the beginning and ending balances, separately presenting changes during the period attributable to the following: (1) total gains or losses for the period (realized and unrealized), segregating those gains or losses included in earnings (or changes in net assets) and gains or losses recognized in other comprehensive income (loss), and a description of where those gains or losses included in earnings (or changes in net assets) are reported in the statement of income (or activities); (2) purchases, sales, issues, and settlements (each type disclosed separately); and (3) transfers in and transfers out of Level 3 (for example, transfers due to changes in the observability of significant inputs), by class of asset."
       }
      }
     },
     "auth_ref": [
      "r476",
      "r481",
      "r486",
      "r693"
     ]
    },
    "us-gaap_FairValueByFairValueHierarchyLevelAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "FairValueByFairValueHierarchyLevelAxis",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureFairValueMeasurementsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Fair Value Hierarchy and NAV [Axis]",
        "documentation": "Information by level within fair value hierarchy and fair value measured at net asset value per share as practical expedient."
       }
      }
     },
     "auth_ref": [
      "r337",
      "r389",
      "r390",
      "r391",
      "r392",
      "r393",
      "r394",
      "r470",
      "r472",
      "r473",
      "r474",
      "r475",
      "r484",
      "r485",
      "r487",
      "r520",
      "r521",
      "r522",
      "r669",
      "r670",
      "r682",
      "r683",
      "r684",
      "r691",
      "r695"
     ]
    },
    "us-gaap_FairValueByLiabilityClassAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "FairValueByLiabilityClassAxis",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsAcquiredIntangibleAssetsDetails",
      "http://www.comfortsystemsusa.com/role/DisclosureFairValueMeasurementsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Liability Class [Axis]",
        "documentation": "Information by class of liability."
       }
      }
     },
     "auth_ref": [
      "r476",
      "r477",
      "r478",
      "r479",
      "r480",
      "r481",
      "r486"
     ]
    },
    "us-gaap_FairValueByMeasurementBasisAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "FairValueByMeasurementBasisAxis",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureFairValueMeasurementsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Measurement Basis [Axis]",
        "documentation": "Information by measurement basis."
       }
      }
     },
     "auth_ref": [
      "r337",
      "r669",
      "r670"
     ]
    },
    "us-gaap_FairValueByMeasurementFrequencyAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "FairValueByMeasurementFrequencyAxis",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureFairValueMeasurementsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Measurement Frequency [Axis]",
        "documentation": "Information by measurement frequency."
       }
      }
     },
     "auth_ref": [
      "r471",
      "r472",
      "r473",
      "r475",
      "r691",
      "r909",
      "r912"
     ]
    },
    "us-gaap_FairValueDisclosuresAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "FairValueDisclosuresAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "Fair Value Measurements"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_FairValueDisclosuresTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "FairValueDisclosuresTextBlock",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureFairValueMeasurements"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Fair Value Disclosures [Text Block]",
        "terseLabel": "Fair Value Measurements",
        "documentation": "The entire disclosure for the fair value of financial instruments (as defined), including financial assets and financial liabilities (collectively, as defined), and the measurements of those instruments as well as disclosures related to the fair value of non-financial assets and liabilities. Such disclosures about the financial instruments, assets, and liabilities would include: (1) the fair value of the required items together with their carrying amounts (as appropriate); (2) for items for which it is not practicable to estimate fair value, disclosure would include: (a) information pertinent to estimating fair value (including, carrying amount, effective interest rate, and maturity, and (b) the reasons why it is not practicable to estimate fair value; (3) significant concentrations of credit risk including: (a) information about the activity, region, or economic characteristics identifying a concentration, (b) the maximum amount of loss the entity is exposed to based on the gross fair value of the related item, (c) policy for requiring collateral or other security and information as to accessing such collateral or security, and (d) the nature and brief description of such collateral or security; (4) quantitative information about market risks and how such risks are managed; (5) for items measured on both a recurring and nonrecurring basis information regarding the inputs used to develop the fair value measurement; and (6) for items presented in the financial statement for which fair value measurement is elected: (a) information necessary to understand the reasons for the election, (b) discussion of the effect of fair value changes on earnings, (c) a description of [similar groups] items for which the election is made and the relation thereof to the balance sheet, the aggregate carrying value of items included in the balance sheet that are not eligible for the election; (7) all other required (as defined) and desired information."
       }
      }
     },
     "auth_ref": [
      "r480",
      "r482",
      "r483",
      "r484",
      "r487",
      "r488",
      "r489",
      "r490",
      "r491",
      "r531",
      "r691",
      "r696"
     ]
    },
    "us-gaap_FairValueInputsLevel1Member": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "FairValueInputsLevel1Member",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureFairValueMeasurementsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Fair Value, Inputs, Level 1 [Member]",
        "terseLabel": "Quoted Market Prices In Active Markets for Identical Assets (Level 1)",
        "documentation": "Quoted prices in active markets for identical assets or liabilities that the reporting entity can access at the measurement date."
       }
      }
     },
     "auth_ref": [
      "r337",
      "r389",
      "r394",
      "r472",
      "r485",
      "r520",
      "r682",
      "r683",
      "r684",
      "r691"
     ]
    },
    "us-gaap_FairValueInputsLevel2Member": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "FairValueInputsLevel2Member",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureFairValueMeasurementsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Fair Value, Inputs, Level 2 [Member]",
        "terseLabel": "Significant Other Observable Inputs (Level 2)",
        "documentation": "Inputs other than quoted prices included within level 1 that are observable for an asset or liability, either directly or indirectly, including, but not limited to, quoted prices for similar assets or liabilities in active markets, or quoted prices for identical or similar assets or liabilities in inactive markets."
       }
      }
     },
     "auth_ref": [
      "r337",
      "r389",
      "r394",
      "r472",
      "r473",
      "r485",
      "r521",
      "r669",
      "r670",
      "r682",
      "r683",
      "r684",
      "r691"
     ]
    },
    "us-gaap_FairValueInputsLevel3Member": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "FairValueInputsLevel3Member",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureFairValueMeasurementsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Fair Value, Inputs, Level 3 [Member]",
        "terseLabel": "Significant Unobservable Inputs (Level 3)",
        "documentation": "Unobservable inputs that reflect the entity's own assumption about the assumptions market participants would use in pricing."
       }
      }
     },
     "auth_ref": [
      "r337",
      "r389",
      "r390",
      "r391",
      "r392",
      "r393",
      "r394",
      "r472",
      "r473",
      "r474",
      "r475",
      "r485",
      "r522",
      "r669",
      "r670",
      "r682",
      "r683",
      "r684",
      "r691",
      "r695"
     ]
    },
    "us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationByLiabilityClassDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationByLiabilityClassDomain",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsAcquiredIntangibleAssetsDetails",
      "http://www.comfortsystemsusa.com/role/DisclosureFairValueMeasurementsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Fair Value by Liability Class [Domain]",
        "documentation": "Represents classes of liabilities measured and disclosed at fair value."
       }
      }
     },
     "auth_ref": [
      "r476",
      "r477",
      "r478",
      "r479",
      "r480",
      "r481",
      "r486"
     ]
    },
    "us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationCalculationRollForward": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationCalculationRollForward",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureFairValueMeasurementsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Fair Value, Liabilities Measured on Recurring Basis, Unobservable Input Reconciliation, Calculation [Roll Forward]",
        "terseLabel": "Reconciliation of the fair value of contingent earn-out obligations that use significant unobservable inputs (Level 3)",
        "documentation": "A roll forward is a reconciliation of a concept from the beginning of a period to the end of a period."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_FairValueMeasurementFrequencyDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "FairValueMeasurementFrequencyDomain",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureFairValueMeasurementsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Measurement Frequency [Domain]",
        "documentation": "Measurement frequency."
       }
      }
     },
     "auth_ref": [
      "r471",
      "r472",
      "r473",
      "r475",
      "r691",
      "r909",
      "r912"
     ]
    },
    "us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityGainLossIncludedInEarnings": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityGainLossIncludedInEarnings",
     "crdr": "credit",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureFairValueMeasurementsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Fair Value, Measurement with Unobservable Inputs Reconciliation, Recurring Basis, Liability, Gain (Loss) Included in Earnings",
        "terseLabel": "Adjustments to fair value",
        "documentation": "Amount of gain (loss) recognized in income from liability measured at fair value on recurring basis using unobservable input (level 3)."
       }
      }
     },
     "auth_ref": [
      "r477",
      "r486"
     ]
    },
    "us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityIssues": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityIssues",
     "crdr": "credit",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureFairValueMeasurementsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Fair Value, Measurement with Unobservable Inputs Reconciliation, Recurring Basis, Liability, Issuances",
        "terseLabel": "Issuances",
        "documentation": "Amount of issuances of financial instrument classified as a liability measured using unobservable inputs that reflect the entity's own assumption about the assumptions market participants would use in pricing."
       }
      }
     },
     "auth_ref": [
      "r479",
      "r486"
     ]
    },
    "us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilitySettlements": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilitySettlements",
     "crdr": "debit",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureFairValueMeasurementsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Fair Value, Measurement with Unobservable Inputs Reconciliation, Recurring Basis, Liability, Settlements",
        "negatedLabel": "Settlements",
        "documentation": "Amount of settlements of financial instrument classified as a liability measured using unobservable inputs that reflect the entity's own assumption about the assumptions market participants would use in pricing."
       }
      }
     },
     "auth_ref": [
      "r479",
      "r486"
     ]
    },
    "us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue",
     "crdr": "credit",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureFairValueMeasurementsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Fair Value, Measurement with Unobservable Inputs Reconciliation, Recurring Basis, Liability Value",
        "periodEndLabel": "Balance at end of period",
        "periodStartLabel": "Balance at beginning of period",
        "terseLabel": "Contingent earn-out obligations",
        "documentation": "Fair value of financial instrument classified as a liability measured using unobservable inputs that reflect the entity's own assumption about the assumptions market participants would use in pricing."
       }
      }
     },
     "auth_ref": [
      "r476",
      "r486"
     ]
    },
    "us-gaap_FairValueMeasurementsFairValueHierarchyDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "FairValueMeasurementsFairValueHierarchyDomain",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureFairValueMeasurementsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Fair Value Hierarchy and NAV [Domain]",
        "documentation": "Categories used to prioritize the inputs to valuation techniques to measure fair value."
       }
      }
     },
     "auth_ref": [
      "r337",
      "r389",
      "r390",
      "r391",
      "r392",
      "r393",
      "r394",
      "r470",
      "r472",
      "r473",
      "r474",
      "r475",
      "r484",
      "r485",
      "r487",
      "r520",
      "r521",
      "r522",
      "r669",
      "r670",
      "r682",
      "r683",
      "r684",
      "r691",
      "r695"
     ]
    },
    "us-gaap_FairValueMeasurementsRecurringMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "FairValueMeasurementsRecurringMember",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureFairValueMeasurementsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Fair Value, Recurring [Member]",
        "terseLabel": "Recurring basis",
        "documentation": "Frequent fair value measurement. Includes, but is not limited to, fair value adjustment for impairment of asset, liability or equity, frequently measured at fair value."
       }
      }
     },
     "auth_ref": [
      "r691",
      "r906",
      "r907",
      "r908",
      "r909",
      "r910",
      "r912"
     ]
    },
    "us-gaap_FairValueOfFinancialInstrumentsPolicy": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "FairValueOfFinancialInstrumentsPolicy",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureSummaryOfSignificantAccountingPoliciesAndEstimatesPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Fair Value of Financial Instruments, Policy [Policy Text Block]",
        "terseLabel": "Financial Instruments",
        "documentation": "Disclosure of accounting policy for determining the fair value of financial instruments."
       }
      }
     },
     "auth_ref": [
      "r10"
     ]
    },
    "us-gaap_FiniteLivedIntangibleAssetsAcquiredAsPartOfBusinessCombinationTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "FiniteLivedIntangibleAssetsAcquiredAsPartOfBusinessCombinationTable",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsAcquiredIntangibleAssetsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Finite-Lived Intangible Assets Acquired as Part of Business Combination [Table]",
        "documentation": "Disclosure of information about finite-lived intangible asset acquired in business combination."
       }
      }
     },
     "auth_ref": [
      "r25"
     ]
    },
    "fix_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFour": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.comfortsystemsusa.com/20240930",
     "localname": "FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFour",
     "crdr": "debit",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureGoodwillAndIdentifiableIntangibleAssetsNetIdentifiableIntangibleAssetsNetDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of amortization for asset, excluding financial asset and goodwill, lacking physical substance with finite life expected to be recognized after fourth fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).",
        "label": "Finite Lived Intangible Assets Amortization Expense After Year Four",
        "terseLabel": "Thereafter"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths",
     "crdr": "debit",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureGoodwillAndIdentifiableIntangibleAssetsNetIdentifiableIntangibleAssetsNetDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Finite-Lived Intangible Asset, Expected Amortization, Year One",
        "terseLabel": "2025",
        "documentation": "Amount of amortization for assets, excluding financial assets and goodwill, lacking physical substance with finite life expected to be recognized in next fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach)."
       }
      }
     },
     "auth_ref": [
      "r286",
      "r647",
      "r666"
     ]
    },
    "us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseRemainderOfFiscalYear": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "FiniteLivedIntangibleAssetsAmortizationExpenseRemainderOfFiscalYear",
     "crdr": "debit",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureGoodwillAndIdentifiableIntangibleAssetsNetIdentifiableIntangibleAssetsNetDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Finite-Lived Intangible Asset, Expected Amortization, Remainder of Fiscal Year",
        "terseLabel": "2024 (remainder of the 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": [
      "r963"
     ]
    },
    "us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "FiniteLivedIntangibleAssetsAmortizationExpenseYearFour",
     "crdr": "debit",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureGoodwillAndIdentifiableIntangibleAssetsNetIdentifiableIntangibleAssetsNetDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Finite-Lived Intangible Asset, Expected Amortization, Year Four",
        "terseLabel": "2028",
        "documentation": "Amount of amortization for assets, excluding financial assets and goodwill, lacking physical substance with finite life expected to be recognized in fourth fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach)."
       }
      }
     },
     "auth_ref": [
      "r286",
      "r647",
      "r666"
     ]
    },
    "us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "FiniteLivedIntangibleAssetsAmortizationExpenseYearThree",
     "crdr": "debit",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureGoodwillAndIdentifiableIntangibleAssetsNetIdentifiableIntangibleAssetsNetDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Finite-Lived Intangible Asset, Expected Amortization, Year Three",
        "terseLabel": "2027",
        "documentation": "Amount of amortization for assets, excluding financial assets and goodwill, lacking physical substance with finite life expected to be recognized in third fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach)."
       }
      }
     },
     "auth_ref": [
      "r286",
      "r647",
      "r666"
     ]
    },
    "us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo",
     "crdr": "debit",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureGoodwillAndIdentifiableIntangibleAssetsNetIdentifiableIntangibleAssetsNetDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Finite-Lived Intangible Asset, Expected Amortization, Year Two",
        "terseLabel": "2026",
        "documentation": "Amount of amortization for assets, excluding financial assets and goodwill, lacking physical substance with finite life expected to be recognized in second fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach)."
       }
      }
     },
     "auth_ref": [
      "r286",
      "r647",
      "r666"
     ]
    },
    "us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "FiniteLivedIntangibleAssetsByMajorClassAxis",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsAcquiredIntangibleAssetsDetails",
      "http://www.comfortsystemsusa.com/role/DisclosureGoodwillAndIdentifiableIntangibleAssetsNetIdentifiableIntangibleAssetsNetDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Finite-Lived Intangible Assets by Major Class [Axis]",
        "documentation": "Information by major type or class of finite-lived intangible assets."
       }
      }
     },
     "auth_ref": [
      "r277",
      "r279",
      "r280",
      "r281",
      "r283",
      "r284",
      "r287",
      "r288",
      "r529",
      "r530",
      "r647"
     ]
    },
    "us-gaap_FiniteLivedIntangibleAssetsFutureAmortizationExpenseAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "FiniteLivedIntangibleAssetsFutureAmortizationExpenseAbstract",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureGoodwillAndIdentifiableIntangibleAssetsNetIdentifiableIntangibleAssetsNetDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Finite-Lived Intangible Assets, Net, Amortization Expense, Fiscal Year Maturity [Abstract]",
        "terseLabel": "Future amortization expense of identifiable intangible assets"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_FiniteLivedIntangibleAssetsLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "FiniteLivedIntangibleAssetsLineItems",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureGoodwillAndIdentifiableIntangibleAssetsNetIdentifiableIntangibleAssetsNetDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Finite-Lived Intangible Assets [Line Items]",
        "terseLabel": "Identifiable Intangible Assets, Net",
        "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": [
      "r277",
      "r284",
      "r287",
      "r288",
      "r289",
      "r529",
      "r647",
      "r666"
     ]
    },
    "us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "FiniteLivedIntangibleAssetsMajorClassNameDomain",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsAcquiredIntangibleAssetsDetails",
      "http://www.comfortsystemsusa.com/role/DisclosureGoodwillAndIdentifiableIntangibleAssetsNetIdentifiableIntangibleAssetsNetDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Finite-Lived Intangible Assets, Major Class Name [Domain]",
        "documentation": "The major class of finite-lived intangible asset (for example, patents, trademarks, copyrights, etc.) A major class is composed of intangible assets that can be grouped together because they are similar, either by their nature or by their use in the operations of a company."
       }
      }
     },
     "auth_ref": [
      "r277",
      "r279",
      "r280",
      "r281",
      "r283",
      "r284",
      "r287",
      "r288",
      "r647"
     ]
    },
    "us-gaap_FiniteLivedIntangibleAssetsNet": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "FiniteLivedIntangibleAssetsNet",
     "crdr": "debit",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureGoodwillAndIdentifiableIntangibleAssetsNetIdentifiableIntangibleAssetsNetDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Finite-Lived Intangible Assets, Net",
        "totalLabel": "Total",
        "documentation": "Amount after amortization of assets, excluding financial assets and goodwill, lacking physical substance with a finite life."
       }
      }
     },
     "auth_ref": [
      "r529",
      "r852"
     ]
    },
    "ecd_ForgoneRecoveryDueToDisqualificationOfTaxBenefitsAmt": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "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": [
      "r733",
      "r743",
      "r753",
      "r785"
     ]
    },
    "ecd_ForgoneRecoveryDueToExpenseOfEnforcementAmt": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "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": [
      "r733",
      "r743",
      "r753",
      "r785"
     ]
    },
    "ecd_ForgoneRecoveryDueToViolationOfHomeCountryLawAmt": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "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": [
      "r733",
      "r743",
      "r753",
      "r785"
     ]
    },
    "ecd_ForgoneRecoveryExplanationOfImpracticabilityTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "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": [
      "r733",
      "r743",
      "r753",
      "r785"
     ]
    },
    "ecd_ForgoneRecoveryIndName": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "ForgoneRecoveryIndName",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Forgone Recovery, Individual Name",
        "terseLabel": "Name"
       }
      }
     },
     "auth_ref": [
      "r733",
      "r743",
      "r753",
      "r785"
     ]
    },
    "ecd_FrValAsOfPrrYrEndOfEqtyAwrdsGrntdInPrrYrsFldVstngCondsDrngCvrdYrMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "FrValAsOfPrrYrEndOfEqtyAwrdsGrntdInPrrYrsFldVstngCondsDrngCvrdYrMember",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Prior Year End Fair Value of Equity Awards Granted in Any Prior Year that Fail to Meet Applicable Vesting Conditions During Covered Year [Member]",
        "terseLabel": "Prior Year End Fair Value of Equity Awards Granted in Any Prior Year that Fail to Meet Applicable Vesting Conditions During Covered Year"
       }
      }
     },
     "auth_ref": [
      "r766"
     ]
    },
    "us-gaap_GainLossOnDispositionOfAssets": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "GainLossOnDispositionOfAssets",
     "crdr": "credit",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfOperations"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Gain (Loss) on Disposition of Property Plant Equipment, Excluding Oil and Gas Property and Timber Property",
        "negatedLabel": "GAIN ON SALE OF ASSETS",
        "documentation": "Amount of gain (loss) on sale or disposal of property, plant and equipment assets, excluding oil and gas property and timber property."
       }
      }
     },
     "auth_ref": [
      "r818",
      "r857",
      "r858"
     ]
    },
    "us-gaap_GainLossOnSaleOfPropertyPlantEquipment": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "GainLossOnSaleOfPropertyPlantEquipment",
     "crdr": "credit",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Gain (Loss) on Disposition of Property Plant Equipment",
        "negatedLabel": "Gain on sale of assets",
        "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": [
      "r7"
     ]
    },
    "us-gaap_GainLossRelatedToLitigationSettlement": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "GainLossRelatedToLitigationSettlement",
     "crdr": "credit",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureCommitmentsAndContingenciesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Gain (Loss) from Litigation Settlement",
        "terseLabel": "Gain (loss) related to settlement agreements",
        "documentation": "Amount of gain (loss) recognized in settlement of litigation and insurance claims. Excludes claims within an insurance entity's normal claims settlement process."
       }
      }
     },
     "auth_ref": [
      "r659",
      "r865"
     ]
    },
    "us-gaap_Goodwill": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "Goodwill",
     "crdr": "debit",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsDetails",
      "http://www.comfortsystemsusa.com/role/DisclosureGoodwillAndIdentifiableIntangibleAssetsNetChangesInCarryingAmountOfGoodwillDetails",
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Goodwill",
        "periodEndLabel": "Balance at end of period",
        "periodStartLabel": "Balance at beginning of year",
        "terseLabel": "GOODWILL",
        "documentation": "Amount, after accumulated impairment loss, of asset representing future economic benefit arising from other asset acquired in business combination or from joint venture formation or both, that is not individually identified and separately recognized."
       }
      }
     },
     "auth_ref": [
      "r142",
      "r265",
      "r532",
      "r660",
      "r665",
      "r692",
      "r701",
      "r835",
      "r842"
     ]
    },
    "us-gaap_GoodwillAcquiredDuringPeriod": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "GoodwillAcquiredDuringPeriod",
     "crdr": "debit",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureGoodwillAndIdentifiableIntangibleAssetsNetChangesInCarryingAmountOfGoodwillDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Goodwill, Acquired During Period",
        "terseLabel": "Acquisitions and purchase price adjustments (See Note 5)",
        "documentation": "Amount of increase in asset representing future economic benefits arising from other assets acquired in a business combination that are not individually identified and separately recognized resulting from a business combination."
       }
      }
     },
     "auth_ref": [
      "r268",
      "r665"
     ]
    },
    "us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "GoodwillAndIntangibleAssetsDisclosureAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "Goodwill and Identifiable Intangible Assets, Net"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_GoodwillAndIntangibleAssetsDisclosureTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "GoodwillAndIntangibleAssetsDisclosureTextBlock",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureGoodwillAndIdentifiableIntangibleAssetsNet"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Goodwill and Intangible Assets Disclosure [Text Block]",
        "terseLabel": "Goodwill and Identifiable Intangible Assets, Net",
        "documentation": "The entire disclosure for goodwill and intangible assets."
       }
      }
     },
     "auth_ref": [
      "r833",
      "r845"
     ]
    },
    "us-gaap_GoodwillLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "GoodwillLineItems",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureGoodwillAndIdentifiableIntangibleAssetsNetChangesInCarryingAmountOfGoodwillDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Goodwill [Line Items]",
        "terseLabel": "Goodwill",
        "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": [
      "r266",
      "r267",
      "r268",
      "r269",
      "r270",
      "r271",
      "r272",
      "r273",
      "r274",
      "r275",
      "r276",
      "r665"
     ]
    },
    "us-gaap_GoodwillRollForward": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "GoodwillRollForward",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureGoodwillAndIdentifiableIntangibleAssetsNetChangesInCarryingAmountOfGoodwillDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Goodwill [Roll Forward]",
        "terseLabel": "Changes in the carrying amount of goodwill",
        "documentation": "A roll forward is a reconciliation of a concept from the beginning of a period to the end of a period."
       }
      }
     },
     "auth_ref": []
    },
    "fix_GovernmentCustomerMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.comfortsystemsusa.com/20240930",
     "localname": "GovernmentCustomerMember",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureRevenueFromContractsWithCustomersDisaggregationOfRevenueDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Organization that is the governing authority of a community.",
        "label": "Government"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_GrossProfit": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "GrossProfit",
     "crdr": "credit",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureSegmentInformationDetails",
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfOperations"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Gross Profit",
        "totalLabel": "Gross profit",
        "verboseLabel": "Gross Profit",
        "documentation": "Aggregate revenue less cost of goods and services sold or operating expenses directly attributable to the revenue generation activity."
       }
      }
     },
     "auth_ref": [
      "r63",
      "r65",
      "r98",
      "r166",
      "r242",
      "r312",
      "r313",
      "r315",
      "r316",
      "r317",
      "r318",
      "r319",
      "r321",
      "r322",
      "r494",
      "r654",
      "r659",
      "r826",
      "r828",
      "r829",
      "r830",
      "r831",
      "r872"
     ]
    },
    "fix_GrossProfitMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.comfortsystemsusa.com/20240930",
     "localname": "GrossProfitMember",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureCommitmentsAndContingenciesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Primary financial statement caption encompassing gross profit.",
        "label": "Gross Profit."
       }
      }
     },
     "auth_ref": []
    },
    "fix_HealthcareSectorCustomerMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.comfortsystemsusa.com/20240930",
     "localname": "HealthcareSectorCustomerMember",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureRevenueFromContractsWithCustomersDisaggregationOfRevenueDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Sector of the economy consisting of companies engaged in healthcare-related business activities.",
        "label": "Healthcare"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest",
     "crdr": "credit",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfOperations"
     ],
     "lang": {
      "en-us": {
       "role": {
        "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": [
      "r64",
      "r94",
      "r98",
      "r534",
      "r545",
      "r654",
      "r659",
      "r826",
      "r828",
      "r829",
      "r830",
      "r831"
     ]
    },
    "us-gaap_IncomeStatementAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "IncomeStatementAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "Income Statement [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_IncomeStatementLocationAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "IncomeStatementLocationAxis",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureCommitmentsAndContingenciesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Statement of Income Location, Balance [Axis]",
        "documentation": "Information by location in statement of income where disaggregated amount has been reported."
       }
      }
     },
     "auth_ref": [
      "r291",
      "r298",
      "r299",
      "r477",
      "r481",
      "r486",
      "r570",
      "r572",
      "r618",
      "r647",
      "r694",
      "r930"
     ]
    },
    "us-gaap_IncomeStatementLocationDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "IncomeStatementLocationDomain",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureCommitmentsAndContingenciesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Statement of Income Location, Balance [Domain]",
        "documentation": "Location in statement of income where disaggregated amount has been reported."
       }
      }
     },
     "auth_ref": [
      "r298",
      "r299",
      "r477",
      "r481",
      "r486",
      "r570",
      "r572",
      "r618",
      "r647",
      "r694",
      "r930"
     ]
    },
    "us-gaap_IncomeTaxExpenseBenefit": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "IncomeTaxExpenseBenefit",
     "crdr": "debit",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfOperations"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Income Tax Expense (Benefit)",
        "verboseLabel": "PROVISION FOR INCOME TAXES",
        "documentation": "Amount of current income tax expense (benefit) and deferred income tax expense (benefit) pertaining to continuing operations."
       }
      }
     },
     "auth_ref": [
      "r100",
      "r109",
      "r180",
      "r181",
      "r202",
      "r216",
      "r230",
      "r431",
      "r432",
      "r439",
      "r550",
      "r688"
     ]
    },
    "us-gaap_IncomeTaxPolicyTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "IncomeTaxPolicyTextBlock",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureSummaryOfSignificantAccountingPoliciesAndEstimatesPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Income Tax, Policy [Policy Text Block]",
        "terseLabel": "Income Taxes",
        "documentation": "Disclosure of accounting policy for income taxes, which may include its accounting policies for recognizing and measuring deferred tax assets and liabilities and related valuation allowances, recognizing investment tax credits, operating loss carryforwards, tax credit carryforwards, and other carryforwards, methodologies for determining its effective income tax rate and the characterization of interest and penalties in the financial statements."
       }
      }
     },
     "auth_ref": [
      "r153",
      "r427",
      "r428",
      "r433",
      "r434",
      "r435",
      "r436",
      "r580"
     ]
    },
    "us-gaap_IncreaseDecreaseInAccountsPayableAndAccruedLiabilities": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "IncreaseDecreaseInAccountsPayableAndAccruedLiabilities",
     "crdr": "debit",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Increase (Decrease) in Accounts Payable and Accrued Liabilities",
        "terseLabel": "Accounts payable and accrued liabilities",
        "documentation": "The increase (decrease) during the reporting period in the amounts payable to vendors for goods and services received and the amount of obligations and expenses incurred but not paid."
       }
      }
     },
     "auth_ref": [
      "r6"
     ]
    },
    "us-gaap_IncreaseDecreaseInAccountsReceivable": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "IncreaseDecreaseInAccountsReceivable",
     "crdr": "credit",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Increase (Decrease) in Accounts Receivable",
        "negatedLabel": "Receivables, net",
        "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": [
      "r6"
     ]
    },
    "us-gaap_IncreaseDecreaseInContractWithCustomerAsset": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "IncreaseDecreaseInContractWithCustomerAsset",
     "crdr": "credit",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Increase (Decrease) in Contract with Customer, Asset",
        "negatedLabel": "Costs and estimated earnings in excess of billings and unbilled accounts receivable",
        "documentation": "Amount of increase (decrease) in right to consideration in exchange for good or service transferred to customer when right is conditioned on something other than passage of time."
       }
      }
     },
     "auth_ref": [
      "r817"
     ]
    },
    "us-gaap_IncreaseDecreaseInContractWithCustomerLiability": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "IncreaseDecreaseInContractWithCustomerLiability",
     "crdr": "debit",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Increase (Decrease) in Contract with Customer, Liability",
        "terseLabel": "Billings in excess of costs and estimated earnings and deferred revenue",
        "documentation": "Amount of increase (decrease) in obligation to transfer good or service to customer for which consideration has been received or is receivable."
       }
      }
     },
     "auth_ref": [
      "r526",
      "r817"
     ]
    },
    "us-gaap_IncreaseDecreaseInIncomeTaxesReceivable": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "IncreaseDecreaseInIncomeTaxesReceivable",
     "crdr": "credit",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureSummaryOfSignificantAccountingPoliciesAndEstimatesIncomeTaxesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Increase (Decrease) in Income Taxes Receivable",
        "terseLabel": "Refund claim for overpayment",
        "documentation": "The increase (decrease) during the reporting period in income taxes receivable, which represents the amount due from tax authorities for refunds of overpayments or recoveries of income taxes paid."
       }
      }
     },
     "auth_ref": [
      "r6"
     ]
    },
    "us-gaap_IncreaseDecreaseInInventories": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "IncreaseDecreaseInInventories",
     "crdr": "credit",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Increase (Decrease) in Inventories",
        "negatedLabel": "Inventories",
        "documentation": "The increase (decrease) during the reporting period in the aggregate value of all inventory held by the reporting entity, associated with underlying transactions that are classified as operating activities."
       }
      }
     },
     "auth_ref": [
      "r6"
     ]
    },
    "us-gaap_IncreaseDecreaseInOperatingAssetsAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "IncreaseDecreaseInOperatingAssetsAbstract",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Increase (Decrease) in Operating Assets [Abstract]",
        "terseLabel": "(Increase) decrease in-"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_IncreaseDecreaseInOperatingCapitalAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "IncreaseDecreaseInOperatingCapitalAbstract",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Increase (Decrease) in Operating Capital [Abstract]",
        "terseLabel": "Changes in operating assets and liabilities, net of effects of acquisitions and divestitures-"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_IncreaseDecreaseInOperatingLiabilitiesAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "IncreaseDecreaseInOperatingLiabilitiesAbstract",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Increase (Decrease) in Operating Liabilities [Abstract]",
        "terseLabel": "Increase (decrease) in-"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_IncreaseDecreaseInOtherOperatingAssets": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "IncreaseDecreaseInOtherOperatingAssets",
     "crdr": "credit",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Increase (Decrease) in Other Operating Assets",
        "negatedLabel": "Other noncurrent assets",
        "documentation": "Amount of increase (decrease) in operating assets classified as other."
       }
      }
     },
     "auth_ref": [
      "r6"
     ]
    },
    "us-gaap_IncreaseDecreaseInOtherOperatingLiabilities": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "IncreaseDecreaseInOtherOperatingLiabilities",
     "crdr": "debit",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Increase (Decrease) in Other Operating Liabilities",
        "terseLabel": "Other long-term liabilities",
        "documentation": "Amount of increase (decrease) in operating liabilities classified as other."
       }
      }
     },
     "auth_ref": [
      "r6"
     ]
    },
    "us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets",
     "crdr": "credit",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Increase (Decrease) in Prepaid Expense and Other Assets",
        "negatedLabel": "Prepaid expenses and other current assets",
        "documentation": "Amount of increase (decrease) in prepaid expenses, and assets classified as other."
       }
      }
     },
     "auth_ref": [
      "r6"
     ]
    },
    "us-gaap_IncreaseDecreaseInStockholdersEquityRollForward": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "IncreaseDecreaseInStockholdersEquityRollForward",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfStockholdersEquity"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Increase (Decrease) in Stockholders' Equity [Roll Forward]",
        "terseLabel": "Increase (Decrease) in Stockholders' Equity",
        "documentation": "A roll forward is a reconciliation of a concept from the beginning of a period to the end of a period."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_IncrementalCommonSharesAttributableToContingentlyIssuableShares": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "IncrementalCommonSharesAttributableToContingentlyIssuableShares",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureStockholdersEquityNumberOfSharesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Incremental Common Shares Attributable to Dilutive Effect of Contingently Issuable Shares",
        "terseLabel": "Effect of restricted and contingently issuable shares",
        "documentation": "Additional shares included in the calculation of diluted EPS as a result of the potentially dilutive effect of contingently issuable shares. Contingently issuable shares are those shares that are issuable for little or no cash contingent on certain conditions being met."
       }
      }
     },
     "auth_ref": [
      "r186",
      "r187",
      "r189",
      "r190",
      "r191",
      "r192",
      "r193",
      "r194",
      "r195",
      "r199"
     ]
    },
    "us-gaap_IncrementalCommonSharesAttributableToShareBasedPaymentArrangements": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "IncrementalCommonSharesAttributableToShareBasedPaymentArrangements",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureStockholdersEquityNumberOfSharesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Incremental Common Shares Attributable to Dilutive Effect of Share-Based Payment Arrangements",
        "terseLabel": "Effect of shares issuable under stock option plans based on the treasury stock method",
        "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": [
      "r185",
      "r186",
      "r188",
      "r199",
      "r399"
     ]
    },
    "ecd_IndividualAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "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": [
      "r733",
      "r743",
      "r753",
      "r777",
      "r785",
      "r789",
      "r797"
     ]
    },
    "ecd_InsiderTradingArrLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "InsiderTradingArrLineItems",
     "lang": {
      "en-us": {
       "role": {
        "label": "Insider Trading Arrangements [Line Items]",
        "terseLabel": "Insider Trading Arrangements:"
       }
      }
     },
     "auth_ref": [
      "r795"
     ]
    },
    "ecd_InsiderTradingPoliciesProcLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "InsiderTradingPoliciesProcLineItems",
     "lang": {
      "en-us": {
       "role": {
        "label": "Insider Trading Policies and Procedures [Line Items]",
        "terseLabel": "Insider Trading Policies and Procedures:"
       }
      }
     },
     "auth_ref": [
      "r725",
      "r801"
     ]
    },
    "ecd_InsiderTrdPoliciesProcAdoptedFlag": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "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": [
      "r725",
      "r801"
     ]
    },
    "ecd_InsiderTrdPoliciesProcNotAdoptedTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "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": [
      "r725",
      "r801"
     ]
    },
    "us-gaap_IntangibleAssetsNetExcludingGoodwill": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "IntangibleAssetsNetExcludingGoodwill",
     "crdr": "debit",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Intangible Assets, Net (Excluding Goodwill)",
        "terseLabel": "IDENTIFIABLE INTANGIBLE ASSETS, NET",
        "documentation": "Sum of the carrying amounts of all intangible assets, excluding goodwill, as of the balance sheet date, net of accumulated amortization and impairment charges."
       }
      }
     },
     "auth_ref": [
      "r277",
      "r852",
      "r854"
     ]
    },
    "us-gaap_InterestExpenseNonoperating": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "InterestExpenseNonoperating",
     "crdr": "debit",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfOperations"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Interest Expense, Nonoperating",
        "negatedLabel": "Interest expense",
        "documentation": "Amount of interest expense classified as nonoperating."
       }
      }
     },
     "auth_ref": [
      "r212",
      "r816"
     ]
    },
    "us-gaap_InterestIncomeMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "InterestIncomeMember",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureCommitmentsAndContingenciesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Interest Income [Member]",
        "terseLabel": "Interest Income",
        "documentation": "Primary financial statement caption in which reported facts about interest income have been included."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_InventoryNet": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "InventoryNet",
     "crdr": "debit",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Inventory, Net",
        "terseLabel": "Inventories",
        "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": [
      "r149",
      "r651",
      "r701"
     ]
    },
    "us-gaap_InvestmentIncomeInterest": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "InvestmentIncomeInterest",
     "crdr": "credit",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfOperations"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Investment Income, Interest",
        "terseLabel": "Interest income",
        "documentation": "Amount before accretion (amortization) of purchase discount (premium) of interest income on nonoperating securities."
       }
      }
     },
     "auth_ref": [
      "r202",
      "r211",
      "r230",
      "r659",
      "r815"
     ]
    },
    "fix_JSMechanicalContractorsIncMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.comfortsystemsusa.com/20240930",
     "localname": "JSMechanicalContractorsIncMember",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsAcquiredIntangibleAssetsDetails",
      "http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsDetails",
      "http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Represents information relating to J&amp;S Mechanical Contractors, Inc in West Jordan, Utah.",
        "label": "J&amp;S Mechanical Contractors, Inc [Member]",
        "terseLabel": "J&amp;S Utah"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_LeasesAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "LeasesAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "Leases"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_LesseeLeaseDescriptionLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "LesseeLeaseDescriptionLineItems",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureLeasesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Lessee, Lease, Description [Line Items]",
        "terseLabel": "Leases",
        "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": [
      "r510",
      "r518"
     ]
    },
    "us-gaap_LesseeLeaseDescriptionTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "LesseeLeaseDescriptionTable",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureLeasesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Lessee, Lease, Description [Table]",
        "documentation": "Disclosure of information about lessee's leases."
       }
      }
     },
     "auth_ref": [
      "r510",
      "r518"
     ]
    },
    "us-gaap_LesseeLeasesPolicyTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "LesseeLeasesPolicyTextBlock",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureSummaryOfSignificantAccountingPoliciesAndEstimatesPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Lessee, Leases [Policy Text Block]",
        "terseLabel": "Leases",
        "documentation": "Disclosure of accounting policy for leasing arrangement entered into by lessee."
       }
      }
     },
     "auth_ref": [
      "r509"
     ]
    },
    "us-gaap_LesseeOperatingLeaseExistenceOfOptionToExtend": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "LesseeOperatingLeaseExistenceOfOptionToExtend",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureLeasesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Lessee, Operating Lease, Existence of Option to Extend [true false]",
        "terseLabel": "Existence of option to extend",
        "documentation": "Indicates (true false) whether lessee has option to extend operating lease."
       }
      }
     },
     "auth_ref": [
      "r511"
     ]
    },
    "us-gaap_LesseeOperatingLeaseLiabilityMaturityTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "LesseeOperatingLeaseLiabilityMaturityTableTextBlock",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureLeasesTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Lessee, Operating Lease, Liability, to be Paid, Maturity [Table Text Block]",
        "terseLabel": "Schedule of maturities of lease liabilities",
        "documentation": "Tabular disclosure of undiscounted cash flows of lessee's operating lease liability. Includes, but is not limited to, reconciliation of undiscounted cash flows to operating lease liability recognized in statement of financial position."
       }
      }
     },
     "auth_ref": [
      "r919"
     ]
    },
    "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "LesseeOperatingLeaseLiabilityPaymentsDue",
     "crdr": "credit",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureLeasesMaturitiesOfLeaseLiabilitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Lessee, Operating Lease, Liability, to be Paid",
        "totalLabel": "Total Lease Payments",
        "documentation": "Amount of lessee's undiscounted obligation for lease payment for operating lease."
       }
      }
     },
     "auth_ref": [
      "r516"
     ]
    },
    "fix_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFour": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.comfortsystemsusa.com/20240930",
     "localname": "LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFour",
     "crdr": "credit",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureLeasesMaturitiesOfLeaseLiabilitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of lessee's undiscounted obligation for lease payments for operating lease, due after fourth fiscal year following latest fiscal year.",
        "label": "Lessee Operating Lease Liability Payments Due After Year Four",
        "terseLabel": "Thereafter"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths",
     "crdr": "credit",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureLeasesMaturitiesOfLeaseLiabilitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Lessee, Operating Lease, Liability, to be Paid, Year One",
        "terseLabel": "2025",
        "documentation": "Amount of lessee's undiscounted obligation for lease payment for operating lease to be paid in next fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach)."
       }
      }
     },
     "auth_ref": [
      "r516"
     ]
    },
    "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "LesseeOperatingLeaseLiabilityPaymentsDueYearFour",
     "crdr": "credit",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureLeasesMaturitiesOfLeaseLiabilitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Lessee, Operating Lease, Liability, to be Paid, Year Four",
        "terseLabel": "2028",
        "documentation": "Amount of lessee's undiscounted obligation for lease payment for operating lease to be paid in fourth fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach)."
       }
      }
     },
     "auth_ref": [
      "r516"
     ]
    },
    "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "LesseeOperatingLeaseLiabilityPaymentsDueYearThree",
     "crdr": "credit",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureLeasesMaturitiesOfLeaseLiabilitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Lessee, Operating Lease, Liability, to be Paid, Year Three",
        "terseLabel": "2027",
        "documentation": "Amount of lessee's undiscounted obligation for lease payment for operating lease to be paid in third fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach)."
       }
      }
     },
     "auth_ref": [
      "r516"
     ]
    },
    "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "LesseeOperatingLeaseLiabilityPaymentsDueYearTwo",
     "crdr": "credit",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureLeasesMaturitiesOfLeaseLiabilitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Lessee, Operating Lease, Liability, to be Paid, Year Two",
        "terseLabel": "2026",
        "documentation": "Amount of lessee's undiscounted obligation for lease payment for operating lease to be paid in second fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach)."
       }
      }
     },
     "auth_ref": [
      "r516"
     ]
    },
    "us-gaap_LesseeOperatingLeaseLiabilityPaymentsRemainderOfFiscalYear": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "LesseeOperatingLeaseLiabilityPaymentsRemainderOfFiscalYear",
     "crdr": "credit",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureLeasesMaturitiesOfLeaseLiabilitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Lessee, Operating Lease, Liability, to be Paid, Remainder of Fiscal Year",
        "terseLabel": "2024 (excluding the nine months ended September 30, 2024)",
        "documentation": "Amount of lessee's undiscounted obligation for lease payment for operating lease having initial or remaining lease term in excess of one year to be paid in remainder of current fiscal year."
       }
      }
     },
     "auth_ref": [
      "r919"
     ]
    },
    "us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "LesseeOperatingLeaseLiabilityUndiscountedExcessAmount",
     "crdr": "credit",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureLeasesMaturitiesOfLeaseLiabilitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Lessee, Operating Lease, Liability, Undiscounted Excess Amount",
        "negatedLabel": "Less-Present Value Discount",
        "documentation": "Amount of lessee's undiscounted obligation for lease payments in excess of discounted obligation for lease payments for operating lease."
       }
      }
     },
     "auth_ref": [
      "r516"
     ]
    },
    "us-gaap_LesseeOperatingLeaseTermOfContract": {
     "xbrltype": "durationItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "LesseeOperatingLeaseTermOfContract",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureLeasesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Lessee, Operating Lease, Term of Contract",
        "verboseLabel": "Lease term for operating lease",
        "documentation": "Term of lessee's operating lease, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents reported fact of one year, five months, and thirteen days."
       }
      }
     },
     "auth_ref": [
      "r918"
     ]
    },
    "us-gaap_LesseeOperatingLeasesTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "LesseeOperatingLeasesTextBlock",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureLeases"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Lessee, Operating Leases [Text Block]",
        "terseLabel": "Leases",
        "documentation": "The entire disclosure for operating leases of lessee. Includes, but is not limited to, description of operating lease and maturity analysis of operating lease liability."
       }
      }
     },
     "auth_ref": [
      "r503"
     ]
    },
    "us-gaap_LetterOfCreditMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "LetterOfCreditMember",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsOtherDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Letter of Credit [Member]",
        "terseLabel": "Letter of Credit",
        "documentation": "A document typically issued by a financial institution which acts as a guarantee of payment to a beneficiary, or as the source of payment for a specific transaction (for example, wiring funds to a foreign exporter if and when specified merchandise is accepted pursuant to the terms of the letter of credit)."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_LettersOfCreditOutstandingAmount": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "LettersOfCreditOutstandingAmount",
     "crdr": "credit",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsOtherDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Letters of Credit Outstanding, Amount",
        "terseLabel": "Letters of credit amount outstanding",
        "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/2024",
     "localname": "Liabilities",
     "crdr": "credit",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Liabilities",
        "totalLabel": "Total liabilities",
        "documentation": "Amount of liability recognized for present obligation requiring transfer or otherwise providing economic benefit to others."
       }
      }
     },
     "auth_ref": [
      "r14",
      "r47",
      "r48",
      "r49",
      "r52",
      "r53",
      "r54",
      "r55",
      "r166",
      "r242",
      "r312",
      "r313",
      "r315",
      "r316",
      "r317",
      "r318",
      "r319",
      "r321",
      "r322",
      "r455",
      "r458",
      "r459",
      "r494",
      "r593",
      "r653",
      "r720",
      "r872",
      "r920",
      "r921"
     ]
    },
    "us-gaap_LiabilitiesAndStockholdersEquity": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "LiabilitiesAndStockholdersEquity",
     "crdr": "credit",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Liabilities and Equity",
        "totalLabel": "Total liabilities and stockholders' equity",
        "documentation": "Amount of liabilities and equity items, including the portion of equity attributable to noncontrolling interests, if any."
       }
      }
     },
     "auth_ref": [
      "r62",
      "r93",
      "r543",
      "r701",
      "r820",
      "r832",
      "r913"
     ]
    },
    "us-gaap_LiabilitiesAndStockholdersEquityAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "LiabilitiesAndStockholdersEquityAbstract",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Liabilities and Equity [Abstract]",
        "terseLabel": "LIABILITIES AND STOCKHOLDERS' EQUITY"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_LiabilitiesCurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "LiabilitiesCurrent",
     "crdr": "credit",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Liabilities, Current",
        "totalLabel": "Total current liabilities",
        "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": [
      "r49",
      "r140",
      "r166",
      "r242",
      "r312",
      "r313",
      "r315",
      "r316",
      "r317",
      "r318",
      "r319",
      "r321",
      "r322",
      "r455",
      "r458",
      "r459",
      "r494",
      "r701",
      "r872",
      "r920",
      "r921"
     ]
    },
    "us-gaap_LiabilitiesCurrentAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "LiabilitiesCurrentAbstract",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Liabilities, Current [Abstract]",
        "terseLabel": "CURRENT LIABILITIES:"
       }
      }
     },
     "auth_ref": []
    },
    "fix_LifeInsuranceContractsFaceAmount": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.comfortsystemsusa.com/20240930",
     "localname": "LifeInsuranceContractsFaceAmount",
     "crdr": "debit",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureFairValueMeasurementsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Represents the face amount of life insurance policies taken by the entity for their employees.",
        "label": "Life Insurance Contracts Face Amount",
        "terseLabel": "Combined face value of life insurance policies"
       }
      }
     },
     "auth_ref": []
    },
    "fix_LifeInsuranceContractsNumberOfEmployeesCovered": {
     "xbrltype": "integerItemType",
     "nsuri": "http://www.comfortsystemsusa.com/20240930",
     "localname": "LifeInsuranceContractsNumberOfEmployeesCovered",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureFairValueMeasurementsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Represents the number of employees covered under life insurance policy contracts.",
        "label": "Life Insurance Contracts Number of Employees Covered",
        "terseLabel": "Number of employees covered under life insurance policies"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_LineOfCredit": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "LineOfCredit",
     "crdr": "credit",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsOtherDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Long-Term Line of Credit",
        "terseLabel": "Outstanding borrowings",
        "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": [
      "r14",
      "r91",
      "r928"
     ]
    },
    "fix_LineOfCreditBorrowingCapacityAccordionOption": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.comfortsystemsusa.com/20240930",
     "localname": "LineOfCreditBorrowingCapacityAccordionOption",
     "crdr": "credit",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsOtherDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Accordion option on credit facility per terms of the agreement.",
        "label": "Line of Credit, Borrowing Capacity Accordion Option",
        "verboseLabel": "Line of credit borrowing capacity accordion option"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_LineOfCreditFacilityMaximumBorrowingCapacity": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "LineOfCreditFacilityMaximumBorrowingCapacity",
     "crdr": "credit",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsOtherDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Line of Credit Facility, Maximum Borrowing Capacity",
        "terseLabel": "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": [
      "r46",
      "r51"
     ]
    },
    "us-gaap_LineOfCreditFacilityRemainingBorrowingCapacity": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "LineOfCreditFacilityRemainingBorrowingCapacity",
     "crdr": "credit",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsOtherDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Line of Credit Facility, Remaining Borrowing Capacity",
        "terseLabel": "Credit available",
        "documentation": "Amount of borrowing capacity currently available under the credit facility (current borrowing capacity less the amount of borrowings outstanding)."
       }
      }
     },
     "auth_ref": [
      "r46",
      "r51",
      "r311"
     ]
    },
    "us-gaap_LineOfCreditFacilityUnusedCapacityCommitmentFeePercentage": {
     "xbrltype": "percentItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "LineOfCreditFacilityUnusedCapacityCommitmentFeePercentage",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsOtherDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Line of Credit Facility, Unused Capacity, Commitment Fee Percentage",
        "terseLabel": "Commitment fees payable on unused portion of the facility (as a percent)",
        "documentation": "The fee, expressed as a percentage of the line of credit facility, for available but unused credit capacity under the credit facility."
       }
      }
     },
     "auth_ref": []
    },
    "dei_LocalPhoneNumber": {
     "xbrltype": "normalizedStringItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "LocalPhoneNumber",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DocumentDocumentAndEntityInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Local Phone Number",
        "documentation": "Local phone number for entity."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_LongTermDebtAndCapitalLeaseObligations": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "LongTermDebtAndCapitalLeaseObligations",
     "crdr": "credit",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Long-Term Debt and Lease Obligation",
        "terseLabel": "Total long-term portion of debt",
        "documentation": "Amount of long-term debt and lease obligation, classified as noncurrent."
       }
      }
     },
     "auth_ref": [
      "r14",
      "r538"
     ]
    },
    "us-gaap_LongTermDebtAndCapitalLeaseObligationsCurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "LongTermDebtAndCapitalLeaseObligationsCurrent",
     "crdr": "credit",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Long-Term Debt and Lease Obligation, Current",
        "negatedLabel": "Less-current portion",
        "documentation": "Amount of long-term debt and lease obligation, classified as current."
       }
      }
     },
     "auth_ref": [
      "r48"
     ]
    },
    "us-gaap_LongTermDebtAndCapitalLeaseObligationsIncludingCurrentMaturities": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "LongTermDebtAndCapitalLeaseObligationsIncludingCurrentMaturities",
     "crdr": "credit",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Long-Term Debt and Lease Obligation, Including Current Maturities",
        "totalLabel": "Total debt",
        "documentation": "Amount of long-term debt and lease obligation, including portion classified as current."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_LongTermDebtByMaturityAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "LongTermDebtByMaturityAbstract",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsNotesToFormerOwnersDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Long-Term Debt, Fiscal Year Maturity [Abstract]",
        "terseLabel": "Future principal payments of long-term debt"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_LongTermDebtCurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "LongTermDebtCurrent",
     "crdr": "credit",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Long-Term Debt, Current Maturities",
        "terseLabel": "Current maturities of long-term debt",
        "documentation": "Amount, after deduction of unamortized premium (discount) and debt issuance cost, of long-term debt classified as current. Excludes lease obligation."
       }
      }
     },
     "auth_ref": [
      "r145"
     ]
    },
    "us-gaap_LongTermDebtNoncurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "LongTermDebtNoncurrent",
     "crdr": "credit",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Long-Term Debt, Excluding Current Maturities",
        "terseLabel": "LONG-TERM DEBT",
        "documentation": "Amount, after deduction of unamortized premium (discount) and debt issuance cost, of long-term debt classified as noncurrent. Excludes lease obligation."
       }
      }
     },
     "auth_ref": [
      "r146"
     ]
    },
    "us-gaap_LongTermDebtOtherDisclosuresAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "LongTermDebtOtherDisclosuresAbstract",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsOtherDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Long-Term Debt, Other Disclosure [Abstract]",
        "terseLabel": "Other disclosures"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_LossContingenciesByNatureOfContingencyAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "LossContingenciesByNatureOfContingencyAxis",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureCommitmentsAndContingenciesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Loss Contingency Nature [Axis]",
        "documentation": "Information by type of existing condition, situation, or set of circumstances involving uncertainty as to possible loss to an enterprise that will ultimately be resolved when one or more future events occur or fail to occur."
       }
      }
     },
     "auth_ref": [
      "r304",
      "r305",
      "r306",
      "r309",
      "r426",
      "r578",
      "r667",
      "r866",
      "r867"
     ]
    },
    "us-gaap_LossContingenciesLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "LossContingenciesLineItems",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureCommitmentsAndContingenciesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Loss Contingencies [Line Items]",
        "terseLabel": "Commitments and Contingencies",
        "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": [
      "r304",
      "r305",
      "r306",
      "r309",
      "r426",
      "r667",
      "r866",
      "r867"
     ]
    },
    "us-gaap_LossContingenciesTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "LossContingenciesTable",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureCommitmentsAndContingenciesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Loss Contingencies [Table]",
        "documentation": "Disclosure of information about loss contingency. Excludes environmental contingency, warranty, and unconditional purchase obligation."
       }
      }
     },
     "auth_ref": [
      "r304",
      "r305",
      "r306",
      "r309",
      "r426",
      "r667",
      "r866",
      "r867"
     ]
    },
    "us-gaap_LossContingencyNatureDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "LossContingencyNatureDomain",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureCommitmentsAndContingenciesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Loss Contingency, Nature [Domain]",
        "documentation": "An existing condition, situation, or set of circumstances involving uncertainty as to possible loss to an enterprise that will ultimately be resolved when one or more future events occur or fail to occur. Resolution of the uncertainty may confirm the incurrence of a loss or impairment of an asset or the incurrence of a liability."
       }
      }
     },
     "auth_ref": [
      "r304",
      "r305",
      "r306",
      "r309",
      "r426",
      "r578",
      "r667",
      "r866",
      "r867"
     ]
    },
    "fix_LossContingencySuretyAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://www.comfortsystemsusa.com/20240930",
     "localname": "LossContingencySuretyAbstract",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureCommitmentsAndContingenciesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Loss Contingency Surety [Abstract]",
        "terseLabel": "Surety"
       }
      }
     },
     "auth_ref": []
    },
    "srt_MajorCustomersAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/srt/2024",
     "localname": "MajorCustomersAxis",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureRevenueFromContractsWithCustomersDisaggregationOfRevenueDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Customer [Axis]",
        "documentation": "Information by name or description of a single external customer or a group of external customers."
       }
      }
     },
     "auth_ref": [
      "r236",
      "r677",
      "r703",
      "r707",
      "r877",
      "r929",
      "r931",
      "r932",
      "r934",
      "r935",
      "r936",
      "r937",
      "r938",
      "r939",
      "r940",
      "r941",
      "r942",
      "r943",
      "r944",
      "r945",
      "r946",
      "r947",
      "r948",
      "r949",
      "r950",
      "r951",
      "r952",
      "r953",
      "r954",
      "r955",
      "r956",
      "r958",
      "r959"
     ]
    },
    "fix_ManufacturingCustomerMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.comfortsystemsusa.com/20240930",
     "localname": "ManufacturingCustomerMember",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureRevenueFromContractsWithCustomersDisaggregationOfRevenueDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "This members stands for manufacturing.",
        "label": "Manufacturing"
       }
      }
     },
     "auth_ref": []
    },
    "fix_MaturityYearFiveMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.comfortsystemsusa.com/20240930",
     "localname": "MaturityYearFiveMember",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsNotesToFormerOwnersDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Represents maturity year five.",
        "label": "Maturity Year Five [Member]",
        "terseLabel": "2028"
       }
      }
     },
     "auth_ref": []
    },
    "fix_MaturityYearFourMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.comfortsystemsusa.com/20240930",
     "localname": "MaturityYearFourMember",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsNotesToFormerOwnersDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Represents maturity year four.",
        "label": "Maturity Year Four [Member]",
        "terseLabel": "2027"
       }
      }
     },
     "auth_ref": []
    },
    "fix_MaturityYearThreeMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.comfortsystemsusa.com/20240930",
     "localname": "MaturityYearThreeMember",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsNotesToFormerOwnersDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Represents maturity year three.",
        "label": "Maturity Year Three [Member]",
        "terseLabel": "2026"
       }
      }
     },
     "auth_ref": []
    },
    "fix_MaturityYearTwoMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.comfortsystemsusa.com/20240930",
     "localname": "MaturityYearTwoMember",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsNotesToFormerOwnersDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Represents maturity year two.",
        "label": "Maturity Year Two [Member]",
        "terseLabel": "2025"
       }
      }
     },
     "auth_ref": []
    },
    "srt_MaximumMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/srt/2024",
     "localname": "MaximumMember",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsAcquiredIntangibleAssetsDetails",
      "http://www.comfortsystemsusa.com/role/DisclosureCommitmentsAndContingenciesDetails",
      "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsNotesToFormerOwnersDetails",
      "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsOtherDetails",
      "http://www.comfortsystemsusa.com/role/DisclosureFairValueMeasurementsDetails",
      "http://www.comfortsystemsusa.com/role/DisclosureLeasesDetails",
      "http://www.comfortsystemsusa.com/role/DisclosureRevenueFromContractsWithCustomersRemainingPerformanceObligationsDetails",
      "http://www.comfortsystemsusa.com/role/DisclosureStockholdersEquityIncentiveAndOtherDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Maximum [Member]",
        "terseLabel": "Maximum",
        "documentation": "Upper limit of the provided range."
       }
      }
     },
     "auth_ref": [
      "r113",
      "r114",
      "r115",
      "r116",
      "r117",
      "r134",
      "r135",
      "r305",
      "r306",
      "r307",
      "r308",
      "r395",
      "r426",
      "r475",
      "r525",
      "r569",
      "r571",
      "r578",
      "r585",
      "r586",
      "r638",
      "r639",
      "r640",
      "r641",
      "r642",
      "r645",
      "r646",
      "r664",
      "r673",
      "r687",
      "r695",
      "r696",
      "r697",
      "r698",
      "r704",
      "r874",
      "r922",
      "r923",
      "r924",
      "r925",
      "r926",
      "r927"
     ]
    },
    "ecd_MeasureAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "MeasureAxis",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Measure [Axis]",
        "terseLabel": "Measure:"
       }
      }
     },
     "auth_ref": [
      "r769"
     ]
    },
    "ecd_MeasureName": {
     "xbrltype": "normalizedStringItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "MeasureName",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Measure Name",
        "terseLabel": "Name"
       }
      }
     },
     "auth_ref": [
      "r769"
     ]
    },
    "us-gaap_MeasurementInputInceptionDiscountRateMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "MeasurementInputInceptionDiscountRateMember",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsAcquiredIntangibleAssetsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Measurement Input, Inception Discount Rate [Member]",
        "terseLabel": "Measurement Input, Inception Discount Rate",
        "documentation": "Measurement input using interest rate at inception of contract to determine present value of future cash flows."
       }
      }
     },
     "auth_ref": [
      "r908",
      "r909",
      "r910"
     ]
    },
    "us-gaap_MeasurementInputTypeAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "MeasurementInputTypeAxis",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsAcquiredIntangibleAssetsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Measurement Input Type [Axis]",
        "documentation": "Information by type of measurement input used to determine value of asset and liability."
       }
      }
     },
     "auth_ref": [
      "r473",
      "r474",
      "r475",
      "r695"
     ]
    },
    "us-gaap_MeasurementInputTypeDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "MeasurementInputTypeDomain",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsAcquiredIntangibleAssetsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Measurement Input Type [Domain]",
        "documentation": "Measurement input used to determine value of asset and liability."
       }
      }
     },
     "auth_ref": [
      "r473",
      "r474",
      "r475",
      "r695"
     ]
    },
    "fix_MechanicalContractorNorthCarolinaMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.comfortsystemsusa.com/20240930",
     "localname": "MechanicalContractorNorthCarolinaMember",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsOtherAcquisitionsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Represents information pertaining to North Carolina plumbing service provider.",
        "label": "Mechanical Contractor North Carolina [Member]",
        "terseLabel": "Mechanical Contractor North Carolina"
       }
      }
     },
     "auth_ref": []
    },
    "fix_MechanicalSegmentMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.comfortsystemsusa.com/20240930",
     "localname": "MechanicalSegmentMember",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureGoodwillAndIdentifiableIntangibleAssetsNetChangesInCarryingAmountOfGoodwillDetails",
      "http://www.comfortsystemsusa.com/role/DisclosureRevenueFromContractsWithCustomersDisaggregationOfRevenueDetails",
      "http://www.comfortsystemsusa.com/role/DisclosureSegmentInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Mechanical Segment [Member]",
        "label": "Mechanical Segment"
       }
      }
     },
     "auth_ref": []
    },
    "srt_MinimumMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/srt/2024",
     "localname": "MinimumMember",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsAcquiredIntangibleAssetsDetails",
      "http://www.comfortsystemsusa.com/role/DisclosureCommitmentsAndContingenciesDetails",
      "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsNotesToFormerOwnersDetails",
      "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsOtherDetails",
      "http://www.comfortsystemsusa.com/role/DisclosureFairValueMeasurementsDetails",
      "http://www.comfortsystemsusa.com/role/DisclosureLeasesDetails",
      "http://www.comfortsystemsusa.com/role/DisclosureRevenueFromContractsWithCustomersRemainingPerformanceObligationsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Minimum [Member]",
        "terseLabel": "Minimum",
        "documentation": "Lower limit of the provided range."
       }
      }
     },
     "auth_ref": [
      "r113",
      "r114",
      "r115",
      "r116",
      "r117",
      "r134",
      "r135",
      "r305",
      "r306",
      "r307",
      "r308",
      "r395",
      "r426",
      "r475",
      "r525",
      "r569",
      "r571",
      "r578",
      "r585",
      "r586",
      "r638",
      "r639",
      "r640",
      "r641",
      "r642",
      "r645",
      "r646",
      "r664",
      "r673",
      "r687",
      "r695",
      "r696",
      "r697",
      "r704",
      "r874",
      "r922",
      "r923",
      "r924",
      "r925",
      "r926",
      "r927"
     ]
    },
    "ecd_MnpiDiscTimedForCompValFlag": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "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": [
      "r788"
     ]
    },
    "ecd_MtrlTermsOfTrdArrTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "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": [
      "r796"
     ]
    },
    "fix_MultiFamilyAndResidentialMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.comfortsystemsusa.com/20240930",
     "localname": "MultiFamilyAndResidentialMember",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureRevenueFromContractsWithCustomersDisaggregationOfRevenueDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "This member stands for multi family and residential.",
        "label": "Multi-Family and Residential"
       }
      }
     },
     "auth_ref": []
    },
    "srt_NameOfMajorCustomerDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/srt/2024",
     "localname": "NameOfMajorCustomerDomain",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureRevenueFromContractsWithCustomersDisaggregationOfRevenueDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Customer [Domain]",
        "documentation": "Single external customer or group of external customers."
       }
      }
     },
     "auth_ref": [
      "r236",
      "r677",
      "r703",
      "r707",
      "r877",
      "r929",
      "r931",
      "r932",
      "r934",
      "r935",
      "r936",
      "r937",
      "r938",
      "r939",
      "r940",
      "r941",
      "r942",
      "r943",
      "r944",
      "r945",
      "r946",
      "r947",
      "r948",
      "r949",
      "r950",
      "r951",
      "r952",
      "r953",
      "r954",
      "r955",
      "r956",
      "r958",
      "r959"
     ]
    },
    "ecd_NamedExecutiveOfficersFnTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "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": [
      "r770"
     ]
    },
    "us-gaap_NatureOfOperations": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "NatureOfOperations",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureBusinessAndOrganization"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Nature of Operations [Text Block]",
        "terseLabel": "Business and Organization",
        "documentation": "The entire disclosure for the nature of an entity's business, major products or services, principal markets including location, and the relative importance of its operations in each business and the basis for the determination, including but not limited to, assets, revenues, or earnings. For an entity that has not commenced principal operations, disclosures about the risks and uncertainties related to the activities in which the entity is currently engaged and an understanding of what those activities are being directed toward."
       }
      }
     },
     "auth_ref": [
      "r101",
      "r110"
     ]
    },
    "us-gaap_NetCashProvidedByUsedInFinancingActivities": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "NetCashProvidedByUsedInFinancingActivities",
     "crdr": "debit",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Net Cash Provided by (Used in) Financing Activities",
        "totalLabel": "Net cash 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": [
      "r162"
     ]
    },
    "us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "NetCashProvidedByUsedInFinancingActivitiesAbstract",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Net Cash Provided by (Used in) Financing Activities [Abstract]",
        "terseLabel": "CASH FLOWS FROM FINANCING ACTIVITIES:"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_NetCashProvidedByUsedInInvestingActivities": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "NetCashProvidedByUsedInInvestingActivities",
     "crdr": "debit",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Net Cash Provided by (Used in) Investing Activities",
        "totalLabel": "Net cash 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": [
      "r162"
     ]
    },
    "us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "NetCashProvidedByUsedInInvestingActivitiesAbstract",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Net Cash Provided by (Used in) Investing Activities [Abstract]",
        "terseLabel": "CASH FLOWS FROM INVESTING ACTIVITIES:"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_NetCashProvidedByUsedInOperatingActivities": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "NetCashProvidedByUsedInOperatingActivities",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Net Cash Provided by (Used in) Operating Activities",
        "totalLabel": "Net cash provided by 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": [
      "r76",
      "r77",
      "r78"
     ]
    },
    "us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "NetCashProvidedByUsedInOperatingActivitiesAbstract",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Net Cash Provided by (Used in) Operating Activities [Abstract]",
        "terseLabel": "CASH FLOWS FROM OPERATING ACTIVITIES:"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_NetIncomeLoss": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "NetIncomeLoss",
     "crdr": "credit",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfOperations",
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "NET INCOME",
        "label": "Net Income (Loss)",
        "terseLabel": "Net Income (Loss)",
        "documentation": "The portion of profit or loss for the period, net of income taxes, which is attributable to the parent."
       }
      }
     },
     "auth_ref": [
      "r66",
      "r78",
      "r95",
      "r138",
      "r151",
      "r152",
      "r156",
      "r166",
      "r171",
      "r173",
      "r174",
      "r175",
      "r176",
      "r177",
      "r180",
      "r181",
      "r196",
      "r242",
      "r312",
      "r313",
      "r315",
      "r316",
      "r317",
      "r318",
      "r319",
      "r321",
      "r322",
      "r443",
      "r452",
      "r469",
      "r494",
      "r547",
      "r615",
      "r631",
      "r632",
      "r718",
      "r872"
     ]
    },
    "us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "NewAccountingPronouncementsPolicyPolicyTextBlock",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureSummaryOfSignificantAccountingPoliciesAndEstimatesPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "New Accounting Pronouncements, Policy [Policy Text Block]",
        "terseLabel": "Recent Accounting Pronouncements",
        "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": []
    },
    "fix_NewConstructionMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.comfortsystemsusa.com/20240930",
     "localname": "NewConstructionMember",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureRevenueFromContractsWithCustomersDisaggregationOfRevenueDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "This member stands for new construction.",
        "label": "New Construction"
       }
      }
     },
     "auth_ref": []
    },
    "ecd_NonGaapMeasureDescriptionTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "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": [
      "r769"
     ]
    },
    "ecd_NonNeosMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "NonNeosMember",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Non-NEOs [Member]",
        "terseLabel": "Non-NEOs"
       }
      }
     },
     "auth_ref": [
      "r733",
      "r743",
      "r753",
      "r777",
      "r785"
     ]
    },
    "ecd_NonPeoNeoAvgCompActuallyPaidAmt": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "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": [
      "r760"
     ]
    },
    "ecd_NonPeoNeoAvgTotalCompAmt": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "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": [
      "r759"
     ]
    },
    "ecd_NonPeoNeoMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "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": [
      "r777"
     ]
    },
    "ecd_NonRule10b51ArrAdoptedFlag": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "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": [
      "r796"
     ]
    },
    "ecd_NonRule10b51ArrTrmntdFlag": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "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": [
      "r796"
     ]
    },
    "us-gaap_NonoperatingIncomeExpense": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "NonoperatingIncomeExpense",
     "crdr": "credit",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfOperations"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Nonoperating Income (Expense)",
        "totalLabel": "Other income (expense)",
        "documentation": "The aggregate amount of income or expense from ancillary business-related activities (that is to say, excluding major activities considered part of the normal operations of the business)."
       }
      }
     },
     "auth_ref": [
      "r68"
     ]
    },
    "us-gaap_NonoperatingIncomeExpenseAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "NonoperatingIncomeExpenseAbstract",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfOperations"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Nonoperating Income (Expense) [Abstract]",
        "terseLabel": "OTHER INCOME (EXPENSE):"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_NontradeReceivablesCurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "NontradeReceivablesCurrent",
     "crdr": "debit",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Nontrade Receivables, Current",
        "terseLabel": "Other receivables, less allowance for credit losses of $515 and $522, respectively",
        "documentation": "The sum of amounts currently receivable other than from customers. For classified balance sheets, represents the current amount receivable, that is amounts expected to be collected within one year or the normal operating cycle, if longer."
       }
      }
     },
     "auth_ref": [
      "r811"
     ]
    },
    "us-gaap_NotesAndLoansPayable": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "NotesAndLoansPayable",
     "crdr": "credit",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsDetails",
      "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsNotesToFormerOwnersDetails",
      "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsOtherDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Notes and Loans Payable",
        "terseLabel": "Notes to former owners",
        "verboseLabel": "Notes issued to former owners",
        "documentation": "Including the current and noncurrent portions, carrying value as of the balance sheet date of all notes and loans payable (with maturities initially due after one year or beyond the operating cycle if longer)."
       }
      }
     },
     "auth_ref": [
      "r14",
      "r91",
      "r928"
     ]
    },
    "fix_NumberOfOffSiteConstructionRealEstateLeasesCommenced": {
     "xbrltype": "integerItemType",
     "nsuri": "http://www.comfortsystemsusa.com/20240930",
     "localname": "NumberOfOffSiteConstructionRealEstateLeasesCommenced",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureLeasesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Number of off-site construction real estate leases commenced.",
        "label": "Number Of Off-site Construction Real Estate Leases Commenced",
        "terseLabel": "Number of off-site construction real estate leases commenced"
       }
      }
     },
     "auth_ref": []
    },
    "fix_NumberOfOptionsToRenew": {
     "xbrltype": "integerItemType",
     "nsuri": "http://www.comfortsystemsusa.com/20240930",
     "localname": "NumberOfOptionsToRenew",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureLeasesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Represents the number of options to renew.",
        "label": "Number of Options to Renew",
        "terseLabel": "Number of options to renew"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_NumberOfReportableSegments": {
     "xbrltype": "integerItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "NumberOfReportableSegments",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureSegmentInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Number of Reportable Segments",
        "terseLabel": "Number of reportable segments",
        "documentation": "Number of segments reported by the entity. A reportable segment is a component of an entity for which there is an accounting requirement to report separate financial information on that component in the entity's financial statements."
       }
      }
     },
     "auth_ref": [
      "r655",
      "r663",
      "r827"
     ]
    },
    "fix_OfficeBuildingCustomerMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.comfortsystemsusa.com/20240930",
     "localname": "OfficeBuildingCustomerMember",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureRevenueFromContractsWithCustomersDisaggregationOfRevenueDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Building designed primarily for the conduct of business, for example, but not limited to, administration, clerical services, and consultation.",
        "label": "Office Buildings"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_OperatingIncomeLoss": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "OperatingIncomeLoss",
     "crdr": "credit",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfOperations"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Operating Income (Loss)",
        "totalLabel": "Operating income",
        "documentation": "The net result for the period of deducting operating expenses from operating revenues."
       }
      }
     },
     "auth_ref": [
      "r98",
      "r654",
      "r826",
      "r828",
      "r829",
      "r830",
      "r831"
     ]
    },
    "us-gaap_OperatingLeaseExpense": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "OperatingLeaseExpense",
     "crdr": "debit",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureLeasesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Operating Lease, Expense",
        "terseLabel": "Operating lease expense",
        "documentation": "Amount of operating lease expense. Excludes sublease income."
       }
      }
     },
     "auth_ref": [
      "r917"
     ]
    },
    "us-gaap_OperatingLeaseLiabilitiesPaymentsDueAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "OperatingLeaseLiabilitiesPaymentsDueAbstract",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureLeasesMaturitiesOfLeaseLiabilitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Lessee, Operating Lease, Liability, to be Paid, Fiscal Year Maturity [Abstract]",
        "terseLabel": "Maturities of lease liabilities:"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_OperatingLeaseLiability": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "OperatingLeaseLiability",
     "crdr": "credit",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureLeasesMaturitiesOfLeaseLiabilitiesDetails",
      "http://www.comfortsystemsusa.com/role/DisclosureLeasesSummaryOfOperatingLeaseAssetsAndLiabilitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Operating Lease, Liability",
        "totalLabel": "Total operating lease liabilities",
        "verboseLabel": "Present Value of Operating Lease Liabilities",
        "documentation": "Present value of lessee's discounted obligation for lease payments from operating lease."
       }
      }
     },
     "auth_ref": [
      "r506"
     ]
    },
    "us-gaap_OperatingLeaseLiabilityAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "OperatingLeaseLiabilityAbstract",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureLeasesSummaryOfOperatingLeaseAssetsAndLiabilitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Operating Lease, Liability [Abstract]",
        "terseLabel": "Operating lease liabilities:"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_OperatingLeaseLiabilityCurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "OperatingLeaseLiabilityCurrent",
     "crdr": "credit",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureLeasesSummaryOfOperatingLeaseAssetsAndLiabilitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Operating Lease, Liability, Current",
        "terseLabel": "Other current liabilities",
        "documentation": "Present value of lessee's discounted obligation for lease payments from operating lease, classified as current."
       }
      }
     },
     "auth_ref": [
      "r506"
     ]
    },
    "us-gaap_OperatingLeaseLiabilityCurrentStatementOfFinancialPositionExtensibleList": {
     "xbrltype": "enumerationSetItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "OperatingLeaseLiabilityCurrentStatementOfFinancialPositionExtensibleList",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureLeasesSummaryOfOperatingLeaseAssetsAndLiabilitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Operating Lease, Liability, Current, Statement of Financial Position [Extensible Enumeration]",
        "documentation": "Indicates line item in statement of financial position that includes current operating lease liability."
       }
      }
     },
     "auth_ref": [
      "r507"
     ]
    },
    "us-gaap_OperatingLeaseLiabilityNoncurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "OperatingLeaseLiabilityNoncurrent",
     "crdr": "credit",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureLeasesSummaryOfOperatingLeaseAssetsAndLiabilitiesDetails",
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Operating Lease, Liability, Noncurrent",
        "terseLabel": "LEASE LIABILITIES",
        "verboseLabel": "Long-term operating lease liabilities",
        "documentation": "Present value of lessee's discounted obligation for lease payments from operating lease, classified as noncurrent."
       }
      }
     },
     "auth_ref": [
      "r506"
     ]
    },
    "us-gaap_OperatingLeasePayments": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "OperatingLeasePayments",
     "crdr": "credit",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureLeasesMaturitiesOfLeaseLiabilitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Operating Lease, Payments",
        "terseLabel": "Cash paid for amounts included in the measurement of operating lease liabilities",
        "documentation": "Amount of cash outflow from operating lease, excluding payments to bring another asset to condition and location necessary for its intended use."
       }
      }
     },
     "auth_ref": [
      "r508",
      "r512"
     ]
    },
    "us-gaap_OperatingLeaseRightOfUseAsset": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "OperatingLeaseRightOfUseAsset",
     "crdr": "debit",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureLeasesSummaryOfOperatingLeaseAssetsAndLiabilitiesDetails",
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Operating Lease, Right-of-Use Asset",
        "terseLabel": "LEASE RIGHT-OF-USE ASSET",
        "verboseLabel": "Operating lease right-of-use assets",
        "documentation": "Amount of lessee's right to use underlying asset under operating lease."
       }
      }
     },
     "auth_ref": [
      "r505"
     ]
    },
    "us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent": {
     "xbrltype": "percentItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "OperatingLeaseWeightedAverageDiscountRatePercent",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureLeasesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Operating Lease, Weighted Average Discount Rate, Percent",
        "verboseLabel": "Weighted average discount rate for operating leases",
        "documentation": "Weighted average discount rate for operating lease calculated at point in time."
       }
      }
     },
     "auth_ref": [
      "r515",
      "r700"
     ]
    },
    "us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1": {
     "xbrltype": "durationItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "OperatingLeaseWeightedAverageRemainingLeaseTerm1",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureLeasesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Operating Lease, Weighted Average Remaining Lease Term",
        "terseLabel": "Weighted average remaining lease term",
        "documentation": "Weighted average remaining lease term for operating lease, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents reported fact of one year, five months, and thirteen days."
       }
      }
     },
     "auth_ref": [
      "r514",
      "r700"
     ]
    },
    "us-gaap_OperatingSegmentsMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "OperatingSegmentsMember",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureSegmentInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Operating Segments [Member]",
        "terseLabel": "Operating Segments",
        "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": [
      "r224",
      "r225",
      "r226",
      "r227",
      "r228",
      "r231",
      "r659",
      "r660"
     ]
    },
    "us-gaap_OrderOrProductionBacklogMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "OrderOrProductionBacklogMember",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsAcquiredIntangibleAssetsDetails",
      "http://www.comfortsystemsusa.com/role/DisclosureGoodwillAndIdentifiableIntangibleAssetsNetIdentifiableIntangibleAssetsNetDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Order or Production Backlog [Member]",
        "terseLabel": "Backlog",
        "documentation": "Order or production backlog arising from contract acquired in business combination, asset acquisition, and from joint venture formation."
       }
      }
     },
     "auth_ref": [
      "r39",
      "r846",
      "r847",
      "r848",
      "r849",
      "r851",
      "r852",
      "r855",
      "r856"
     ]
    },
    "us-gaap_OrganizationConsolidationAndPresentationOfFinancialStatementsAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "OrganizationConsolidationAndPresentationOfFinancialStatementsAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "Business and Organization"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_OtherAssetsNoncurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "OtherAssetsNoncurrent",
     "crdr": "debit",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Other Assets, Noncurrent",
        "terseLabel": "OTHER NONCURRENT ASSETS",
        "documentation": "Amount of noncurrent assets classified as other."
       }
      }
     },
     "auth_ref": [
      "r143"
     ]
    },
    "us-gaap_OtherCustomerMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "OtherCustomerMember",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureRevenueFromContractsWithCustomersDisaggregationOfRevenueDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Other Customer [Member]",
        "terseLabel": "Other Customer",
        "documentation": "Customer classified as other."
       }
      }
     },
     "auth_ref": [
      "r929",
      "r957"
     ]
    },
    "fix_OtherDebtLongTermAndShortTermCombinedAmount": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.comfortsystemsusa.com/20240930",
     "localname": "OtherDebtLongTermAndShortTermCombinedAmount",
     "crdr": "credit",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Represents the aggregate of other long-term debt, including current maturities and short-term debt.",
        "label": "Other Debt, Long-term and Short-term, Combined Amount",
        "terseLabel": "Other debt"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_OtherLiabilitiesCurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "OtherLiabilitiesCurrent",
     "crdr": "credit",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Other Liabilities, Current",
        "terseLabel": "Other current liabilities",
        "documentation": "Amount of liabilities classified as other, due within one year or the normal operating cycle, if longer."
       }
      }
     },
     "auth_ref": [
      "r48",
      "r701"
     ]
    },
    "us-gaap_OtherLiabilitiesNoncurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "OtherLiabilitiesNoncurrent",
     "crdr": "credit",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Other Liabilities, Noncurrent",
        "terseLabel": "OTHER LONG-TERM LIABILITIES",
        "documentation": "Amount of liabilities classified as other, due after one year or the normal operating cycle, if longer."
       }
      }
     },
     "auth_ref": [
      "r53"
     ]
    },
    "us-gaap_OtherNonoperatingIncomeExpense": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "OtherNonoperatingIncomeExpense",
     "crdr": "credit",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfOperations"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Other Nonoperating Income (Expense)",
        "terseLabel": "Other",
        "documentation": "Amount of income (expense) related to nonoperating activities, classified as other."
       }
      }
     },
     "auth_ref": [
      "r70"
     ]
    },
    "ecd_OtherPerfMeasureAmt": {
     "xbrltype": "decimalItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "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": [
      "r769"
     ]
    },
    "ecd_OutstandingAggtErrCompAmt": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "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": [
      "r731",
      "r741",
      "r751",
      "r783"
     ]
    },
    "ecd_OutstandingRecoveryCompAmt": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "OutstandingRecoveryCompAmt",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Outstanding Recovery Compensation Amount",
        "terseLabel": "Compensation Amount"
       }
      }
     },
     "auth_ref": [
      "r734",
      "r744",
      "r754",
      "r786"
     ]
    },
    "ecd_OutstandingRecoveryIndName": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "OutstandingRecoveryIndName",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Outstanding Recovery, Individual Name",
        "terseLabel": "Name"
       }
      }
     },
     "auth_ref": [
      "r734",
      "r744",
      "r754",
      "r786"
     ]
    },
    "ecd_PayVsPerformanceDisclosureLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "PayVsPerformanceDisclosureLineItems",
     "lang": {
      "en-us": {
       "role": {
        "label": "Pay vs Performance Disclosure [Line Items]",
        "terseLabel": "Pay vs Performance Disclosure"
       }
      }
     },
     "auth_ref": [
      "r758"
     ]
    },
    "us-gaap_PaymentForContingentConsiderationLiabilityFinancingActivities": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "PaymentForContingentConsiderationLiabilityFinancingActivities",
     "crdr": "credit",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Payment for Contingent Consideration Liability, Financing Activities",
        "negatedLabel": "Payments for contingent consideration arrangements",
        "documentation": "Amount of cash outflow, not made soon after acquisition date of business combination, to settle contingent consideration liability up to amount recognized at acquisition date, including, but not limited to, measurement period adjustment and less amount paid soon after acquisition date."
       }
      }
     },
     "auth_ref": [
      "r4"
     ]
    },
    "us-gaap_PaymentsForRent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "PaymentsForRent",
     "crdr": "credit",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureLeasesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Payments for Rent",
        "terseLabel": "Rent paid to related parties",
        "documentation": "Cash payments to lessor's for use of assets under operating leases."
       }
      }
     },
     "auth_ref": [
      "r5"
     ]
    },
    "us-gaap_PaymentsForRepurchaseOfCommonStock": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "PaymentsForRepurchaseOfCommonStock",
     "crdr": "credit",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureStockholdersEquityIncentiveAndOtherDetails",
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Payments for Repurchase of Common Stock",
        "negatedLabel": "Share repurchases",
        "terseLabel": "Share repurchase",
        "documentation": "The cash outflow to reacquire common stock during the period."
       }
      }
     },
     "auth_ref": [
      "r74"
     ]
    },
    "us-gaap_PaymentsOfDividendsCommonStock": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "PaymentsOfDividendsCommonStock",
     "crdr": "credit",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Payments of Ordinary Dividends, Common Stock",
        "negatedLabel": "Payments of dividends to stockholders",
        "documentation": "Amount of cash outflow in the form of ordinary dividends to common shareholders of the parent entity."
       }
      }
     },
     "auth_ref": [
      "r74"
     ]
    },
    "us-gaap_PaymentsRelatedToTaxWithholdingForShareBasedCompensation": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "PaymentsRelatedToTaxWithholdingForShareBasedCompensation",
     "crdr": "credit",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Payment, Tax Withholding, Share-Based Payment Arrangement",
        "negatedLabel": "Shares received in lieu of tax withholding",
        "documentation": "Amount of cash outflow to satisfy grantee's tax withholding obligation for award under share-based payment arrangement."
       }
      }
     },
     "auth_ref": [
      "r160"
     ]
    },
    "us-gaap_PaymentsToAcquireBusinessesGross": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "PaymentsToAcquireBusinessesGross",
     "crdr": "credit",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsDetails",
      "http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsOtherAcquisitionsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Payments to Acquire Businesses, Gross",
        "verboseLabel": "Cash paid at closing",
        "documentation": "The cash outflow associated with the acquisition of business during the period. The cash portion only of the acquisition price."
       }
      }
     },
     "auth_ref": [
      "r15",
      "r447"
     ]
    },
    "us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "PaymentsToAcquireBusinessesNetOfCashAcquired",
     "crdr": "credit",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Payments to Acquire Businesses, Net of Cash Acquired",
        "negatedLabel": "Cash paid for acquisitions, net of cash acquired",
        "documentation": "The cash outflow associated with the acquisition of a business, net of the cash acquired from the purchase."
       }
      }
     },
     "auth_ref": [
      "r15"
     ]
    },
    "us-gaap_PaymentsToAcquireInvestments": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "PaymentsToAcquireInvestments",
     "crdr": "credit",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Payments to Acquire Investments",
        "negatedLabel": "Payments for investments",
        "documentation": "The cash outflow associated with the purchase of all investments (debt, security, other) during the period."
       }
      }
     },
     "auth_ref": [
      "r72"
     ]
    },
    "us-gaap_PaymentsToAcquirePropertyPlantAndEquipment": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "PaymentsToAcquirePropertyPlantAndEquipment",
     "crdr": "credit",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Payments to Acquire Property, Plant, and Equipment",
        "negatedLabel": "Purchases of property and equipment",
        "documentation": "The cash outflow associated with the acquisition of long-lived, physical assets that are used in the normal conduct of business to produce goods and services and not intended for resale; includes cash outflows to pay for construction of self-constructed assets."
       }
      }
     },
     "auth_ref": [
      "r73"
     ]
    },
    "ecd_PeerGroupIssuersFnTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "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": [
      "r768"
     ]
    },
    "ecd_PeerGroupTotalShareholderRtnAmt": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "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": [
      "r768"
     ]
    },
    "ecd_PeoActuallyPaidCompAmt": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "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": [
      "r760"
     ]
    },
    "ecd_PeoMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "PeoMember",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "PEO [Member]",
        "terseLabel": "PEO"
       }
      }
     },
     "auth_ref": [
      "r777"
     ]
    },
    "ecd_PeoName": {
     "xbrltype": "normalizedStringItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "PeoName",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "PEO Name",
        "terseLabel": "PEO Name"
       }
      }
     },
     "auth_ref": [
      "r770"
     ]
    },
    "ecd_PeoTotalCompAmt": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "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": [
      "r759"
     ]
    },
    "fix_PercentageOfBusinessWhichHasRequiredBonds": {
     "xbrltype": "percentItemType",
     "nsuri": "http://www.comfortsystemsusa.com/20240930",
     "localname": "PercentageOfBusinessWhichHasRequiredBonds",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureCommitmentsAndContingenciesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Represents the percentage of business which has required bonds.",
        "label": "Percentage of Business which has Required Bonds",
        "terseLabel": "Percentage of business which has required bonds"
       }
      }
     },
     "auth_ref": []
    },
    "fix_PercentageOfRevenueFromContractWithCustomer": {
     "xbrltype": "percentItemType",
     "nsuri": "http://www.comfortsystemsusa.com/20240930",
     "localname": "PercentageOfRevenueFromContractWithCustomer",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureRevenueFromContractsWithCustomersDisaggregationOfRevenueDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The percentage of revenue from contract with customers.",
        "label": "Percentage of Revenue from Contract With Customer",
        "terseLabel": "Percentage of revenue from contract with customer (as a percent)"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_PlanNameAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "PlanNameAxis",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureStockholdersEquityIncentiveAndOtherDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Plan Name [Axis]",
        "documentation": "Information by plan name for share-based payment arrangement."
       }
      }
     },
     "auth_ref": [
      "r878",
      "r879",
      "r880",
      "r881",
      "r882",
      "r883",
      "r884",
      "r885",
      "r886",
      "r887",
      "r888",
      "r889",
      "r890",
      "r891",
      "r892",
      "r893",
      "r894",
      "r895",
      "r896",
      "r897",
      "r898",
      "r899",
      "r900",
      "r901",
      "r902",
      "r903"
     ]
    },
    "us-gaap_PlanNameDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "PlanNameDomain",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureStockholdersEquityIncentiveAndOtherDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Plan Name [Domain]",
        "documentation": "Plan name for share-based payment arrangement."
       }
      }
     },
     "auth_ref": [
      "r878",
      "r879",
      "r880",
      "r881",
      "r882",
      "r883",
      "r884",
      "r885",
      "r886",
      "r887",
      "r888",
      "r889",
      "r890",
      "r891",
      "r892",
      "r893",
      "r894",
      "r895",
      "r896",
      "r897",
      "r898",
      "r899",
      "r900",
      "r901",
      "r902",
      "r903"
     ]
    },
    "ecd_PnsnAdjsPrrSvcCstMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "PnsnAdjsPrrSvcCstMember",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Pension Adjustments Prior Service Cost [Member]",
        "terseLabel": "Pension Adjustments Prior Service Cost"
       }
      }
     },
     "auth_ref": [
      "r761"
     ]
    },
    "ecd_PnsnAdjsSvcCstMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "PnsnAdjsSvcCstMember",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Pension Adjustments Service Cost [Member]",
        "terseLabel": "Pension Adjustments Service Cost"
       }
      }
     },
     "auth_ref": [
      "r805"
     ]
    },
    "ecd_PnsnBnftsAdjFnTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "PnsnBnftsAdjFnTextBlock",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Pension Benefits Adjustments, Footnote [Text Block]",
        "terseLabel": "Pension Benefits Adjustments, Footnote"
       }
      }
     },
     "auth_ref": [
      "r760"
     ]
    },
    "us-gaap_PortionAtFairValueFairValueDisclosureMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "PortionAtFairValueFairValueDisclosureMember",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureFairValueMeasurementsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Portion at Fair Value Measurement [Member]",
        "documentation": "Measured at fair value for financial reporting purposes."
       }
      }
     },
     "auth_ref": [
      "r492"
     ]
    },
    "us-gaap_PreferredStockParOrStatedValuePerShare": {
     "xbrltype": "perShareItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "PreferredStockParOrStatedValuePerShare",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedBalanceSheetsParenthetical"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Preferred Stock, Par or Stated Value Per Share",
        "terseLabel": "Preferred stock, par value (in dollars 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": [
      "r56",
      "r351"
     ]
    },
    "us-gaap_PreferredStockSharesAuthorized": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "PreferredStockSharesAuthorized",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedBalanceSheetsParenthetical"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Preferred Stock, Shares Authorized",
        "terseLabel": "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": [
      "r56",
      "r595"
     ]
    },
    "us-gaap_PreferredStockSharesIssued": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "PreferredStockSharesIssued",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedBalanceSheetsParenthetical"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Preferred Stock, Shares Issued",
        "terseLabel": "Preferred stock, shares issued",
        "documentation": "Number of shares issued for nonredeemable preferred shares and preferred shares redeemable solely at option of issuer. Includes, but is not limited to, preferred shares issued, repurchased, and held as treasury shares. Excludes preferred shares classified as debt."
       }
      }
     },
     "auth_ref": [
      "r56",
      "r351"
     ]
    },
    "us-gaap_PreferredStockSharesOutstanding": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "PreferredStockSharesOutstanding",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedBalanceSheetsParenthetical"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Preferred Stock, Shares Outstanding",
        "terseLabel": "Preferred stock, shares outstanding",
        "documentation": "Aggregate share number for all nonredeemable preferred stock (or preferred stock redeemable solely at the option of the issuer) held by stockholders. Does not include preferred shares that have been repurchased."
       }
      }
     },
     "auth_ref": [
      "r56",
      "r595",
      "r613",
      "r961",
      "r962"
     ]
    },
    "us-gaap_PreferredStockValue": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "PreferredStockValue",
     "crdr": "credit",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Preferred Stock, Value, Issued",
        "verboseLabel": "Preferred stock, $.01 par, 5,000,000 shares authorized, none issued and outstanding",
        "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": [
      "r56",
      "r540",
      "r701"
     ]
    },
    "us-gaap_PrepaidExpenseAndOtherAssetsCurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "PrepaidExpenseAndOtherAssetsCurrent",
     "crdr": "debit",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Prepaid Expense and Other Assets, Current",
        "terseLabel": "Prepaid expenses and other",
        "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": [
      "r813"
     ]
    },
    "us-gaap_ProceedsFromLongTermLinesOfCredit": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ProceedsFromLongTermLinesOfCredit",
     "crdr": "debit",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Proceeds from Long-Term Lines of Credit",
        "terseLabel": "Proceeds from revolving credit facility",
        "documentation": "The cash inflow 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 maturities due beyond one year or the operating cycle, if longer."
       }
      }
     },
     "auth_ref": [
      "r16"
     ]
    },
    "us-gaap_ProceedsFromOtherDebt": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ProceedsFromOtherDebt",
     "crdr": "debit",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Proceeds from Other Debt",
        "terseLabel": "Proceeds from other debt",
        "documentation": "Amount of cash inflow from debt classified as other."
       }
      }
     },
     "auth_ref": [
      "r16"
     ]
    },
    "us-gaap_ProceedsFromSaleOfPropertyPlantAndEquipment": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ProceedsFromSaleOfPropertyPlantAndEquipment",
     "crdr": "debit",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Proceeds from Sale of Property, Plant, and Equipment",
        "terseLabel": "Proceeds from sales of property and equipment",
        "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": [
      "r71"
     ]
    },
    "us-gaap_ProceedsFromStockOptionsExercised": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ProceedsFromStockOptionsExercised",
     "crdr": "debit",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Proceeds from Stock Options Exercised",
        "terseLabel": "Proceeds from exercise of options",
        "documentation": "Amount of cash inflow from exercise of option under share-based payment arrangement."
       }
      }
     },
     "auth_ref": [
      "r3",
      "r13"
     ]
    },
    "srt_ProductOrServiceAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/srt/2024",
     "localname": "ProductOrServiceAxis",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureRevenueFromContractsWithCustomersDisaggregationOfRevenueDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Product and Service [Axis]",
        "documentation": "Information by product and service, or group of similar products and similar services."
       }
      }
     },
     "auth_ref": [
      "r118",
      "r119",
      "r120",
      "r121",
      "r122",
      "r123",
      "r133",
      "r233",
      "r528",
      "r562",
      "r563",
      "r564",
      "r565",
      "r566",
      "r567",
      "r568",
      "r649",
      "r675",
      "r702",
      "r704",
      "r705",
      "r708",
      "r709",
      "r810",
      "r868",
      "r869",
      "r877",
      "r929",
      "r931",
      "r932",
      "r933",
      "r934",
      "r935",
      "r936",
      "r937",
      "r938",
      "r939",
      "r940",
      "r941",
      "r942",
      "r943",
      "r944",
      "r945",
      "r946",
      "r947",
      "r948",
      "r949",
      "r950",
      "r951",
      "r952",
      "r953",
      "r954",
      "r955",
      "r956",
      "r958",
      "r959"
     ]
    },
    "srt_ProductsAndServicesDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/srt/2024",
     "localname": "ProductsAndServicesDomain",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureRevenueFromContractsWithCustomersDisaggregationOfRevenueDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Product and Service [Domain]",
        "documentation": "Product or service, or a group of similar products or similar services."
       }
      }
     },
     "auth_ref": [
      "r118",
      "r119",
      "r120",
      "r121",
      "r122",
      "r123",
      "r133",
      "r233",
      "r528",
      "r562",
      "r563",
      "r564",
      "r565",
      "r566",
      "r567",
      "r568",
      "r649",
      "r675",
      "r702",
      "r704",
      "r705",
      "r708",
      "r709",
      "r810",
      "r868",
      "r869",
      "r877",
      "r929",
      "r931",
      "r932",
      "r933",
      "r934",
      "r935",
      "r936",
      "r937",
      "r938",
      "r939",
      "r940",
      "r941",
      "r942",
      "r943",
      "r944",
      "r945",
      "r946",
      "r947",
      "r948",
      "r949",
      "r950",
      "r951",
      "r952",
      "r953",
      "r954",
      "r955",
      "r956",
      "r958",
      "r959"
     ]
    },
    "us-gaap_ProfitLoss": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ProfitLoss",
     "crdr": "credit",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfCashFlows",
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfStockholdersEquity"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Net Income (Loss), Including Portion Attributable to Noncontrolling Interest",
        "terseLabel": "Net income",
        "verboseLabel": "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": [
      "r138",
      "r151",
      "r152",
      "r161",
      "r166",
      "r171",
      "r177",
      "r180",
      "r181",
      "r242",
      "r312",
      "r313",
      "r315",
      "r316",
      "r317",
      "r318",
      "r319",
      "r321",
      "r322",
      "r443",
      "r452",
      "r453",
      "r456",
      "r457",
      "r469",
      "r494",
      "r534",
      "r546",
      "r582",
      "r615",
      "r631",
      "r632",
      "r689",
      "r690",
      "r719",
      "r814",
      "r872"
     ]
    },
    "us-gaap_PropertyPlantAndEquipmentNet": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "PropertyPlantAndEquipmentNet",
     "crdr": "debit",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Property, Plant and Equipment, Net",
        "terseLabel": "PROPERTY AND EQUIPMENT, NET",
        "documentation": "Amount after accumulated depreciation, depletion and amortization of physical assets used in the normal conduct of business to produce goods and services and not intended for resale. Examples include, but are not limited to, land, buildings, machinery and equipment, office equipment, and furniture and fixtures."
       }
      }
     },
     "auth_ref": [
      "r8",
      "r517",
      "r535",
      "r544",
      "r701"
     ]
    },
    "us-gaap_ProvisionForDoubtfulAccounts": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ProvisionForDoubtfulAccounts",
     "crdr": "debit",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Accounts Receivable, Credit Loss Expense (Reversal)",
        "terseLabel": "Bad debt expense",
        "documentation": "Amount of expense (reversal of expense) for expected credit loss on accounts receivable."
       }
      }
     },
     "auth_ref": [
      "r159",
      "r251"
     ]
    },
    "ecd_PvpTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "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": [
      "r758"
     ]
    },
    "ecd_PvpTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "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": [
      "r758"
     ]
    },
    "srt_RangeAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/srt/2024",
     "localname": "RangeAxis",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsAcquiredIntangibleAssetsDetails",
      "http://www.comfortsystemsusa.com/role/DisclosureCommitmentsAndContingenciesDetails",
      "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsNotesToFormerOwnersDetails",
      "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsOtherDetails",
      "http://www.comfortsystemsusa.com/role/DisclosureFairValueMeasurementsDetails",
      "http://www.comfortsystemsusa.com/role/DisclosureLeasesDetails",
      "http://www.comfortsystemsusa.com/role/DisclosureRevenueFromContractsWithCustomersRemainingPerformanceObligationsDetails",
      "http://www.comfortsystemsusa.com/role/DisclosureStockholdersEquityIncentiveAndOtherDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Statistical Measurement [Axis]",
        "documentation": "Information by statistical measurement. Includes, but is not limited to, minimum, maximum, weighted average, arithmetic average, and median."
       }
      }
     },
     "auth_ref": [
      "r113",
      "r114",
      "r115",
      "r116",
      "r117",
      "r134",
      "r135",
      "r305",
      "r306",
      "r307",
      "r308",
      "r388",
      "r395",
      "r422",
      "r423",
      "r424",
      "r426",
      "r475",
      "r523",
      "r524",
      "r525",
      "r569",
      "r571",
      "r578",
      "r585",
      "r586",
      "r638",
      "r639",
      "r640",
      "r641",
      "r642",
      "r645",
      "r646",
      "r664",
      "r673",
      "r687",
      "r695",
      "r696",
      "r697",
      "r698",
      "r704",
      "r712",
      "r863",
      "r874",
      "r909",
      "r923",
      "r924",
      "r925",
      "r926",
      "r927"
     ]
    },
    "srt_RangeMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/srt/2024",
     "localname": "RangeMember",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsAcquiredIntangibleAssetsDetails",
      "http://www.comfortsystemsusa.com/role/DisclosureCommitmentsAndContingenciesDetails",
      "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsNotesToFormerOwnersDetails",
      "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsOtherDetails",
      "http://www.comfortsystemsusa.com/role/DisclosureFairValueMeasurementsDetails",
      "http://www.comfortsystemsusa.com/role/DisclosureLeasesDetails",
      "http://www.comfortsystemsusa.com/role/DisclosureRevenueFromContractsWithCustomersRemainingPerformanceObligationsDetails",
      "http://www.comfortsystemsusa.com/role/DisclosureStockholdersEquityIncentiveAndOtherDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Statistical Measurement [Domain]",
        "documentation": "Statistical measurement. Includes, but is not limited to, minimum, maximum, weighted average, arithmetic average, and median."
       }
      }
     },
     "auth_ref": [
      "r113",
      "r114",
      "r115",
      "r116",
      "r117",
      "r134",
      "r135",
      "r305",
      "r306",
      "r307",
      "r308",
      "r388",
      "r395",
      "r422",
      "r423",
      "r424",
      "r426",
      "r475",
      "r523",
      "r524",
      "r525",
      "r569",
      "r571",
      "r578",
      "r585",
      "r586",
      "r638",
      "r639",
      "r640",
      "r641",
      "r642",
      "r645",
      "r646",
      "r664",
      "r673",
      "r687",
      "r695",
      "r696",
      "r697",
      "r698",
      "r704",
      "r712",
      "r863",
      "r874",
      "r909",
      "r923",
      "r924",
      "r925",
      "r926",
      "r927"
     ]
    },
    "ecd_RecoveryOfErrCompDisclosureLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "RecoveryOfErrCompDisclosureLineItems",
     "lang": {
      "en-us": {
       "role": {
        "label": "Recovery of Erroneously Awarded Compensation Disclosure [Line Items]",
        "terseLabel": "Recovery of Erroneously Awarded Compensation Disclosure"
       }
      }
     },
     "auth_ref": [
      "r726",
      "r736",
      "r746",
      "r778"
     ]
    },
    "fix_RenewableServiceMaintenanceAgreementsTerm": {
     "xbrltype": "durationItemType",
     "nsuri": "http://www.comfortsystemsusa.com/20240930",
     "localname": "RenewableServiceMaintenanceAgreementsTerm",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureRevenueFromContractsWithCustomersRemainingPerformanceObligationsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The term of renewable service maintenance agreements in years.",
        "label": "Renewable Service Maintenance Agreements Term",
        "terseLabel": "The term of the renewable service maintenance agreements (in years)"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_RepaymentsOfLongTermLinesOfCredit": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "RepaymentsOfLongTermLinesOfCredit",
     "crdr": "credit",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Repayments of Long-Term Lines of Credit",
        "negatedLabel": "Payments on revolving credit facility",
        "documentation": "The cash outflow for the settlement of obligation drawn 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 maturities due beyond one year or the operating cycle, if longer."
       }
      }
     },
     "auth_ref": [
      "r75"
     ]
    },
    "us-gaap_RepaymentsOfOtherDebt": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "RepaymentsOfOtherDebt",
     "crdr": "credit",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Repayments of Other Debt",
        "negatedLabel": "Payments on other debt",
        "documentation": "Amount of cash outflow for the payment of debt classified as other."
       }
      }
     },
     "auth_ref": [
      "r75"
     ]
    },
    "ecd_RestatementDateAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "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": [
      "r727",
      "r737",
      "r747",
      "r779"
     ]
    },
    "ecd_RestatementDeterminationDate": {
     "xbrltype": "dateItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "RestatementDeterminationDate",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Restatement Determination Date",
        "terseLabel": "Restatement Determination Date"
       }
      }
     },
     "auth_ref": [
      "r728",
      "r738",
      "r748",
      "r780"
     ]
    },
    "ecd_RestatementDoesNotRequireRecoveryTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "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": [
      "r735",
      "r745",
      "r755",
      "r787"
     ]
    },
    "fix_RetailRestaurantsAndEntertainmentMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.comfortsystemsusa.com/20240930",
     "localname": "RetailRestaurantsAndEntertainmentMember",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureRevenueFromContractsWithCustomersDisaggregationOfRevenueDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "This member stands for retail, restaurants and entertainment",
        "label": "Retail, Restaurants and Entertainment"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_RetainedEarningsAccumulatedDeficit": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "RetainedEarningsAccumulatedDeficit",
     "crdr": "credit",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Retained Earnings (Accumulated Deficit)",
        "terseLabel": "Retained earnings",
        "documentation": "Amount of accumulated undistributed earnings (deficit)."
       }
      }
     },
     "auth_ref": [
      "r59",
      "r86",
      "r542",
      "r576",
      "r577",
      "r581",
      "r596",
      "r701"
     ]
    },
    "us-gaap_RetainedEarningsMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "RetainedEarningsMember",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfStockholdersEquity"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Retained Earnings [Member]",
        "terseLabel": "Retained Earnings",
        "documentation": "Accumulated undistributed earnings (deficit)."
       }
      }
     },
     "auth_ref": [
      "r136",
      "r168",
      "r169",
      "r170",
      "r172",
      "r177",
      "r179",
      "r181",
      "r243",
      "r244",
      "r290",
      "r437",
      "r438",
      "r440",
      "r441",
      "r442",
      "r444",
      "r451",
      "r452",
      "r460",
      "r462",
      "r463",
      "r465",
      "r467",
      "r502",
      "r504",
      "r573",
      "r575",
      "r583",
      "r961"
     ]
    },
    "us-gaap_RevenueFromContractWithCustomerAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "RevenueFromContractWithCustomerAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "Revenue from Contracts with Customers"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_RevenueFromContractWithCustomerPolicyTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "RevenueFromContractWithCustomerPolicyTextBlock",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureSummaryOfSignificantAccountingPoliciesAndEstimatesPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Revenue from Contract with Customer [Policy Text Block]",
        "terseLabel": "Revenue Recognition",
        "documentation": "Disclosure of accounting policy for revenue from contract with customer."
       }
      }
     },
     "auth_ref": [
      "r111",
      "r375",
      "r376",
      "r377",
      "r378",
      "r379",
      "r380",
      "r381",
      "r382",
      "r648"
     ]
    },
    "us-gaap_RevenueFromContractWithCustomerTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "RevenueFromContractWithCustomerTextBlock",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureRevenueFromContractsWithCustomers"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Revenue from Contract with Customer [Text Block]",
        "verboseLabel": "Revenue from Contracts with Customers",
        "documentation": "The entire disclosure of revenue from contract with customer to transfer good or service and to transfer nonfinancial asset. Includes, but is not limited to, disaggregation of revenue, credit loss recognized from contract with customer, judgment and change in judgment related to contract with customer, and asset recognized from cost incurred to obtain or fulfill contract with customer. Excludes insurance and lease contracts."
       }
      }
     },
     "auth_ref": [
      "r111",
      "r367",
      "r368",
      "r369",
      "r370",
      "r371",
      "r372",
      "r373",
      "r374",
      "r387"
     ]
    },
    "us-gaap_RevenuePracticalExpedientRemainingPerformanceObligation": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "RevenuePracticalExpedientRemainingPerformanceObligation",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureRevenueFromContractsWithCustomersRemainingPerformanceObligationsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Revenue, Remaining Performance Obligation, Optional Exemption, Performance Obligation [true false]",
        "terseLabel": "Practical Expedient",
        "documentation": "Indicates (true false) whether optional exemption was applied not to disclose amount of transaction price allocated to and explanation of expected timing of revenue recognition for remaining performance obligation, when contract has expected duration of one year or less or right to consideration corresponds directly to performance completed."
       }
      }
     },
     "auth_ref": [
      "r374"
     ]
    },
    "us-gaap_RevenueRemainingPerformanceObligation": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "RevenueRemainingPerformanceObligation",
     "crdr": "credit",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureRevenueFromContractsWithCustomersRemainingPerformanceObligationsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Revenue, Remaining Performance Obligation, Amount",
        "terseLabel": "Remaining performance obligations",
        "documentation": "Amount of transaction price allocated to performance obligation that has not been recognized as revenue."
       }
      }
     },
     "auth_ref": [
      "r106"
     ]
    },
    "us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionLineItems",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureRevenueFromContractsWithCustomersRemainingPerformanceObligationsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction [Line Items]",
        "terseLabel": "Remaining Performance Obligations",
        "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_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1": {
     "xbrltype": "durationItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureRevenueFromContractsWithCustomersRemainingPerformanceObligationsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction, Period",
        "terseLabel": "Expected timing of performance obligations",
        "documentation": "Period in which remaining performance obligation is expected to be recognized as revenue, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents reported fact of one year, five months, and thirteen days."
       }
      }
     },
     "auth_ref": [
      "r107"
     ]
    },
    "us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureRevenueFromContractsWithCustomersRemainingPerformanceObligationsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction, Start Date [Axis]",
        "documentation": "Start date of time band for expected timing of satisfaction of remaining performance obligation, in YYYY-MM-DD format."
       }
      }
     },
     "auth_ref": [
      "r107"
     ]
    },
    "us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionTable",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureRevenueFromContractsWithCustomersRemainingPerformanceObligationsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction [Table]",
        "documentation": "Disclosure of information about expected timing for satisfying remaining performance obligation."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_RevenueRemainingPerformanceObligationPercentage": {
     "xbrltype": "percentItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "RevenueRemainingPerformanceObligationPercentage",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureRevenueFromContractsWithCustomersRemainingPerformanceObligationsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Revenue, Remaining Performance Obligation, Percentage",
        "terseLabel": "Expected percentage of remaining performance obligations",
        "documentation": "Percentage of remaining performance obligation to total remaining performance obligation not recognized as revenue."
       }
      }
     },
     "auth_ref": [
      "r807"
     ]
    },
    "us-gaap_Revenues": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "Revenues",
     "crdr": "credit",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsDetails",
      "http://www.comfortsystemsusa.com/role/DisclosureRevenueFromContractsWithCustomersDisaggregationOfRevenueDetails",
      "http://www.comfortsystemsusa.com/role/DisclosureSegmentInformationDetails",
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfOperations"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Revenues",
        "terseLabel": "REVENUE",
        "verboseLabel": "Revenue",
        "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": [
      "r96",
      "r97",
      "r157",
      "r166",
      "r202",
      "r209",
      "r210",
      "r224",
      "r230",
      "r233",
      "r235",
      "r236",
      "r242",
      "r312",
      "r313",
      "r315",
      "r316",
      "r317",
      "r318",
      "r319",
      "r321",
      "r322",
      "r494",
      "r534",
      "r659",
      "r872"
     ]
    },
    "us-gaap_RevolvingCreditFacilityMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "RevolvingCreditFacilityMember",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsOtherDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "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": []
    },
    "us-gaap_RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability",
     "crdr": "debit",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureLeasesMaturitiesOfLeaseLiabilitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Right-of-Use Asset Obtained in Exchange for Operating Lease Liability",
        "terseLabel": "Operating lease right-of-use assets obtained in exchange for lease liabilities",
        "documentation": "Amount of increase in right-of-use asset obtained in exchange for operating lease liability."
       }
      }
     },
     "auth_ref": [
      "r513",
      "r700"
     ]
    },
    "ecd_Rule10b51ArrAdoptedFlag": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "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": [
      "r796"
     ]
    },
    "ecd_Rule10b51ArrTrmntdFlag": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "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": [
      "r796"
     ]
    },
    "fix_ScheduleOfAdditionalMarginsTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://www.comfortsystemsusa.com/20240930",
     "localname": "ScheduleOfAdditionalMarginsTableTextBlock",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Tabular disclosure of the additional margins added to the reference rate to compute the variable rate on the debt instrument.",
        "label": "Schedule of Additional Margins [Table Text Block]",
        "terseLabel": "Summary of additional margins"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ScheduleOfBusinessAcquisitionsByAcquisitionTable",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsDetails",
      "http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsOtherAcquisitionsDetails",
      "http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Schedule of Business Acquisitions, by Acquisition [Table]",
        "documentation": "Disclosure of information about business combination. Includes, but is not limited to, recognized asset and liability."
       }
      }
     },
     "auth_ref": [
      "r34",
      "r35",
      "r445"
     ]
    },
    "us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ScheduleOfBusinessAcquisitionsByAcquisitionTextBlock",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Schedule of Business Acquisitions, by Acquisition [Table Text Block]",
        "terseLabel": "Schedule of acquisition date fair value of consideration transferred and the acquisition date fair value of the identifiable assets acquired and liabilities assumed, including an amount for goodwill",
        "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": [
      "r34",
      "r35"
     ]
    },
    "us-gaap_ScheduleOfDebtTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ScheduleOfDebtTableTextBlock",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Schedule of Debt [Table Text Block]",
        "terseLabel": "Schedule of components of debt obligations",
        "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_ScheduleOfFairValueAssetsAndLiabilitiesMeasuredOnRecurringBasisTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ScheduleOfFairValueAssetsAndLiabilitiesMeasuredOnRecurringBasisTableTextBlock",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureFairValueMeasurementsTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Schedule of Fair Value, Assets and Liabilities Measured on Recurring Basis [Table Text Block]",
        "terseLabel": "Summary of fair values and levels within the fair value hierarchy in which the fair value measurements fall for assets and liabilities measured on a recurring basis",
        "documentation": "Tabular disclosure of assets and liabilities, including [financial] instruments measured at fair value that are classified in stockholders' equity, if any, that are measured at fair value on a recurring basis. The disclosures contemplated herein include the fair value measurements at the reporting date 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 (Level 1), significant other observable inputs (Level 2), and significant unobservable inputs (Level 3)."
       }
      }
     },
     "auth_ref": [
      "r906",
      "r907"
     ]
    },
    "us-gaap_ScheduleOfFiniteLivedIntangibleAssetsAcquiredAsPartOfBusinessCombinationTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ScheduleOfFiniteLivedIntangibleAssetsAcquiredAsPartOfBusinessCombinationTextBlock",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Schedule of Finite-Lived Intangible Assets Acquired as Part of Business Combination [Table Text Block]",
        "terseLabel": "Schedule of acquired intangible assets",
        "documentation": "Tabular disclosure of finite-lived intangible assets acquired as part of a business combination or through an asset purchase, by major class and in total, including the value of the asset acquired, any significant residual value (the expected value of the asset at the end of its useful life) and the weighted-average amortization period."
       }
      }
     },
     "auth_ref": [
      "r25"
     ]
    },
    "us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ScheduleOfFiniteLivedIntangibleAssetsTable",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureGoodwillAndIdentifiableIntangibleAssetsNetIdentifiableIntangibleAssetsNetDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Intangible Asset, Finite-Lived [Table]",
        "documentation": "Disclosure of information about finite-lived intangible asset. Excludes indefinite-lived intangible asset."
       }
      }
     },
     "auth_ref": [
      "r277",
      "r284",
      "r287",
      "r288",
      "r289",
      "r529",
      "r647",
      "r666"
     ]
    },
    "us-gaap_ScheduleOfGoodwillTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ScheduleOfGoodwillTable",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureGoodwillAndIdentifiableIntangibleAssetsNetChangesInCarryingAmountOfGoodwillDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Goodwill [Table]",
        "documentation": "Disclosure of information about goodwill, including, but not limited to, change from acquisition, sale, impairment, and other reason."
       }
      }
     },
     "auth_ref": [
      "r266",
      "r267",
      "r268",
      "r269",
      "r270",
      "r271",
      "r272",
      "r273",
      "r274",
      "r275",
      "r276",
      "r665"
     ]
    },
    "us-gaap_ScheduleOfGoodwillTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ScheduleOfGoodwillTextBlock",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureGoodwillAndIdentifiableIntangibleAssetsNetTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Schedule of Goodwill [Table Text Block]",
        "terseLabel": "Schedule of changes in the carrying amount of goodwill",
        "documentation": "Tabular disclosure of goodwill by reportable segment and in total which includes a rollforward schedule."
       }
      }
     },
     "auth_ref": [
      "r665",
      "r834",
      "r835",
      "r836",
      "r837",
      "r838",
      "r839",
      "r840",
      "r841",
      "r842",
      "r843",
      "r844"
     ]
    },
    "fix_ScheduleOfLeaseAssetsAndLiabilitiesTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://www.comfortsystemsusa.com/20240930",
     "localname": "ScheduleOfLeaseAssetsAndLiabilitiesTableTextBlock",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureLeasesTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Tabular disclosure of lease assets and liabilities.",
        "label": "Schedule of Lease Assets and Liabilities [Table Text Block]",
        "terseLabel": "Schedule of operating lease assets and liabilities"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ScheduleOfMaturitiesOfLongTermDebtTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ScheduleOfMaturitiesOfLongTermDebtTableTextBlock",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Schedule of Maturities of Long-Term Debt [Table Text Block]",
        "terseLabel": "Schedule of future principal payments of notes to former owners",
        "documentation": "Tabular disclosure of maturity and sinking fund requirement for long-term debt."
       }
      }
     },
     "auth_ref": [
      "r9"
     ]
    },
    "us-gaap_ScheduleOfSegmentReportingInformationBySegmentTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ScheduleOfSegmentReportingInformationBySegmentTable",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureSegmentInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Schedule of Segment Reporting Information, by Segment [Table]",
        "documentation": "Disclosure of information about profit (loss) and total assets by reportable segment."
       }
      }
     },
     "auth_ref": [
      "r22",
      "r23",
      "r24"
     ]
    },
    "us-gaap_ScheduleOfSegmentReportingInformationBySegmentTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ScheduleOfSegmentReportingInformationBySegmentTextBlock",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureSegmentInformationTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Schedule of Segment Reporting Information, by Segment [Table Text Block]",
        "terseLabel": "Summary of information about reportable segments",
        "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": [
      "r22",
      "r23",
      "r24"
     ]
    },
    "us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureStockholdersEquityIncentiveAndOtherDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Schedule of Share-Based Compensation Arrangements by Share-Based Payment Award [Table]",
        "documentation": "Disclosure of information about share-based payment arrangement."
       }
      }
     },
     "auth_ref": [
      "r396",
      "r398",
      "r400",
      "r401",
      "r402",
      "r403",
      "r404",
      "r405",
      "r406",
      "r407",
      "r408",
      "r409",
      "r410",
      "r411",
      "r412",
      "r413",
      "r414",
      "r415",
      "r416",
      "r417",
      "r418",
      "r419",
      "r420",
      "r421",
      "r422",
      "r423",
      "r424",
      "r425"
     ]
    },
    "fix_ScheduleOfSupplementalInformationRelatedToLeasesTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://www.comfortsystemsusa.com/20240930",
     "localname": "ScheduleOfSupplementalInformationRelatedToLeasesTableTextBlock",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureLeasesTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Tabular disclosure of supplemental information related to leases.",
        "label": "Schedule of Supplemental Information Related to Leases [Table Text Block]",
        "terseLabel": "Schedule of supplemental information related to leases"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ScheduleOfWeightedAverageNumberOfSharesTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ScheduleOfWeightedAverageNumberOfSharesTableTextBlock",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureStockholdersEquityTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Schedule of Weighted Average Number of Shares [Table Text Block]",
        "terseLabel": "Reconciliation of number of shares outstanding with the number of shares used in computing basic and diluted earnings per share",
        "documentation": "Tabular disclosure of the weighted average number of shares used in calculating basic net earnings per share (or unit) and diluted earnings per share (or unit)."
       }
      }
     },
     "auth_ref": [
      "r18"
     ]
    },
    "us-gaap_ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureGoodwillAndIdentifiableIntangibleAssetsNetTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Schedule of Finite-Lived Intangible Assets, Future Amortization Expense [Table Text Block]",
        "terseLabel": "Schedule of future amortization expense of identifiable intangible assets",
        "documentation": "Tabular disclosure of the amount of amortization expense expected to be recorded in succeeding fiscal years for finite-lived intangible assets."
       }
      }
     },
     "auth_ref": [
      "r666",
      "r853"
     ]
    },
    "us-gaap_SecuredOvernightFinancingRateSofrMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "SecuredOvernightFinancingRateSofrMember",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsOtherDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Secured Overnight Financing Rate (SOFR) [Member]",
        "terseLabel": "SOFR",
        "documentation": "Interest rate at which bank can borrow U.S. dollar overnight while posting U.S. Treasury bond as collateral."
       }
      }
     },
     "auth_ref": [
      "r904"
     ]
    },
    "dei_Security12bTitle": {
     "xbrltype": "securityTitleItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "Security12bTitle",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DocumentDocumentAndEntityInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Title of 12(b) Security",
        "documentation": "Title of a 12(b) registered security."
       }
      }
     },
     "auth_ref": [
      "r721"
     ]
    },
    "dei_SecurityExchangeName": {
     "xbrltype": "edgarExchangeCodeItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "SecurityExchangeName",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DocumentDocumentAndEntityInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Security Exchange Name",
        "documentation": "Name of the Exchange on which a security is registered."
       }
      }
     },
     "auth_ref": [
      "r723"
     ]
    },
    "us-gaap_SegmentDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "SegmentDomain",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureGoodwillAndIdentifiableIntangibleAssetsNetChangesInCarryingAmountOfGoodwillDetails",
      "http://www.comfortsystemsusa.com/role/DisclosureRevenueFromContractsWithCustomersDisaggregationOfRevenueDetails",
      "http://www.comfortsystemsusa.com/role/DisclosureSegmentInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "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": [
      "r96",
      "r97",
      "r98",
      "r99",
      "r202",
      "r205",
      "r208",
      "r209",
      "r210",
      "r211",
      "r212",
      "r213",
      "r214",
      "r215",
      "r216",
      "r217",
      "r218",
      "r219",
      "r221",
      "r222",
      "r223",
      "r224",
      "r225",
      "r226",
      "r227",
      "r228",
      "r230",
      "r231",
      "r232",
      "r236",
      "r266",
      "r267",
      "r268",
      "r269",
      "r270",
      "r271",
      "r272",
      "r273",
      "r274",
      "r289",
      "r300",
      "r301",
      "r551",
      "r552",
      "r553",
      "r554",
      "r555",
      "r556",
      "r557",
      "r558",
      "r559",
      "r560",
      "r561",
      "r656",
      "r659",
      "r660",
      "r665",
      "r706",
      "r929",
      "r931",
      "r932",
      "r933",
      "r934",
      "r935",
      "r936",
      "r937",
      "r938",
      "r939",
      "r940",
      "r941",
      "r942",
      "r943",
      "r944",
      "r945",
      "r946",
      "r947",
      "r948",
      "r949",
      "r950",
      "r951",
      "r952",
      "r953",
      "r954",
      "r955",
      "r956",
      "r958",
      "r959"
     ]
    },
    "us-gaap_SegmentReportingAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "SegmentReportingAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "Segment Information"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_SegmentReportingDisclosureTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "SegmentReportingDisclosureTextBlock",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureSegmentInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Segment Reporting Disclosure [Text Block]",
        "terseLabel": "Segment Information",
        "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": [
      "r99",
      "r202",
      "r204",
      "r205",
      "r206",
      "r207",
      "r208",
      "r220",
      "r222",
      "r223",
      "r228",
      "r229",
      "r230",
      "r231",
      "r232",
      "r233",
      "r234",
      "r236",
      "r655",
      "r657",
      "r658",
      "r659",
      "r661",
      "r662",
      "r663"
     ]
    },
    "us-gaap_SegmentReportingInformationLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "SegmentReportingInformationLineItems",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureSegmentInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Segment Reporting Information [Line Items]",
        "terseLabel": "Segment Information",
        "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_SelfInsuranceReserveCurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "SelfInsuranceReserveCurrent",
     "crdr": "credit",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Self Insurance Reserve, Current",
        "terseLabel": "Accrued self-insurance",
        "documentation": "Carrying amount of accrued known and estimated losses incurred as of the balance sheet date for which no insurance coverage exists, and for which a claim has been made or is probable of being asserted, typically arising from workmen's compensation-type of incidents and personal injury to nonemployees from accidents on the entity's property that are expected to be paid within one year (or the normal operating cycle, if longer)."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_SellingGeneralAndAdministrativeExpense": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "SellingGeneralAndAdministrativeExpense",
     "crdr": "debit",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfOperations"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Selling, General and Administrative Expense",
        "terseLabel": "SELLING, GENERAL AND ADMINISTRATIVE EXPENSES",
        "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": [
      "r67"
     ]
    },
    "us-gaap_SellingGeneralAndAdministrativeExpensesMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "SellingGeneralAndAdministrativeExpensesMember",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureCommitmentsAndContingenciesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Selling, General and Administrative Expenses [Member]",
        "terseLabel": "Selling, General and Administrative Expenses",
        "documentation": "Primary financial statement caption encompassing selling, general and administrative expense."
       }
      }
     },
     "auth_ref": []
    },
    "fix_SeniorRevolvingCreditFacilityMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.comfortsystemsusa.com/20240930",
     "localname": "SeniorRevolvingCreditFacilityMember",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsOtherDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Information pertaining to the senior revolving credit facility.",
        "label": "Senior Revolving Credit Facility [Member]",
        "terseLabel": "Senior Revolving Credit Facility"
       }
      }
     },
     "auth_ref": []
    },
    "fix_ServiceCallsMaintenanceAndMonitoringMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.comfortsystemsusa.com/20240930",
     "localname": "ServiceCallsMaintenanceAndMonitoringMember",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureRevenueFromContractsWithCustomersDisaggregationOfRevenueDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "This member stands for service calls, maintenance and monitoring.",
        "label": "Service Calls, Maintenance and Monitoring"
       }
      }
     },
     "auth_ref": []
    },
    "fix_ServiceProjectsMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.comfortsystemsusa.com/20240930",
     "localname": "ServiceProjectsMember",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureRevenueFromContractsWithCustomersDisaggregationOfRevenueDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "This member stands for service projects.",
        "label": "Service Projects"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ShareBasedCompensation": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ShareBasedCompensation",
     "crdr": "debit",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Share-Based Payment Arrangement, Noncash Expense",
        "terseLabel": "Stock-based compensation",
        "documentation": "Amount of noncash expense for share-based payment arrangement."
       }
      }
     },
     "auth_ref": [
      "r6"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureStockholdersEquityIncentiveAndOtherDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award [Line Items]",
        "terseLabel": "Stockholders' Equity",
        "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": [
      "r396",
      "r398",
      "r400",
      "r401",
      "r402",
      "r403",
      "r404",
      "r405",
      "r406",
      "r407",
      "r408",
      "r409",
      "r410",
      "r411",
      "r412",
      "r413",
      "r414",
      "r415",
      "r416",
      "r417",
      "r418",
      "r419",
      "r420",
      "r421",
      "r422",
      "r423",
      "r424",
      "r425"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain",
     "presentation": [
      "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": [
      "r400",
      "r401",
      "r402",
      "r403",
      "r404",
      "r405",
      "r406",
      "r407",
      "r408",
      "r409",
      "r410",
      "r411",
      "r412",
      "r413",
      "r414",
      "r415",
      "r416",
      "r417",
      "r418",
      "r419",
      "r420",
      "r421",
      "r422",
      "r423",
      "r424",
      "r425"
     ]
    },
    "us-gaap_SharesPaidForTaxWithholdingForShareBasedCompensation": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "SharesPaidForTaxWithholdingForShareBasedCompensation",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfStockholdersEquity"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Share-Based Payment Arrangement, Shares Withheld for Tax Withholding Obligation",
        "negatedLabel": "Shares received in lieu of tax withholding on vested stock (in shares)",
        "documentation": "Number of shares used to settle grantee's tax withholding obligation for award under share-based payment arrangement."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_StatementBusinessSegmentsAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "StatementBusinessSegmentsAxis",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureGoodwillAndIdentifiableIntangibleAssetsNetChangesInCarryingAmountOfGoodwillDetails",
      "http://www.comfortsystemsusa.com/role/DisclosureRevenueFromContractsWithCustomersDisaggregationOfRevenueDetails",
      "http://www.comfortsystemsusa.com/role/DisclosureSegmentInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Segments [Axis]",
        "documentation": "Information by business segments."
       }
      }
     },
     "auth_ref": [
      "r96",
      "r97",
      "r98",
      "r99",
      "r137",
      "r202",
      "r205",
      "r208",
      "r209",
      "r210",
      "r211",
      "r212",
      "r213",
      "r214",
      "r215",
      "r216",
      "r217",
      "r218",
      "r219",
      "r221",
      "r222",
      "r223",
      "r224",
      "r225",
      "r226",
      "r227",
      "r228",
      "r230",
      "r231",
      "r232",
      "r236",
      "r266",
      "r267",
      "r268",
      "r269",
      "r270",
      "r271",
      "r272",
      "r273",
      "r274",
      "r289",
      "r292",
      "r300",
      "r301",
      "r551",
      "r552",
      "r553",
      "r554",
      "r555",
      "r556",
      "r557",
      "r558",
      "r559",
      "r560",
      "r561",
      "r656",
      "r659",
      "r660",
      "r665",
      "r706",
      "r929",
      "r931",
      "r932",
      "r933",
      "r934",
      "r935",
      "r936",
      "r937",
      "r938",
      "r939",
      "r940",
      "r941",
      "r942",
      "r943",
      "r944",
      "r945",
      "r946",
      "r947",
      "r948",
      "r949",
      "r950",
      "r951",
      "r952",
      "r953",
      "r954",
      "r955",
      "r956",
      "r958",
      "r959"
     ]
    },
    "us-gaap_StatementEquityComponentsAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "StatementEquityComponentsAxis",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfStockholdersEquity"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Equity Components [Axis]",
        "documentation": "Information by component of equity."
       }
      }
     },
     "auth_ref": [
      "r12",
      "r57",
      "r60",
      "r61",
      "r136",
      "r154",
      "r155",
      "r156",
      "r168",
      "r169",
      "r170",
      "r172",
      "r177",
      "r179",
      "r181",
      "r203",
      "r243",
      "r244",
      "r290",
      "r363",
      "r437",
      "r438",
      "r440",
      "r441",
      "r442",
      "r444",
      "r451",
      "r452",
      "r460",
      "r461",
      "r462",
      "r463",
      "r464",
      "r465",
      "r467",
      "r495",
      "r496",
      "r497",
      "r498",
      "r499",
      "r500",
      "r502",
      "r504",
      "r519",
      "r548",
      "r573",
      "r574",
      "r575",
      "r583",
      "r633"
     ]
    },
    "us-gaap_StatementLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "StatementLineItems",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsTables",
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfStockholdersEquity"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Statement [Line Items]",
        "terseLabel": "Statement",
        "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": [
      "r168",
      "r169",
      "r170",
      "r203",
      "r504",
      "r528",
      "r579",
      "r584",
      "r587",
      "r588",
      "r589",
      "r590",
      "r591",
      "r592",
      "r595",
      "r598",
      "r599",
      "r600",
      "r601",
      "r602",
      "r603",
      "r604",
      "r605",
      "r606",
      "r608",
      "r609",
      "r610",
      "r611",
      "r612",
      "r614",
      "r616",
      "r617",
      "r619",
      "r620",
      "r621",
      "r622",
      "r623",
      "r624",
      "r625",
      "r626",
      "r627",
      "r628",
      "r629",
      "r630",
      "r633",
      "r713"
     ]
    },
    "us-gaap_StatementOfCashFlowsAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "StatementOfCashFlowsAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "CONSOLIDATED STATEMENTS OF CASH FLOWS"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_StatementOfFinancialPositionAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "StatementOfFinancialPositionAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "CONSOLIDATED BALANCE SHEETS"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_StatementOfStockholdersEquityAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "StatementOfStockholdersEquityAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "CONSOLIDATED STATEMENTS OF STOCKHOLDERS' EQUITY"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_StatementTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "StatementTable",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsTables",
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfStockholdersEquity"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Statement [Table]",
        "documentation": "Disclosure of information about statement of comprehensive income, income, other comprehensive income, financial position, cash flows, and shareholders' equity."
       }
      }
     },
     "auth_ref": [
      "r168",
      "r169",
      "r170",
      "r203",
      "r238",
      "r504",
      "r528",
      "r579",
      "r584",
      "r587",
      "r588",
      "r589",
      "r590",
      "r591",
      "r592",
      "r595",
      "r598",
      "r599",
      "r600",
      "r601",
      "r602",
      "r603",
      "r604",
      "r605",
      "r606",
      "r608",
      "r609",
      "r610",
      "r611",
      "r612",
      "r614",
      "r616",
      "r617",
      "r619",
      "r620",
      "r621",
      "r622",
      "r623",
      "r624",
      "r625",
      "r626",
      "r627",
      "r628",
      "r629",
      "r630",
      "r633",
      "r713"
     ]
    },
    "ecd_StkPrcOrTsrEstimationMethodTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "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": [
      "r730",
      "r740",
      "r750",
      "r782"
     ]
    },
    "us-gaap_StockAppreciationRightsSARSMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "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_StockIssuedDuringPeriodSharebasedCompensationAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "StockIssuedDuringPeriodSharebasedCompensationAbstract",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfStockholdersEquity"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Shares Granted or Issued, Share-Based Payment Arrangement [Abstract]",
        "terseLabel": "Issuance of Stock:"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_StockIssuedDuringPeriodSharesShareBasedCompensation": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "StockIssuedDuringPeriodSharesShareBasedCompensation",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfStockholdersEquity"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Shares Issued, Shares, Share-Based Payment Arrangement, after Forfeiture",
        "terseLabel": "Issuance of restricted stock &amp; performance stock (in shares)",
        "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": [
      "r12",
      "r56",
      "r57",
      "r86"
     ]
    },
    "us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "StockIssuedDuringPeriodSharesStockOptionsExercised",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfStockholdersEquity"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Exercises in Period",
        "terseLabel": "Issuance of shares for options exercised (in shares)",
        "documentation": "Number of share options (or share units) exercised during the current period."
       }
      }
     },
     "auth_ref": [
      "r12",
      "r56",
      "r57",
      "r86",
      "r408"
     ]
    },
    "us-gaap_StockIssuedDuringPeriodValueShareBasedCompensation": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "StockIssuedDuringPeriodValueShareBasedCompensation",
     "crdr": "credit",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfStockholdersEquity"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Shares Issued, Value, Share-Based Payment Arrangement, after Forfeiture",
        "terseLabel": "Issuance of restricted stock &amp; performance stock",
        "documentation": "Value, after forfeiture, of shares issued under share-based payment arrangement. Excludes employee stock ownership plan (ESOP)."
       }
      }
     },
     "auth_ref": [
      "r31",
      "r56",
      "r57",
      "r86"
     ]
    },
    "us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "StockIssuedDuringPeriodValueStockOptionsExercised",
     "crdr": "credit",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfStockholdersEquity"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Stock Issued During Period, Value, Stock Options Exercised",
        "terseLabel": "Issuance of shares for options exercised",
        "documentation": "Value of stock issued as a result of the exercise of stock options."
       }
      }
     },
     "auth_ref": [
      "r12",
      "r57",
      "r60",
      "r61",
      "r86"
     ]
    },
    "fix_StockRepurchaseProgram2007Member": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.comfortsystemsusa.com/20240930",
     "localname": "StockRepurchaseProgram2007Member",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureStockholdersEquityIncentiveAndOtherDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Information pertaining to the March 2007 stock repurchase program.",
        "label": "Stock Repurchase Program 2007"
       }
      }
     },
     "auth_ref": []
    },
    "srt_StockRepurchaseProgramNumberOfSharesAuthorizedToBeRepurchased": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/srt/2024",
     "localname": "StockRepurchaseProgramNumberOfSharesAuthorizedToBeRepurchased",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureStockholdersEquityIncentiveAndOtherDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Share Repurchase Program, Authorized, Number of Shares",
        "terseLabel": "Number of shares of outstanding common stock authorized to be acquired under a stock repurchase program",
        "documentation": "Number of shares authorized to be purchased under share repurchase plan. Includes, but is not limited to, repurchase of stock and unit of ownership."
       }
      }
     },
     "auth_ref": [
      "r875"
     ]
    },
    "us-gaap_StockholdersEquity": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "StockholdersEquity",
     "crdr": "credit",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedBalanceSheets",
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfStockholdersEquity"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Equity, Attributable to Parent",
        "periodEndLabel": "BALANCE",
        "periodStartLabel": "BALANCE",
        "totalLabel": "Total stockholders' equity",
        "documentation": "Amount of equity (deficit) attributable to parent. Excludes temporary equity and equity attributable to noncontrolling interest."
       }
      }
     },
     "auth_ref": [
      "r57",
      "r60",
      "r61",
      "r80",
      "r597",
      "r613",
      "r634",
      "r635",
      "r701",
      "r720",
      "r820",
      "r832",
      "r913",
      "r961"
     ]
    },
    "us-gaap_StockholdersEquityIncludingPortionAttributableToNoncontrollingInterestAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "StockholdersEquityIncludingPortionAttributableToNoncontrollingInterestAbstract",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Equity, Including Portion Attributable to Noncontrolling Interest [Abstract]",
        "verboseLabel": "STOCKHOLDERS' EQUITY:"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_StockholdersEquityNoteAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "StockholdersEquityNoteAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "Stockholders' Equity"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_StockholdersEquityNoteDisclosureTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "StockholdersEquityNoteDisclosureTextBlock",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureStockholdersEquity"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Equity [Text Block]",
        "terseLabel": "Stockholders' Equity",
        "documentation": "The entire disclosure for equity."
       }
      }
     },
     "auth_ref": [
      "r83",
      "r165",
      "r350",
      "r352",
      "r353",
      "r354",
      "r355",
      "r356",
      "r357",
      "r358",
      "r359",
      "r360",
      "r361",
      "r362",
      "r363",
      "r466",
      "r636",
      "r637",
      "r643"
     ]
    },
    "fix_SubordinateDebtAndPromissoryNoteMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.comfortsystemsusa.com/20240930",
     "localname": "SubordinateDebtAndPromissoryNoteMember",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsDetails",
      "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsNotesToFormerOwnersDetails",
      "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsOtherDetails",
      "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "This element represents domestic or foreign subordinated debt and promissory note. Subordinated debt has a lower priority of repayment in liquidation of the entity's assets and promissory notes has a borrowing supported by a written promise to pay an obligation.",
        "label": "Notes to Former Owners"
       }
      }
     },
     "auth_ref": []
    },
    "fix_SummitIndustrialConstructionLlcMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.comfortsystemsusa.com/20240930",
     "localname": "SummitIndustrialConstructionLlcMember",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsAcquiredIntangibleAssetsDetails",
      "http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsDetails",
      "http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Represents information relating to Summit Industrial Construction, LLC Summit Houston Texas.",
        "label": "Summit Industrial Construction, LLC [Member]",
        "terseLabel": "Summit Texas"
       }
      }
     },
     "auth_ref": []
    },
    "fix_SupplementalInformationRelatedToLeasesAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://www.comfortsystemsusa.com/20240930",
     "localname": "SupplementalInformationRelatedToLeasesAbstract",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureLeasesMaturitiesOfLeaseLiabilitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "No definition available.",
        "label": "Supplemental Information Related to Leases [Abstract]",
        "terseLabel": "Supplemental information related to leases:"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_SuretyBondMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "SuretyBondMember",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureCommitmentsAndContingenciesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Surety Bond [Member]",
        "terseLabel": "Surety",
        "documentation": "An obligation arising from a three-party agreement that legally binds together a principal who needs the bond, an obligee who requires the bond and a surety company that sells the bond."
       }
      }
     },
     "auth_ref": []
    },
    "ecd_TabularListTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "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": [
      "r776"
     ]
    },
    "fix_TechnologyMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.comfortsystemsusa.com/20240930",
     "localname": "TechnologyMember",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureRevenueFromContractsWithCustomersDisaggregationOfRevenueDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "This members stands for technology.",
        "label": "Technology [Member]",
        "verboseLabel": "Technology"
       }
      }
     },
     "auth_ref": []
    },
    "ecd_TotalShareholderRtnAmt": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "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": [
      "r768"
     ]
    },
    "ecd_TotalShareholderRtnVsPeerGroupTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "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": [
      "r775"
     ]
    },
    "us-gaap_TradeAndOtherAccountsReceivableUnbilledReceivablesPolicy": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "TradeAndOtherAccountsReceivableUnbilledReceivablesPolicy",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureSummaryOfSignificantAccountingPoliciesAndEstimatesPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Trade and Other Accounts Receivable, Unbilled Receivables, Policy [Policy Text Block]",
        "terseLabel": "Unbilled Accounts Receivable",
        "documentation": "Disclosure of accounting policy for treatment of receivables that are billable but have not been billed as of the balance sheet date."
       }
      }
     },
     "auth_ref": [
      "r237",
      "r812"
     ]
    },
    "us-gaap_TradeNamesMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "TradeNamesMember",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsAcquiredIntangibleAssetsDetails",
      "http://www.comfortsystemsusa.com/role/DisclosureGoodwillAndIdentifiableIntangibleAssetsNetIdentifiableIntangibleAssetsNetDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Trade Names [Member]",
        "terseLabel": "Trade Name",
        "documentation": "Rights acquired through registration of a business name to gain or protect exclusive use thereof."
       }
      }
     },
     "auth_ref": [
      "r38",
      "r846",
      "r847",
      "r848",
      "r849",
      "r850",
      "r851",
      "r852",
      "r854",
      "r855",
      "r856"
     ]
    },
    "ecd_TradingArrAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "TradingArrAxis",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Trading Arrangement [Axis]",
        "terseLabel": "Trading Arrangement:"
       }
      }
     },
     "auth_ref": [
      "r795"
     ]
    },
    "ecd_TradingArrByIndTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "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": [
      "r797"
     ]
    },
    "dei_TradingSymbol": {
     "xbrltype": "tradingSymbolItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "TradingSymbol",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DocumentDocumentAndEntityInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Trading Symbol",
        "documentation": "Trading symbol of an instrument as listed on an exchange."
       }
      }
     },
     "auth_ref": []
    },
    "ecd_TrdArrAdoptionDate": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "TrdArrAdoptionDate",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Trading Arrangement Adoption Date",
        "terseLabel": "Adoption Date"
       }
      }
     },
     "auth_ref": [
      "r798"
     ]
    },
    "ecd_TrdArrDuration": {
     "xbrltype": "durationItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "TrdArrDuration",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Trading Arrangement Duration",
        "terseLabel": "Arrangement Duration"
       }
      }
     },
     "auth_ref": [
      "r799"
     ]
    },
    "ecd_TrdArrExpirationDate": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "TrdArrExpirationDate",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Trading Arrangement Expiration Date",
        "terseLabel": "Expiration Date"
       }
      }
     },
     "auth_ref": [
      "r799"
     ]
    },
    "ecd_TrdArrIndName": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "TrdArrIndName",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Trading Arrangement, Individual Name",
        "terseLabel": "Name"
       }
      }
     },
     "auth_ref": [
      "r797"
     ]
    },
    "ecd_TrdArrIndTitle": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "TrdArrIndTitle",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Trading Arrangement, Individual Title",
        "terseLabel": "Title"
       }
      }
     },
     "auth_ref": [
      "r797"
     ]
    },
    "ecd_TrdArrSecuritiesAggAvailAmt": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "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": [
      "r800"
     ]
    },
    "ecd_TrdArrTerminationDate": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "TrdArrTerminationDate",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Trading Arrangement Termination Date",
        "terseLabel": "Termination Date"
       }
      }
     },
     "auth_ref": [
      "r798"
     ]
    },
    "us-gaap_TreasuryStockAcquiredAverageCostPerShare": {
     "xbrltype": "perShareItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "TreasuryStockAcquiredAverageCostPerShare",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureStockholdersEquityIncentiveAndOtherDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Shares Acquired, Average Cost Per Share",
        "terseLabel": "Average price (in dollars per share)",
        "documentation": "Total cost of shares repurchased divided by the total number of shares repurchased."
       }
      }
     },
     "auth_ref": [
      "r29"
     ]
    },
    "us-gaap_TreasuryStockCommonMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "TreasuryStockCommonMember",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfStockholdersEquity"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Treasury Stock, Common [Member]",
        "terseLabel": "Treasury Stock",
        "documentation": "Previously issued common shares repurchased by the issuing entity and held in treasury."
       }
      }
     },
     "auth_ref": [
      "r29"
     ]
    },
    "us-gaap_TreasuryStockCommonShares": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "TreasuryStockCommonShares",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedBalanceSheetsParenthetical",
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfStockholdersEquity"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Treasury Stock, Common, Shares",
        "periodEndLabel": "BALANCE (in shares)",
        "periodStartLabel": "BALANCE (in shares)",
        "terseLabel": "Treasury stock, shares",
        "documentation": "Number of previously issued common shares repurchased by the issuing entity and held in treasury."
       }
      }
     },
     "auth_ref": [
      "r29"
     ]
    },
    "us-gaap_TreasuryStockSharesAcquired": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "TreasuryStockSharesAcquired",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureStockholdersEquityIncentiveAndOtherDetails",
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfStockholdersEquity"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Treasury Stock, Shares, Acquired",
        "negatedLabel": "Share repurchase (in shares)",
        "verboseLabel": "Share repurchase (in shares)",
        "documentation": "Number of shares that have been repurchased during the period and are being held in treasury."
       }
      }
     },
     "auth_ref": [
      "r12",
      "r57",
      "r86"
     ]
    },
    "us-gaap_TreasuryStockValue": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "TreasuryStockValue",
     "crdr": "debit",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Treasury Stock, Value",
        "negatedLabel": "Treasury stock, at cost, 5,530,807 and 5,438,625 shares, respectively",
        "documentation": "The amount allocated to treasury stock. Treasury stock is common and preferred shares of an entity that were issued, repurchased by the entity, and are held in its treasury."
       }
      }
     },
     "auth_ref": [
      "r29",
      "r30",
      "r57",
      "r60"
     ]
    },
    "us-gaap_TreasuryStockValueAcquiredCostMethod": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "TreasuryStockValueAcquiredCostMethod",
     "crdr": "debit",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfStockholdersEquity"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Treasury Stock, Value, Acquired, Cost Method",
        "negatedLabel": "Share repurchase",
        "documentation": "Equity impact of the cost of common and preferred stock that were repurchased during the period. Recorded using the cost method."
       }
      }
     },
     "auth_ref": [
      "r12",
      "r29",
      "r86"
     ]
    },
    "fix_UnbilledAccountsReceivableAllowanceForCreditLoss": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.comfortsystemsusa.com/20240930",
     "localname": "UnbilledAccountsReceivableAllowanceForCreditLoss",
     "crdr": "credit",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedBalanceSheetsParenthetical"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The amount of allowance for credit losses on unbilled receivable.",
        "label": "Unbilled Accounts Receivable, Allowance for Credit Loss",
        "terseLabel": "Unbilled accounts receivable, allowance for credit losses (in dollars)"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_UnbilledContractsReceivable": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "UnbilledContractsReceivable",
     "crdr": "debit",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Unbilled Contracts Receivable",
        "terseLabel": "Unbilled accounts receivable, less allowance for credit losses of $953 and $850, respectively",
        "documentation": "Unbilled amounts due for services rendered or to be rendered, actions taken or to be taken, or a promise to refrain from taking certain actions in accordance with the terms of a legally binding agreement between the entity and, at a minimum, one other party. An example would be amounts associated with contracts or programs where the recognized revenue for performance thereunder exceeds the amounts billed under the terms thereof as of the date of the balance sheet."
       }
      }
     },
     "auth_ref": [
      "r527"
     ]
    },
    "ecd_UndrlygSecurityMktPriceChngPct": {
     "xbrltype": "pureItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "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": [
      "r794"
     ]
    },
    "us-gaap_UseOfEstimates": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "UseOfEstimates",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureSummaryOfSignificantAccountingPoliciesAndEstimatesPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Use of Estimates, Policy [Policy Text Block]",
        "terseLabel": "Use of Estimates",
        "documentation": "Disclosure of accounting policy for the use of estimates in the preparation of financial statements in conformity with generally accepted accounting principles."
       }
      }
     },
     "auth_ref": [
      "r19",
      "r20",
      "r21",
      "r102",
      "r103",
      "r104",
      "r105"
     ]
    },
    "fix_VariableLeaseAndShortTermLeaseCost": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.comfortsystemsusa.com/20240930",
     "localname": "VariableLeaseAndShortTermLeaseCost",
     "crdr": "debit",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureLeasesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of variable lease cost and short-term lease cost, excluded from lease liability, recognized when obligation for payment is incurred for finance and operating leases.",
        "label": "Variable Lease and Short-term Lease, Cost",
        "terseLabel": "Variable lease expense and short-term lease expenses"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_VariableRateAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "VariableRateAxis",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsOtherDetails"
     ],
     "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/2024",
     "localname": "VariableRateDomain",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsOtherDetails"
     ],
     "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": []
    },
    "ecd_VstngDtFrValOfEqtyAwrdsGrntdAndVstdInCvrdYrMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "VstngDtFrValOfEqtyAwrdsGrntdAndVstdInCvrdYrMember",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Vesting Date Fair Value of Equity Awards Granted and Vested in Covered Year [Member]",
        "terseLabel": "Vesting Date Fair Value of Equity Awards Granted and Vested in Covered Year"
       }
      }
     },
     "auth_ref": [
      "r764"
     ]
    },
    "fix_WeightedAverageCostOfCapital": {
     "xbrltype": "percentItemType",
     "nsuri": "http://www.comfortsystemsusa.com/20240930",
     "localname": "WeightedAverageCostOfCapital",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureFairValueMeasurementsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Percentage of weighted average cost of capital.",
        "label": "Weighted Average Cost Of Capital",
        "terseLabel": "Weighted average cost of capital"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "WeightedAverageNumberOfDilutedSharesOutstanding",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureStockholdersEquityNumberOfSharesDetails",
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfOperations"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Weighted Average Number of Shares Outstanding, Diluted",
        "terseLabel": "Diluted",
        "totalLabel": "Shares used in computing earnings per share-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": [
      "r183",
      "r199"
     ]
    },
    "us-gaap_WeightedAverageNumberOfSharesOutstandingAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "WeightedAverageNumberOfSharesOutstandingAbstract",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfOperations"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Weighted Average Number of Shares Outstanding, Diluted [Abstract]",
        "terseLabel": "SHARES USED IN COMPUTING INCOME PER SHARE:"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_WeightedAverageNumberOfSharesOutstandingBasic": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "WeightedAverageNumberOfSharesOutstandingBasic",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureStockholdersEquityNumberOfSharesDetails",
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfOperations"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Weighted Average Number of Shares Outstanding, Basic",
        "terseLabel": "Basic",
        "verboseLabel": "Shares used in computing earnings per share-basic",
        "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": [
      "r182",
      "r199"
     ]
    },
    "us-gaap_WeightedAverageNumberOfSharesOutstandingDilutedDisclosureItemsAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "WeightedAverageNumberOfSharesOutstandingDilutedDisclosureItemsAbstract",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureStockholdersEquityNumberOfSharesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Weighted Average Number of Shares Outstanding Reconciliation [Abstract]",
        "terseLabel": "Reconciliation of the number of shares outstanding with the number of shares used in computing basic and diluted earnings per share"
       }
      }
     },
     "auth_ref": []
    },
    "ecd_YrEndFrValOfEqtyAwrdsGrntdInCvrdYrOutsdngAndUnvstdMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "YrEndFrValOfEqtyAwrdsGrntdInCvrdYrOutsdngAndUnvstdMember",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Year-end Fair Value of Equity Awards Granted in Covered Year that are Outstanding and Unvested [Member]",
        "terseLabel": "Year-end Fair Value of Equity Awards Granted in Covered Year that are Outstanding and Unvested"
       }
      }
     },
     "auth_ref": [
      "r762"
     ]
    }
   }
  }
 },
 "std_ref": {
  "r0": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Section": "30",
   "Paragraph": "7",
   "SubTopic": "30",
   "Topic": "805",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479637/805-30-30-7"
  },
  "r1": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Section": "30",
   "Paragraph": "8",
   "SubTopic": "30",
   "Topic": "805",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479637/805-30-30-8"
  },
  "r2": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "1",
   "SubTopic": "230",
   "Topic": "830",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477401/830-230-45-1"
  },
  "r3": {
   "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"
  },
  "r4": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "15",
   "Subparagraph": "(f)",
   "SubTopic": "10",
   "Topic": "230",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482740/230-10-45-15"
  },
  "r5": {
   "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"
  },
  "r6": {
   "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"
  },
  "r7": {
   "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"
  },
  "r8": {
   "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"
  },
  "r9": {
   "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"
  },
  "r10": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "SubTopic": "10",
   "Topic": "825",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482907/825-10-50-1"
  },
  "r11": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(b)",
   "SubTopic": "30",
   "Topic": "805",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479581/805-30-50-1"
  },
  "r12": {
   "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"
  },
  "r13": {
   "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"
  },
  "r14": {
   "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"
  },
  "r15": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "230",
   "SubTopic": "10",
   "Section": "45",
   "Paragraph": "13",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482740/230-10-45-13"
  },
  "r16": {
   "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"
  },
  "r17": {
   "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"
  },
  "r18": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "260",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482662/260-10-50-1"
  },
  "r19": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "275",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "4",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482861/275-10-50-4"
  },
  "r20": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "275",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "8",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482861/275-10-50-8"
  },
  "r21": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "275",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "9",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482861/275-10-50-9"
  },
  "r22": {
   "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"
  },
  "r23": {
   "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"
  },
  "r24": {
   "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"
  },
  "r25": {
   "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"
  },
  "r26": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "360",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482099/360-10-50-1"
  },
  "r27": {
   "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"
  },
  "r28": {
   "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"
  },
  "r29": {
   "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"
  },
  "r30": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "505",
   "SubTopic": "30",
   "Section": "50",
   "Paragraph": "4",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481520/505-30-50-4"
  },
  "r31": {
   "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"
  },
  "r32": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "718",
   "SubTopic": "20",
   "Section": "55",
   "Paragraph": "12",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481089/718-20-55-12"
  },
  "r33": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "718",
   "SubTopic": "20",
   "Section": "55",
   "Paragraph": "13",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481089/718-20-55-13"
  },
  "r34": {
   "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"
  },
  "r35": {
   "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"
  },
  "r36": {
   "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"
  },
  "r37": {
   "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"
  },
  "r38": {
   "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"
  },
  "r39": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "805",
   "SubTopic": "20",
   "Section": "55",
   "Paragraph": "20",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479876/805-20-55-20"
  },
  "r40": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "805",
   "SubTopic": "20",
   "Section": "55",
   "Paragraph": "20",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479876/805-20-55-20"
  },
  "r41": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "805",
   "SubTopic": "30",
   "Section": "25",
   "Paragraph": "5",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479668/805-30-25-5"
  },
  "r42": {
   "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"
  },
  "r43": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "805",
   "SubTopic": "30",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(c)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479581/805-30-50-1"
  },
  "r44": {
   "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/2147477734/942-470-50-3"
  },
  "r45": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(19)(a))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r46": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(19)(b))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r47": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(19))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r48": {
   "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"
  },
  "r49": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(21))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r50": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(22)(a)(1))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r51": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(22)(b))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r52": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(23))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r53": {
   "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"
  },
  "r54": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(25))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r55": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(26))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r56": {
   "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"
  },
  "r57": {
   "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"
  },
  "r58": {
   "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"
  },
  "r59": {
   "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"
  },
  "r60": {
   "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"
  },
  "r61": {
   "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"
  },
  "r62": {
   "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"
  },
  "r63": {
   "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"
  },
  "r64": {
   "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"
  },
  "r65": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "220",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Subparagraph": "(SX 210.5-03(2))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483621/220-10-S99-2"
  },
  "r66": {
   "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"
  },
  "r67": {
   "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"
  },
  "r68": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "220",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Subparagraph": "(SX 210.5-03(7))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483621/220-10-S99-2"
  },
  "r69": {
   "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"
  },
  "r70": {
   "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"
  },
  "r71": {
   "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"
  },
  "r72": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "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"
  },
  "r73": {
   "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"
  },
  "r74": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "230",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "15",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482740/230-10-45-15"
  },
  "r75": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "230",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "15",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482740/230-10-45-15"
  },
  "r76": {
   "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"
  },
  "r77": {
   "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"
  },
  "r78": {
   "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"
  },
  "r79": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "235",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/235/tableOfContent"
  },
  "r80": {
   "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"
  },
  "r81": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "440",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/440/tableOfContent"
  },
  "r82": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "470",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/470/tableOfContent"
  },
  "r83": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "505",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/505/tableOfContent"
  },
  "r84": {
   "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"
  },
  "r85": {
   "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"
  },
  "r86": {
   "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"
  },
  "r87": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "805",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/805/tableOfContent"
  },
  "r88": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "805",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "35",
   "Paragraph": "1",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479613/805-30-35-1"
  },
  "r89": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "942",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.9-03(11))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478546/942-210-S99-1"
  },
  "r90": {
   "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/2147478546/942-210-S99-1"
  },
  "r91": {
   "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/2147478546/942-210-S99-1"
  },
  "r92": {
   "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(17))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478546/942-210-S99-1"
  },
  "r93": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "942",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.9-03(23))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478546/942-210-S99-1"
  },
  "r94": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "942",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.9-04(15))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478524/942-220-S99-1"
  },
  "r95": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "942",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.9-04(22))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478524/942-220-S99-1"
  },
  "r96": {
   "role": "http://fasb.org/us-gaap/role/ref/otherTransitionRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "32",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-32"
  },
  "r97": {
   "role": "http://fasb.org/us-gaap/role/ref/otherTransitionRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "32",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-32"
  },
  "r98": {
   "role": "http://fasb.org/us-gaap/role/ref/otherTransitionRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "32",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-32"
  },
  "r99": {
   "role": "http://fasb.org/us-gaap/role/ref/otherTransitionRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "32",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-32"
  },
  "r100": {
   "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"
  },
  "r101": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(a)",
   "SubTopic": "10",
   "Topic": "275",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482861/275-10-50-1"
  },
  "r102": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(b)",
   "SubTopic": "10",
   "Topic": "275",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482861/275-10-50-1"
  },
  "r103": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(c)",
   "SubTopic": "10",
   "Topic": "275",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482861/275-10-50-1"
  },
  "r104": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "11",
   "SubTopic": "10",
   "Topic": "275",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482861/275-10-50-11"
  },
  "r105": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "12",
   "SubTopic": "10",
   "Topic": "275",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482861/275-10-50-12"
  },
  "r106": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "13",
   "Subparagraph": "(a)",
   "SubTopic": "10",
   "Topic": "606",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479806/606-10-50-13"
  },
  "r107": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "13",
   "Subparagraph": "(b)(1)",
   "SubTopic": "10",
   "Topic": "606",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479806/606-10-50-13"
  },
  "r108": {
   "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"
  },
  "r109": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.4-08(h))",
   "SubTopic": "10",
   "Topic": "235",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480678/235-10-S99-1"
  },
  "r110": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Accounting Standards Codification",
   "Topic": "275",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/275/tableOfContent"
  },
  "r111": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Accounting Standards Codification",
   "Topic": "606",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/606/tableOfContent"
  },
  "r112": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Regulation S-X (SX)",
   "Number": "210",
   "Section": "12",
   "Subsection": "04",
   "Paragraph": "a",
   "Publisher": "SEC"
  },
  "r113": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Regulation S-X (SX)",
   "Number": "210",
   "Section": "12",
   "Subsection": "12",
   "Paragraph": "Column A",
   "Footnote": "2",
   "Publisher": "SEC"
  },
  "r114": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Regulation S-X (SX)",
   "Number": "210",
   "Section": "12",
   "Subsection": "12A",
   "Paragraph": "Column A",
   "Footnote": "2",
   "Publisher": "SEC"
  },
  "r115": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Regulation S-X (SX)",
   "Number": "210",
   "Section": "12",
   "Subsection": "12B",
   "Paragraph": "Column A",
   "Subparagraph": "(a)",
   "Footnote": "4",
   "Publisher": "SEC"
  },
  "r116": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Regulation S-X (SX)",
   "Number": "210",
   "Section": "12",
   "Subsection": "12B",
   "Paragraph": "Column A",
   "Subparagraph": "(b)",
   "Footnote": "4",
   "Publisher": "SEC"
  },
  "r117": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Regulation S-X (SX)",
   "Number": "210",
   "Section": "12",
   "Subsection": "14",
   "Paragraph": "Column A",
   "Footnote": "2",
   "Publisher": "SEC"
  },
  "r118": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Regulation S-X (SX)",
   "Number": "210",
   "Section": "12",
   "Subsection": "17",
   "Paragraph": "Column A",
   "Publisher": "SEC"
  },
  "r119": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Regulation S-X (SX)",
   "Number": "210",
   "Section": "12",
   "Subsection": "17",
   "Paragraph": "Column B",
   "Publisher": "SEC"
  },
  "r120": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Regulation S-X (SX)",
   "Number": "210",
   "Section": "12",
   "Subsection": "17",
   "Paragraph": "Column C",
   "Publisher": "SEC"
  },
  "r121": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Regulation S-X (SX)",
   "Number": "210",
   "Section": "12",
   "Subsection": "17",
   "Paragraph": "Column D",
   "Publisher": "SEC"
  },
  "r122": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Regulation S-X (SX)",
   "Number": "210",
   "Section": "12",
   "Subsection": "17",
   "Paragraph": "Column E",
   "Publisher": "SEC"
  },
  "r123": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Regulation S-X (SX)",
   "Number": "210",
   "Section": "12",
   "Subsection": "17",
   "Paragraph": "Column F",
   "Publisher": "SEC"
  },
  "r124": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Regulation S-X (SX)",
   "Number": "210",
   "Section": "13",
   "Subsection": "01",
   "Paragraph": "a",
   "Subparagraph": "(4)(i)",
   "Publisher": "SEC"
  },
  "r125": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Regulation S-X (SX)",
   "Number": "210",
   "Section": "13",
   "Subsection": "01",
   "Paragraph": "a",
   "Subparagraph": "(4)(iii)(A)",
   "Publisher": "SEC"
  },
  "r126": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Regulation S-X (SX)",
   "Number": "210",
   "Section": "13",
   "Subsection": "01",
   "Paragraph": "a",
   "Subparagraph": "(4)(iii)(B)",
   "Publisher": "SEC"
  },
  "r127": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Regulation S-X (SX)",
   "Number": "210",
   "Section": "13",
   "Subsection": "01",
   "Paragraph": "a",
   "Subparagraph": "(4)(iv)",
   "Publisher": "SEC"
  },
  "r128": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Regulation S-X (SX)",
   "Number": "210",
   "Section": "13",
   "Subsection": "02",
   "Paragraph": "a",
   "Subparagraph": "(4)(i)",
   "Publisher": "SEC"
  },
  "r129": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Regulation S-X (SX)",
   "Number": "210",
   "Section": "13",
   "Subsection": "02",
   "Paragraph": "a",
   "Subparagraph": "(4)(iii)(A)",
   "Publisher": "SEC"
  },
  "r130": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Regulation S-X (SX)",
   "Number": "210",
   "Section": "13",
   "Subsection": "02",
   "Paragraph": "a",
   "Subparagraph": "(4)(iii)(B)",
   "Publisher": "SEC"
  },
  "r131": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Regulation S-X (SX)",
   "Number": "210",
   "Section": "13",
   "Subsection": "02",
   "Paragraph": "a",
   "Subparagraph": "(4)(iii)(C)",
   "Publisher": "SEC"
  },
  "r132": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Regulation S-X (SX)",
   "Number": "210",
   "Section": "13",
   "Subsection": "02",
   "Paragraph": "a",
   "Subparagraph": "(4)(iv)",
   "Publisher": "SEC"
  },
  "r133": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Staff Accounting Bulletin (SAB)",
   "Number": "Topic 11",
   "Section": "L",
   "Publisher": "SEC"
  },
  "r134": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Staff Accounting Bulletin (SAB)",
   "Number": "Topic 5",
   "Section": "Y",
   "Paragraph": "Question 2",
   "Publisher": "SEC"
  },
  "r135": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Staff Accounting Bulletin (SAB)",
   "Number": "Topic 5",
   "Section": "Y",
   "Paragraph": "Question 4",
   "Publisher": "SEC"
  },
  "r136": {
   "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"
  },
  "r137": {
   "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"
  },
  "r138": {
   "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"
  },
  "r139": {
   "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"
  },
  "r140": {
   "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"
  },
  "r141": {
   "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"
  },
  "r142": {
   "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"
  },
  "r143": {
   "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"
  },
  "r144": {
   "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"
  },
  "r145": {
   "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"
  },
  "r146": {
   "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"
  },
  "r147": {
   "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)(4))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r148": {
   "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"
  },
  "r149": {
   "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"
  },
  "r150": {
   "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"
  },
  "r151": {
   "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"
  },
  "r152": {
   "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"
  },
  "r153": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "220",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482765/220-10-50-1"
  },
  "r154": {
   "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"
  },
  "r155": {
   "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"
  },
  "r156": {
   "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"
  },
  "r157": {
   "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"
  },
  "r158": {
   "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"
  },
  "r159": {
   "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"
  },
  "r160": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "230",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "15",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482740/230-10-45-15"
  },
  "r161": {
   "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"
  },
  "r162": {
   "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"
  },
  "r163": {
   "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"
  },
  "r164": {
   "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"
  },
  "r165": {
   "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(e)(1))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480678/235-10-S99-1"
  },
  "r166": {
   "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"
  },
  "r167": {
   "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"
  },
  "r168": {
   "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"
  },
  "r169": {
   "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"
  },
  "r170": {
   "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"
  },
  "r171": {
   "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"
  },
  "r172": {
   "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"
  },
  "r173": {
   "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"
  },
  "r174": {
   "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"
  },
  "r175": {
   "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"
  },
  "r176": {
   "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"
  },
  "r177": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "250",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483443/250-10-50-6"
  },
  "r178": {
   "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"
  },
  "r179": {
   "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"
  },
  "r180": {
   "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"
  },
  "r181": {
   "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"
  },
  "r182": {
   "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"
  },
  "r183": {
   "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"
  },
  "r184": {
   "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"
  },
  "r185": {
   "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"
  },
  "r186": {
   "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"
  },
  "r187": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "260",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "26",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482689/260-10-45-26"
  },
  "r188": {
   "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"
  },
  "r189": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "260",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "44",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482689/260-10-45-44"
  },
  "r190": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "260",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "48",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482689/260-10-45-48"
  },
  "r191": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "260",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "48",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482689/260-10-45-48"
  },
  "r192": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "260",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "51",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482689/260-10-45-51"
  },
  "r193": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "260",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "52",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482689/260-10-45-52"
  },
  "r194": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "260",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "53",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482689/260-10-45-53"
  },
  "r195": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "260",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "54",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482689/260-10-45-54"
  },
  "r196": {
   "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"
  },
  "r197": {
   "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"
  },
  "r198": {
   "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"
  },
  "r199": {
   "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"
  },
  "r200": {
   "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"
  },
  "r201": {
   "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"
  },
  "r202": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "270",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(i)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482964/270-10-50-1"
  },
  "r203": {
   "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"
  },
  "r204": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/280/tableOfContent"
  },
  "r205": {
   "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"
  },
  "r206": {
   "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"
  },
  "r207": {
   "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"
  },
  "r208": {
   "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"
  },
  "r209": {
   "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"
  },
  "r210": {
   "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"
  },
  "r211": {
   "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"
  },
  "r212": {
   "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"
  },
  "r213": {
   "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"
  },
  "r214": {
   "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"
  },
  "r215": {
   "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"
  },
  "r216": {
   "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"
  },
  "r217": {
   "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"
  },
  "r218": {
   "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"
  },
  "r219": {
   "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"
  },
  "r220": {
   "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"
  },
  "r221": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "26A",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-26A"
  },
  "r222": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "26B",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-26B"
  },
  "r223": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "26C",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-26C"
  },
  "r224": {
   "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"
  },
  "r225": {
   "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"
  },
  "r226": {
   "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"
  },
  "r227": {
   "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"
  },
  "r228": {
   "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"
  },
  "r229": {
   "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"
  },
  "r230": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "32",
   "Subparagraph": "(ee)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-32"
  },
  "r231": {
   "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"
  },
  "r232": {
   "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"
  },
  "r233": {
   "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"
  },
  "r234": {
   "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"
  },
  "r235": {
   "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"
  },
  "r236": {
   "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"
  },
  "r237": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "310",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/310/tableOfContent"
  },
  "r238": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "310",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "13",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481990/310-10-45-13"
  },
  "r239": {
   "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"
  },
  "r240": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "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"
  },
  "r241": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "321",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479536/321-10-50-3"
  },
  "r242": {
   "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"
  },
  "r243": {
   "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"
  },
  "r244": {
   "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"
  },
  "r245": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "326",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "30",
   "Paragraph": "4A",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479391/326-20-30-4A"
  },
  "r246": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "326",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "30",
   "Paragraph": "5A",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479391/326-20-30-5A"
  },
  "r247": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "326",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "35",
   "Paragraph": "8A",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479366/326-20-35-8A"
  },
  "r248": {
   "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"
  },
  "r249": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "326",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "5",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479344/326-20-45-5"
  },
  "r250": {
   "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"
  },
  "r251": {
   "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"
  },
  "r252": {
   "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"
  },
  "r253": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "326",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "17",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479319/326-20-50-17"
  },
  "r254": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "326",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "21",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479319/326-20-50-21"
  },
  "r255": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "326",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3C",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479319/326-20-50-3C"
  },
  "r256": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "326",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3D",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479319/326-20-50-3D"
  },
  "r257": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "326",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SAB Topic 6.M.2.Q4)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483530/326-20-S99-1"
  },
  "r258": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "326",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "30",
   "Paragraph": "1B",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479175/326-30-30-1B"
  },
  "r259": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "326",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "35",
   "Paragraph": "13A",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479148/326-30-35-13A"
  },
  "r260": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "326",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "35",
   "Paragraph": "7A",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479148/326-30-35-7A"
  },
  "r261": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "326",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3A",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479106/326-30-50-3A"
  },
  "r262": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "326",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3C",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479106/326-30-50-3C"
  },
  "r263": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "326",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3D",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479106/326-30-50-3D"
  },
  "r264": {
   "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"
  },
  "r265": {
   "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"
  },
  "r266": {
   "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"
  },
  "r267": {
   "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"
  },
  "r268": {
   "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"
  },
  "r269": {
   "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"
  },
  "r270": {
   "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"
  },
  "r271": {
   "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"
  },
  "r272": {
   "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"
  },
  "r273": {
   "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"
  },
  "r274": {
   "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"
  },
  "r275": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "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"
  },
  "r276": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "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"
  },
  "r277": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "350",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482686/350-30-45-1"
  },
  "r278": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "350",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482686/350-30-45-2"
  },
  "r279": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "350",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(a)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482665/350-30-50-1"
  },
  "r280": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "350",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(a)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482665/350-30-50-1"
  },
  "r281": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "350",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(a)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482665/350-30-50-1"
  },
  "r282": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "350",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482665/350-30-50-1"
  },
  "r283": {
   "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"
  },
  "r284": {
   "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"
  },
  "r285": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "350",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(a)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482665/350-30-50-2"
  },
  "r286": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "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"
  },
  "r287": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "350",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(d)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482665/350-30-50-2"
  },
  "r288": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "350",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(d)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482665/350-30-50-2"
  },
  "r289": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "350",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482665/350-30-50-3"
  },
  "r290": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "350",
   "SubTopic": "60",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "1",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147476166/350-60-65-1"
  },
  "r291": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "360",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482099/360-10-50-3"
  },
  "r292": {
   "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"
  },
  "r293": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "405",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477092/405-40-50-1"
  },
  "r294": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "405",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(a)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477092/405-40-50-1"
  },
  "r295": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "405",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(a)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477092/405-40-50-1"
  },
  "r296": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "405",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(a)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477092/405-40-50-1"
  },
  "r297": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "405",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477092/405-40-50-1"
  },
  "r298": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "405",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(e)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477092/405-40-50-1"
  },
  "r299": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "420",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482017/420-10-50-1"
  },
  "r300": {
   "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"
  },
  "r301": {
   "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"
  },
  "r302": {
   "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"
  },
  "r303": {
   "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"
  },
  "r304": {
   "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"
  },
  "r305": {
   "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"
  },
  "r306": {
   "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"
  },
  "r307": {
   "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"
  },
  "r308": {
   "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"
  },
  "r309": {
   "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"
  },
  "r310": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "470",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481544/470-10-50-6"
  },
  "r311": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "470",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481544/470-10-50-6"
  },
  "r312": {
   "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"
  },
  "r313": {
   "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"
  },
  "r314": {
   "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"
  },
  "r315": {
   "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"
  },
  "r316": {
   "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"
  },
  "r317": {
   "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"
  },
  "r318": {
   "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"
  },
  "r319": {
   "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"
  },
  "r320": {
   "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"
  },
  "r321": {
   "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"
  },
  "r322": {
   "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"
  },
  "r323": {
   "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"
  },
  "r324": {
   "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"
  },
  "r325": {
   "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"
  },
  "r326": {
   "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"
  },
  "r327": {
   "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"
  },
  "r328": {
   "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"
  },
  "r329": {
   "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"
  },
  "r330": {
   "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"
  },
  "r331": {
   "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"
  },
  "r332": {
   "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"
  },
  "r333": {
   "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"
  },
  "r334": {
   "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"
  },
  "r335": {
   "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"
  },
  "r336": {
   "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"
  },
  "r337": {
   "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"
  },
  "r338": {
   "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"
  },
  "r339": {
   "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"
  },
  "r340": {
   "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"
  },
  "r341": {
   "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"
  },
  "r342": {
   "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"
  },
  "r343": {
   "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"
  },
  "r344": {
   "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"
  },
  "r345": {
   "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"
  },
  "r346": {
   "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"
  },
  "r347": {
   "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"
  },
  "r348": {
   "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"
  },
  "r349": {
   "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"
  },
  "r350": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "505",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "13",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481112/505-10-50-13"
  },
  "r351": {
   "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"
  },
  "r352": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "505",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "13",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481112/505-10-50-13"
  },
  "r353": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "505",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "13",
   "Subparagraph": "(g)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481112/505-10-50-13"
  },
  "r354": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "505",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "13",
   "Subparagraph": "(h)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481112/505-10-50-13"
  },
  "r355": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "505",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "13",
   "Subparagraph": "(i)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481112/505-10-50-13"
  },
  "r356": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "505",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "14",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481112/505-10-50-14"
  },
  "r357": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "505",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "14",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481112/505-10-50-14"
  },
  "r358": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "505",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "14",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481112/505-10-50-14"
  },
  "r359": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "505",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "16",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481112/505-10-50-16"
  },
  "r360": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "505",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "18",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481112/505-10-50-18"
  },
  "r361": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "505",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "18",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481112/505-10-50-18"
  },
  "r362": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "505",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "18",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481112/505-10-50-18"
  },
  "r363": {
   "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"
  },
  "r364": {
   "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"
  },
  "r365": {
   "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"
  },
  "r366": {
   "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"
  },
  "r367": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "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"
  },
  "r368": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "12",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479806/606-10-50-12"
  },
  "r369": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "12",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479806/606-10-50-12"
  },
  "r370": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "12",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479806/606-10-50-12"
  },
  "r371": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "12",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479806/606-10-50-12"
  },
  "r372": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "12",
   "Subparagraph": "(e)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479806/606-10-50-12"
  },
  "r373": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "13",
   "Subparagraph": "(b)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479806/606-10-50-13"
  },
  "r374": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "15",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479806/606-10-50-15"
  },
  "r375": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "17",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479806/606-10-50-17"
  },
  "r376": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "18",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479806/606-10-50-18"
  },
  "r377": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "18",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479806/606-10-50-18"
  },
  "r378": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "19",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479806/606-10-50-19"
  },
  "r379": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "20",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479806/606-10-50-20"
  },
  "r380": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "20",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479806/606-10-50-20"
  },
  "r381": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "20",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479806/606-10-50-20"
  },
  "r382": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "20",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479806/606-10-50-20"
  },
  "r383": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479806/606-10-50-4"
  },
  "r384": {
   "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"
  },
  "r385": {
   "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"
  },
  "r386": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "8",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479806/606-10-50-8"
  },
  "r387": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "9",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479806/606-10-50-9"
  },
  "r388": {
   "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"
  },
  "r389": {
   "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"
  },
  "r390": {
   "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"
  },
  "r391": {
   "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"
  },
  "r392": {
   "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"
  },
  "r393": {
   "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"
  },
  "r394": {
   "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"
  },
  "r395": {
   "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"
  },
  "r396": {
   "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"
  },
  "r397": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "35",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480483/718-10-35-2"
  },
  "r398": {
   "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"
  },
  "r399": {
   "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"
  },
  "r400": {
   "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"
  },
  "r401": {
   "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"
  },
  "r402": {
   "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"
  },
  "r403": {
   "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"
  },
  "r404": {
   "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"
  },
  "r405": {
   "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"
  },
  "r406": {
   "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"
  },
  "r407": {
   "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"
  },
  "r408": {
   "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"
  },
  "r409": {
   "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"
  },
  "r410": {
   "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"
  },
  "r411": {
   "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"
  },
  "r412": {
   "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"
  },
  "r413": {
   "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"
  },
  "r414": {
   "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"
  },
  "r415": {
   "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"
  },
  "r416": {
   "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"
  },
  "r417": {
   "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"
  },
  "r418": {
   "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"
  },
  "r419": {
   "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"
  },
  "r420": {
   "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"
  },
  "r421": {
   "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"
  },
  "r422": {
   "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"
  },
  "r423": {
   "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"
  },
  "r424": {
   "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"
  },
  "r425": {
   "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"
  },
  "r426": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "720",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483359/720-20-50-1"
  },
  "r427": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "25",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482525/740-10-45-25"
  },
  "r428": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "28",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482525/740-10-45-28"
  },
  "r429": {
   "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"
  },
  "r430": {
   "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"
  },
  "r431": {
   "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"
  },
  "r432": {
   "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"
  },
  "r433": {
   "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"
  },
  "r434": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "19",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482685/740-10-50-19"
  },
  "r435": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "20",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482685/740-10-50-20"
  },
  "r436": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "9",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482685/740-10-50-9"
  },
  "r437": {
   "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"
  },
  "r438": {
   "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"
  },
  "r439": {
   "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"
  },
  "r440": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "323",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "2",
   "Subparagraph": "(d)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478666/740-323-65-2"
  },
  "r441": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "323",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "2",
   "Subparagraph": "(d)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478666/740-323-65-2"
  },
  "r442": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "323",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "2",
   "Subparagraph": "(e)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478666/740-323-65-2"
  },
  "r443": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "323",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "2",
   "Subparagraph": "(g)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478666/740-323-65-2"
  },
  "r444": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "323",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "2",
   "Subparagraph": "(g)(4)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478666/740-323-65-2"
  },
  "r445": {
   "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"
  },
  "r446": {
   "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"
  },
  "r447": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "805",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(b)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479581/805-30-50-1"
  },
  "r448": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "805",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(b)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479581/805-30-50-1"
  },
  "r449": {
   "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"
  },
  "r450": {
   "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"
  },
  "r451": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "805",
   "SubTopic": "60",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "1",
   "Subparagraph": "(d)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147476176/805-60-65-1"
  },
  "r452": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "805",
   "SubTopic": "60",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "1",
   "Subparagraph": "(g)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147476176/805-60-65-1"
  },
  "r453": {
   "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"
  },
  "r454": {
   "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"
  },
  "r455": {
   "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"
  },
  "r456": {
   "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"
  },
  "r457": {
   "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"
  },
  "r458": {
   "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"
  },
  "r459": {
   "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"
  },
  "r460": {
   "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"
  },
  "r461": {
   "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"
  },
  "r462": {
   "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"
  },
  "r463": {
   "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"
  },
  "r464": {
   "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"
  },
  "r465": {
   "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"
  },
  "r466": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "815",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480237/815-40-50-6"
  },
  "r467": {
   "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"
  },
  "r468": {
   "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"
  },
  "r469": {
   "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"
  },
  "r470": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "35",
   "Paragraph": "54B",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482134/820-10-35-54B"
  },
  "r471": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "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"
  },
  "r472": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-2"
  },
  "r473": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(bbb)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-2"
  },
  "r474": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "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"
  },
  "r475": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(bbb)(2)(i)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-2"
  },
  "r476": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-2"
  },
  "r477": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-2"
  },
  "r478": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)(1a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-2"
  },
  "r479": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-2"
  },
  "r480": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-2"
  },
  "r481": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-2"
  },
  "r482": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(g)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-2"
  },
  "r483": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(h)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-2"
  },
  "r484": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2E",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-2E"
  },
  "r485": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-3"
  },
  "r486": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-3"
  },
  "r487": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6A",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-6A"
  },
  "r488": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6A",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-6A"
  },
  "r489": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6A",
   "Subparagraph": "(e)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-6A"
  },
  "r490": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6A",
   "Subparagraph": "(f)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-6A"
  },
  "r491": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6A",
   "Subparagraph": "(h)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-6A"
  },
  "r492": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "825",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "2",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482736/825-10-45-2"
  },
  "r493": {
   "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"
  },
  "r494": {
   "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"
  },
  "r495": {
   "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"
  },
  "r496": {
   "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"
  },
  "r497": {
   "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"
  },
  "r498": {
   "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"
  },
  "r499": {
   "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"
  },
  "r500": {
   "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"
  },
  "r501": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "835",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482925/835-30-45-2"
  },
  "r502": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "842",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "8",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479832/842-10-65-8"
  },
  "r503": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "842",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/842-20/tableOfContent"
  },
  "r504": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "842",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "35",
   "Paragraph": "12A",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479165/842-20-35-12A"
  },
  "r505": {
   "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"
  },
  "r506": {
   "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"
  },
  "r507": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "842",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479041/842-20-45-2"
  },
  "r508": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "842",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "5",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479041/842-20-45-5"
  },
  "r509": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "842",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478964/842-20-50-1"
  },
  "r510": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "842",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478964/842-20-50-3"
  },
  "r511": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "842",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(a)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478964/842-20-50-3"
  },
  "r512": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "842",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(g)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478964/842-20-50-4"
  },
  "r513": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "842",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(g)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478964/842-20-50-4"
  },
  "r514": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "842",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(g)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478964/842-20-50-4"
  },
  "r515": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "842",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(g)(4)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478964/842-20-50-4"
  },
  "r516": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "842",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478964/842-20-50-6"
  },
  "r517": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "842",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "7A",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478964/842-20-50-7A"
  },
  "r518": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "842",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "7A",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478964/842-20-50-7A"
  },
  "r519": {
   "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"
  },
  "r520": {
   "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"
  },
  "r521": {
   "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"
  },
  "r522": {
   "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"
  },
  "r523": {
   "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"
  },
  "r524": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "860",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "7",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481420/860-30-50-7"
  },
  "r525": {
   "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"
  },
  "r526": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "912",
   "SubTopic": "310",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "11",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478345/912-310-45-11"
  },
  "r527": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "912",
   "SubTopic": "310",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478345/912-310-45-2"
  },
  "r528": {
   "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"
  },
  "r529": {
   "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"
  },
  "r530": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "928",
   "SubTopic": "340",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478859/928-340-50-1"
  },
  "r531": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "940",
   "SubTopic": "820",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478119/940-820-50-1"
  },
  "r532": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "942",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.9-03(10)(1))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478546/942-210-S99-1"
  },
  "r533": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "942",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.9-04(27))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478524/942-220-S99-1"
  },
  "r534": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "942",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.9-05(b)(2))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477314/942-235-S99-1"
  },
  "r535": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "942",
   "SubTopic": "360",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478451/942-360-50-1"
  },
  "r536": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.7-03(a)(12))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478777/944-210-S99-1"
  },
  "r537": {
   "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/2147478777/944-210-S99-1"
  },
  "r538": {
   "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)(16)(a)(2))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478777/944-210-S99-1"
  },
  "r539": {
   "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/2147478777/944-210-S99-1"
  },
  "r540": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.7-03(a)(21))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478777/944-210-S99-1"
  },
  "r541": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.7-03(a)(22))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478777/944-210-S99-1"
  },
  "r542": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.7-03(a)(23)(a)(4))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478777/944-210-S99-1"
  },
  "r543": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.7-03(a)(25))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478777/944-210-S99-1"
  },
  "r544": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.7-03(a)(8))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478777/944-210-S99-1"
  },
  "r545": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.7-04(11))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477250/944-220-S99-1"
  },
  "r546": {
   "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/2147477250/944-220-S99-1"
  },
  "r547": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.7-04(18))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477250/944-220-S99-1"
  },
  "r548": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.7-04(19))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477250/944-220-S99-1"
  },
  "r549": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.7-04(23))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477250/944-220-S99-1"
  },
  "r550": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.7-04(9))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477250/944-220-S99-1"
  },
  "r551": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.12-16(Column A))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477965/944-235-S99-1"
  },
  "r552": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.12-16(Column B))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477965/944-235-S99-1"
  },
  "r553": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.12-16(Column C))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477965/944-235-S99-1"
  },
  "r554": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.12-16(Column D))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477965/944-235-S99-1"
  },
  "r555": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.12-16(Column E))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477965/944-235-S99-1"
  },
  "r556": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.12-16(Column F))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477965/944-235-S99-1"
  },
  "r557": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.12-16(Column G))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477965/944-235-S99-1"
  },
  "r558": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.12-16(Column H))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477965/944-235-S99-1"
  },
  "r559": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.12-16(Column I))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477965/944-235-S99-1"
  },
  "r560": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.12-16(Column J))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477965/944-235-S99-1"
  },
  "r561": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.12-16(Column K))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477965/944-235-S99-1"
  },
  "r562": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Subparagraph": "(SX 210.12-17(Column A))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477965/944-235-S99-2"
  },
  "r563": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Subparagraph": "(SX 210.12-17(Column B))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477965/944-235-S99-2"
  },
  "r564": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Subparagraph": "(SX 210.12-17(Column C))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477965/944-235-S99-2"
  },
  "r565": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Subparagraph": "(SX 210.12-17(Column D))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477965/944-235-S99-2"
  },
  "r566": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Subparagraph": "(SX 210.12-17(Column E))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477965/944-235-S99-2"
  },
  "r567": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Subparagraph": "(SX 210.12-17(Column F))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477965/944-235-S99-2"
  },
  "r568": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4E",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-4E"
  },
  "r569": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-5"
  },
  "r570": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5",
   "Subparagraph": "(e)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-5"
  },
  "r571": {
   "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"
  },
  "r572": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "9",
   "Subparagraph": "(a)(4)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-9"
  },
  "r573": {
   "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"
  },
  "r574": {
   "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"
  },
  "r575": {
   "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"
  },
  "r576": {
   "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"
  },
  "r577": {
   "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"
  },
  "r578": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SAB Topic 5.W.Q2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479583/944-40-S99-1"
  },
  "r579": {
   "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"
  },
  "r580": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "3",
   "Subparagraph": "(SX 210.6-03(h)(1))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479886/946-10-S99-3"
  },
  "r581": {
   "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"
  },
  "r582": {
   "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/2147478009/946-205-45-3"
  },
  "r583": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "205",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "4",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478009/946-205-45-4"
  },
  "r584": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "4",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477796/946-210-45-4"
  },
  "r585": {
   "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/2147478795/946-210-50-6"
  },
  "r586": {
   "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/2147478795/946-210-50-6"
  },
  "r587": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-04(1))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1"
  },
  "r588": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-04(12)(b)(1))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1"
  },
  "r589": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-04(12)(b)(2))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1"
  },
  "r590": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-04(12)(b)(3))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1"
  },
  "r591": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-04(13)(a)(2))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1"
  },
  "r592": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-04(13)(a)(3))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1"
  },
  "r593": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-04(14))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1"
  },
  "r594": {
   "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/2147479170/946-210-S99-1"
  },
  "r595": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-04(16)(a))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1"
  },
  "r596": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-04(17))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1"
  },
  "r597": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-04(19))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1"
  },
  "r598": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-04(2)(a))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1"
  },
  "r599": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-04(2)(b))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1"
  },
  "r600": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-04(3)(a))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1"
  },
  "r601": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-04(3)(b))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1"
  },
  "r602": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-04(3)(c))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1"
  },
  "r603": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-04(6)(b))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1"
  },
  "r604": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-04(6)(c))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1"
  },
  "r605": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-04(6)(d))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1"
  },
  "r606": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-04(6)(e))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1"
  },
  "r607": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-04(8))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1"
  },
  "r608": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-04(9)(b))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1"
  },
  "r609": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-04(9)(c))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1"
  },
  "r610": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-04(9)(d))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1"
  },
  "r611": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-04(9)(e))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1"
  },
  "r612": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Subparagraph": "(SX 210.6-05(2))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-2"
  },
  "r613": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Subparagraph": "(SX 210.6-05(4))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-2"
  },
  "r614": {
   "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/2147479105/946-220-45-3"
  },
  "r615": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "7",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479105/946-220-45-7"
  },
  "r616": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-07(1))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-1"
  },
  "r617": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-07(2)(a))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-1"
  },
  "r618": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-07(2)(g)(3))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-1"
  },
  "r619": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-07(7)(a)(1))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-1"
  },
  "r620": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-07(7)(a)(2))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-1"
  },
  "r621": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-07(7)(a)(3))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-1"
  },
  "r622": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-07(7)(a)(5))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-1"
  },
  "r623": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-07(7)(a)(6))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-1"
  },
  "r624": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-07(7)(a)(7))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-1"
  },
  "r625": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-07(7)(c)(1))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-1"
  },
  "r626": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-07(7)(c)(2))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-1"
  },
  "r627": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-07(7)(c)(3))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-1"
  },
  "r628": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-07(7)(c)(5))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-1"
  },
  "r629": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-07(7)(c)(6))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-1"
  },
  "r630": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-07(7)(c)(7))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-1"
  },
  "r631": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-07(9))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-1"
  },
  "r632": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "3",
   "Subparagraph": "(SX 210.6-09(1)(d))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-3"
  },
  "r633": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "3",
   "Subparagraph": "(SX 210.6-09(4)(b))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-3"
  },
  "r634": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "3",
   "Subparagraph": "(SX 210.6-09(6))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-3"
  },
  "r635": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "3",
   "Subparagraph": "(SX 210.6-09(7))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-3"
  },
  "r636": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477968/946-235-50-2"
  },
  "r637": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477968/946-235-50-2"
  },
  "r638": {
   "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/2147477271/946-320-S99-1"
  },
  "r639": {
   "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/2147477271/946-320-S99-2"
  },
  "r640": {
   "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/2147477271/946-320-S99-3"
  },
  "r641": {
   "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/2147477271/946-320-S99-3"
  },
  "r642": {
   "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/2147477271/946-320-S99-6"
  },
  "r643": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "505",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478448/946-505-50-6"
  },
  "r644": {
   "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/2147478522/954-440-50-1"
  },
  "r645": {
   "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/2147477332/976-310-50-1"
  },
  "r646": {
   "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/2147479230/978-310-50-1"
  },
  "r647": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "985",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481283/985-20-50-2"
  },
  "r648": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(e)",
   "SubTopic": "10",
   "Topic": "235",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483426/235-10-50-4"
  },
  "r649": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "13H",
   "Subparagraph": "(a)",
   "SubTopic": "40",
   "Topic": "944",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480046/944-40-55-13H"
  },
  "r650": {
   "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"
  },
  "r651": {
   "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"
  },
  "r652": {
   "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"
  },
  "r653": {
   "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"
  },
  "r654": {
   "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"
  },
  "r655": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "47",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482785/280-10-55-47"
  },
  "r656": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "47",
   "Subparagraph": "(bb)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482785/280-10-55-47"
  },
  "r657": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "47",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482785/280-10-55-47"
  },
  "r658": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "47",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482785/280-10-55-47"
  },
  "r659": {
   "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"
  },
  "r660": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "49",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482785/280-10-55-49"
  },
  "r661": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "54",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482785/280-10-55-54"
  },
  "r662": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "54",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482785/280-10-55-54"
  },
  "r663": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "54",
   "Subparagraph": "(e)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482785/280-10-55-54"
  },
  "r664": {
   "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"
  },
  "r665": {
   "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"
  },
  "r666": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "350",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "40",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482640/350-30-55-40"
  },
  "r667": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "460",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "27",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482395/460-10-55-27"
  },
  "r668": {
   "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"
  },
  "r669": {
   "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"
  },
  "r670": {
   "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"
  },
  "r671": {
   "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"
  },
  "r672": {
   "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"
  },
  "r673": {
   "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"
  },
  "r674": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "10",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479806/606-10-50-10"
  },
  "r675": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "91",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479777/606-10-55-91"
  },
  "r676": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "91",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479777/606-10-55-91"
  },
  "r677": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "91",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479777/606-10-55-91"
  },
  "r678": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "91",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479777/606-10-55-91"
  },
  "r679": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "91",
   "Subparagraph": "(e)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479777/606-10-55-91"
  },
  "r680": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "91",
   "Subparagraph": "(f)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479777/606-10-55-91"
  },
  "r681": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "91",
   "Subparagraph": "(g)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479777/606-10-55-91"
  },
  "r682": {
   "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"
  },
  "r683": {
   "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"
  },
  "r684": {
   "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"
  },
  "r685": {
   "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"
  },
  "r686": {
   "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"
  },
  "r687": {
   "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"
  },
  "r688": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "231",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482663/740-10-55-231"
  },
  "r689": {
   "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"
  },
  "r690": {
   "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"
  },
  "r691": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "100",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482078/820-10-55-100"
  },
  "r692": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "100",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482078/820-10-55-100"
  },
  "r693": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "101",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482078/820-10-55-101"
  },
  "r694": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "102",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482078/820-10-55-102"
  },
  "r695": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "103",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482078/820-10-55-103"
  },
  "r696": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "107",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482078/820-10-55-107"
  },
  "r697": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "107",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482078/820-10-55-107"
  },
  "r698": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "107",
   "Subparagraph": "(e)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482078/820-10-55-107"
  },
  "r699": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "835",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "8",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482949/835-30-55-8"
  },
  "r700": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "842",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "53",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479589/842-20-55-53"
  },
  "r701": {
   "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"
  },
  "r702": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "944",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479401/944-30-55-2"
  },
  "r703": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "13H",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480046/944-40-55-13H"
  },
  "r704": {
   "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"
  },
  "r705": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "9C",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480046/944-40-55-9C"
  },
  "r706": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "9C",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480046/944-40-55-9C"
  },
  "r707": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "9C",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480046/944-40-55-9C"
  },
  "r708": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "9E",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480046/944-40-55-9E"
  },
  "r709": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "944",
   "SubTopic": "80",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "18",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480078/944-80-55-18"
  },
  "r710": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(b)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478795/946-210-50-1"
  },
  "r711": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Subparagraph": "(a)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478795/946-210-50-6"
  },
  "r712": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477439/946-210-55-1"
  },
  "r713": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "946",
   "SubTopic": "310",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "1",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477802/946-310-45-1"
  },
  "r714": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "946",
   "SubTopic": "320",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.12-12(Column A)(Footnote 2)(i))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477271/946-320-S99-1"
  },
  "r715": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "946",
   "SubTopic": "320",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Subparagraph": "(SX 210.12-12A(Column A)(Footnote 2))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477271/946-320-S99-2"
  },
  "r716": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "946",
   "SubTopic": "320",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "3",
   "Subparagraph": "(SX 210.12-12B(Column A)(Footnote 1)(a))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477271/946-320-S99-3"
  },
  "r717": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "946",
   "SubTopic": "320",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "6",
   "Subparagraph": "(SX 210.12-14(Column A)(Footnote 2))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477271/946-320-S99-6"
  },
  "r718": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "946",
   "SubTopic": "830",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "10",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479168/946-830-55-10"
  },
  "r719": {
   "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/2147479168/946-830-55-11"
  },
  "r720": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "946",
   "SubTopic": "830",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "12",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479168/946-830-55-12"
  },
  "r721": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Exchange Act",
   "Number": "240",
   "Section": "12",
   "Subsection": "b"
  },
  "r722": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Exchange Act",
   "Number": "240",
   "Section": "12",
   "Subsection": "b-2"
  },
  "r723": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Exchange Act",
   "Number": "240",
   "Section": "12",
   "Subsection": "d1-1"
  },
  "r724": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 10-Q",
   "Number": "240",
   "Section": "308",
   "Subsection": "a"
  },
  "r725": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 20-F",
   "Section": "16",
   "Subsection": "J",
   "Paragraph": "a"
  },
  "r726": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 20-F",
   "Section": "6",
   "Subsection": "F",
   "Paragraph": "1"
  },
  "r727": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 20-F",
   "Section": "6",
   "Subsection": "F",
   "Paragraph": "1",
   "Subparagraph": "i"
  },
  "r728": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 20-F",
   "Section": "6",
   "Subsection": "F",
   "Paragraph": "1",
   "Subparagraph": "i",
   "Sentence": "A"
  },
  "r729": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 20-F",
   "Section": "6",
   "Subsection": "F",
   "Paragraph": "1",
   "Subparagraph": "i",
   "Sentence": "B"
  },
  "r730": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 20-F",
   "Section": "6",
   "Subsection": "F",
   "Paragraph": "1",
   "Subparagraph": "i",
   "Sentence": "C"
  },
  "r731": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 20-F",
   "Section": "6",
   "Subsection": "F",
   "Paragraph": "1",
   "Subparagraph": "i",
   "Sentence": "D"
  },
  "r732": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 20-F",
   "Section": "6",
   "Subsection": "F",
   "Paragraph": "1",
   "Subparagraph": "i",
   "Sentence": "E"
  },
  "r733": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 20-F",
   "Section": "6",
   "Subsection": "F",
   "Paragraph": "1",
   "Subparagraph": "ii"
  },
  "r734": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 20-F",
   "Section": "6",
   "Subsection": "F",
   "Paragraph": "1",
   "Subparagraph": "iii"
  },
  "r735": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 20-F",
   "Section": "6",
   "Subsection": "F",
   "Paragraph": "2"
  },
  "r736": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 40-F",
   "Section": "19",
   "Paragraph": "a"
  },
  "r737": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 40-F",
   "Section": "19",
   "Paragraph": "a",
   "Subparagraph": "1"
  },
  "r738": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 40-F",
   "Section": "19",
   "Paragraph": "a",
   "Subparagraph": "1",
   "Sentence": "i"
  },
  "r739": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 40-F",
   "Section": "19",
   "Paragraph": "a",
   "Subparagraph": "1",
   "Sentence": "ii"
  },
  "r740": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 40-F",
   "Section": "19",
   "Paragraph": "a",
   "Subparagraph": "1",
   "Sentence": "iii"
  },
  "r741": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 40-F",
   "Section": "19",
   "Paragraph": "a",
   "Subparagraph": "1",
   "Sentence": "iv"
  },
  "r742": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 40-F",
   "Section": "19",
   "Paragraph": "a",
   "Subparagraph": "1",
   "Sentence": "v"
  },
  "r743": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 40-F",
   "Section": "19",
   "Paragraph": "a",
   "Subparagraph": "2"
  },
  "r744": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 40-F",
   "Section": "19",
   "Paragraph": "a",
   "Subparagraph": "3"
  },
  "r745": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 40-F",
   "Section": "19",
   "Paragraph": "b"
  },
  "r746": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form N-CSR",
   "Section": "18",
   "Paragraph": "a"
  },
  "r747": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form N-CSR",
   "Section": "18",
   "Paragraph": "a",
   "Subparagraph": "1"
  },
  "r748": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form N-CSR",
   "Section": "18",
   "Paragraph": "a",
   "Subparagraph": "1",
   "Sentence": "i"
  },
  "r749": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form N-CSR",
   "Section": "18",
   "Paragraph": "a",
   "Subparagraph": "1",
   "Sentence": "ii"
  },
  "r750": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form N-CSR",
   "Section": "18",
   "Paragraph": "a",
   "Subparagraph": "1",
   "Sentence": "iii"
  },
  "r751": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form N-CSR",
   "Section": "18",
   "Paragraph": "a",
   "Subparagraph": "1",
   "Sentence": "iv"
  },
  "r752": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form N-CSR",
   "Section": "18",
   "Paragraph": "a",
   "Subparagraph": "1",
   "Sentence": "v"
  },
  "r753": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form N-CSR",
   "Section": "18",
   "Paragraph": "a",
   "Subparagraph": "2"
  },
  "r754": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form N-CSR",
   "Section": "18",
   "Paragraph": "a",
   "Subparagraph": "3"
  },
  "r755": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form N-CSR",
   "Section": "18",
   "Paragraph": "b"
  },
  "r756": {
   "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"
  },
  "r757": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "v"
  },
  "r758": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "v",
   "Paragraph": "1"
  },
  "r759": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "v",
   "Paragraph": "2",
   "Subparagraph": "ii"
  },
  "r760": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "v",
   "Paragraph": "2",
   "Subparagraph": "iii"
  },
  "r761": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "v",
   "Paragraph": "2",
   "Subparagraph": "iii",
   "Sentence": "B",
   "Clause": "1",
   "Subclause": "ii"
  },
  "r762": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "v",
   "Paragraph": "2",
   "Subparagraph": "iii",
   "Sentence": "C",
   "Clause": "1",
   "Subclause": "i"
  },
  "r763": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "v",
   "Paragraph": "2",
   "Subparagraph": "iii",
   "Sentence": "C",
   "Clause": "1",
   "Subclause": "ii"
  },
  "r764": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "v",
   "Paragraph": "2",
   "Subparagraph": "iii",
   "Sentence": "C",
   "Clause": "1",
   "Subclause": "iii"
  },
  "r765": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "v",
   "Paragraph": "2",
   "Subparagraph": "iii",
   "Sentence": "C",
   "Clause": "1",
   "Subclause": "iv"
  },
  "r766": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "v",
   "Paragraph": "2",
   "Subparagraph": "iii",
   "Sentence": "C",
   "Clause": "1",
   "Subclause": "v"
  },
  "r767": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "v",
   "Paragraph": "2",
   "Subparagraph": "iii",
   "Sentence": "C",
   "Clause": "1",
   "Subclause": "vi"
  },
  "r768": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "v",
   "Paragraph": "2",
   "Subparagraph": "iv"
  },
  "r769": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "v",
   "Paragraph": "2",
   "Subparagraph": "vi"
  },
  "r770": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "v",
   "Paragraph": "3"
  },
  "r771": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "v",
   "Paragraph": "4"
  },
  "r772": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "v",
   "Paragraph": "5",
   "Subparagraph": "i"
  },
  "r773": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "v",
   "Paragraph": "5",
   "Subparagraph": "ii"
  },
  "r774": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "v",
   "Paragraph": "5",
   "Subparagraph": "iii"
  },
  "r775": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "v",
   "Paragraph": "5",
   "Subparagraph": "iv"
  },
  "r776": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "v",
   "Paragraph": "6"
  },
  "r777": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "v",
   "Paragraph": "6",
   "Subparagraph": "i"
  },
  "r778": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "w",
   "Paragraph": "1"
  },
  "r779": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "w",
   "Paragraph": "1",
   "Subparagraph": "i"
  },
  "r780": {
   "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"
  },
  "r781": {
   "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"
  },
  "r782": {
   "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"
  },
  "r783": {
   "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"
  },
  "r784": {
   "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"
  },
  "r785": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "w",
   "Paragraph": "1",
   "Subparagraph": "ii"
  },
  "r786": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "w",
   "Paragraph": "1",
   "Subparagraph": "iii"
  },
  "r787": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "w",
   "Paragraph": "2"
  },
  "r788": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "x",
   "Paragraph": "1"
  },
  "r789": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "x",
   "Paragraph": "2"
  },
  "r790": {
   "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"
  },
  "r791": {
   "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"
  },
  "r792": {
   "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"
  },
  "r793": {
   "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"
  },
  "r794": {
   "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"
  },
  "r795": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "408",
   "Subsection": "a"
  },
  "r796": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "408",
   "Subsection": "a",
   "Paragraph": "1"
  },
  "r797": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "408",
   "Subsection": "a",
   "Paragraph": "2",
   "Subparagraph": "A"
  },
  "r798": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "408",
   "Subsection": "a",
   "Paragraph": "2",
   "Subparagraph": "B"
  },
  "r799": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "408",
   "Subsection": "a",
   "Paragraph": "2",
   "Subparagraph": "C"
  },
  "r800": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "408",
   "Subsection": "a",
   "Paragraph": "2",
   "Subparagraph": "D"
  },
  "r801": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "408",
   "Subsection": "b",
   "Paragraph": "1"
  },
  "r802": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Section": "402",
   "Number": "229",
   "Subsection": "v",
   "Paragraph": "2",
   "Subparagraph": "iii",
   "Sentence": "C",
   "Clause": "1"
  },
  "r803": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Section": "402",
   "Subsection": "v",
   "Paragraph": "2",
   "Subparagraph": "iii",
   "Sentence": "A",
   "Number": "229"
  },
  "r804": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Section": "402",
   "Subsection": "v",
   "Paragraph": "2",
   "Subparagraph": "iii",
   "Sentence": "B",
   "Clause": "1",
   "Number": "229"
  },
  "r805": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Section": "402",
   "Subsection": "v",
   "Paragraph": "2",
   "Subparagraph": "iii",
   "Sentence": "B",
   "Clause": "1",
   "Subclause": "i",
   "Number": "229"
  },
  "r806": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-T",
   "Number": "232",
   "Section": "405"
  },
  "r807": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "13",
   "Subparagraph": "(b)(1)",
   "SubTopic": "10",
   "Topic": "606",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479806/606-10-50-13"
  },
  "r808": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Name": "Regulation S-X (SX)",
   "Number": "210",
   "Section": "13",
   "Subsection": "01",
   "Paragraph": "a",
   "Subparagraph": "(4)(ii)",
   "Publisher": "SEC"
  },
  "r809": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Name": "Regulation S-X (SX)",
   "Number": "210",
   "Section": "13",
   "Subsection": "01",
   "Paragraph": "a",
   "Subparagraph": "(4)(iii)",
   "Publisher": "SEC"
  },
  "r810": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Name": "Staff Accounting Bulletin (SAB)",
   "Number": "Topic 5",
   "Section": "Y",
   "Paragraph": "Question 2",
   "Publisher": "SEC"
  },
  "r811": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(3)(a)(4))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r812": {
   "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)(2))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r813": {
   "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"
  },
  "r814": {
   "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"
  },
  "r815": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "220",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Subparagraph": "(SX 210.5-03(7)(b))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483621/220-10-S99-2"
  },
  "r816": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "220",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Subparagraph": "(SX 210.5-03)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483621/220-10-S99-2"
  },
  "r817": {
   "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"
  },
  "r818": {
   "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"
  },
  "r819": {
   "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"
  },
  "r820": {
   "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"
  },
  "r821": {
   "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"
  },
  "r822": {
   "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"
  },
  "r823": {
   "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"
  },
  "r824": {
   "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"
  },
  "r825": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "250",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483443/250-10-50-6"
  },
  "r826": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "270",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(i)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482964/270-10-50-1"
  },
  "r827": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "18",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-18"
  },
  "r828": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "22",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-22"
  },
  "r829": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "30",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-30"
  },
  "r830": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "32",
   "Subparagraph": "(ee)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-32"
  },
  "r831": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "32",
   "Subparagraph": "(f)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-32"
  },
  "r832": {
   "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"
  },
  "r833": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "350",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/350-20/tableOfContent"
  },
  "r834": {
   "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"
  },
  "r835": {
   "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"
  },
  "r836": {
   "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"
  },
  "r837": {
   "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"
  },
  "r838": {
   "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"
  },
  "r839": {
   "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"
  },
  "r840": {
   "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"
  },
  "r841": {
   "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"
  },
  "r842": {
   "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"
  },
  "r843": {
   "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"
  },
  "r844": {
   "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"
  },
  "r845": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "350",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/350-30/tableOfContent"
  },
  "r846": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "350",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482686/350-30-45-1"
  },
  "r847": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "350",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(a)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482665/350-30-50-1"
  },
  "r848": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "350",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(a)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482665/350-30-50-1"
  },
  "r849": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "350",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(a)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482665/350-30-50-1"
  },
  "r850": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "350",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482665/350-30-50-1"
  },
  "r851": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "350",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482665/350-30-50-1"
  },
  "r852": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "350",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(a)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482665/350-30-50-2"
  },
  "r853": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "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"
  },
  "r854": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "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"
  },
  "r855": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "350",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(d)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482665/350-30-50-2"
  },
  "r856": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "350",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(d)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482665/350-30-50-2"
  },
  "r857": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "360",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "5",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482130/360-10-45-5"
  },
  "r858": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "360",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482099/360-10-50-3"
  },
  "r859": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "405",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/405-30/tableOfContent"
  },
  "r860": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "405",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477092/405-40-50-1"
  },
  "r861": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "405",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477092/405-40-50-1"
  },
  "r862": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "405",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(e)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477092/405-40-50-1"
  },
  "r863": {
   "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"
  },
  "r864": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "450",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/450/tableOfContent"
  },
  "r865": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "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"
  },
  "r866": {
   "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"
  },
  "r867": {
   "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"
  },
  "r868": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "450",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "9",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483076/450-20-50-9"
  },
  "r869": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "450",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SAB Topic 5.Y.Q2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480102/450-20-S99-1"
  },
  "r870": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "470",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481544/470-10-50-6"
  },
  "r871": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "470",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481544/470-10-50-6"
  },
  "r872": {
   "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"
  },
  "r873": {
   "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"
  },
  "r874": {
   "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"
  },
  "r875": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "505",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481520/505-30-50-4"
  },
  "r876": {
   "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"
  },
  "r877": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479806/606-10-50-5"
  },
  "r878": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(a)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r879": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(a)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r880": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(a)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r881": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)(1)(i)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r882": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)(1)(ii)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r883": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)(1)(iii)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r884": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)(1)(iv)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r885": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)(1)(iv)(01)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r886": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)(1)(iv)(02)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r887": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)(1)(iv)(03)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r888": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)(1)(iv)(04)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r889": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)(2)(i)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r890": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)(2)(ii)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r891": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)(2)(iii)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r892": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)(2)(iii)(01)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r893": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)(2)(iii)(02)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r894": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)(2)(iii)(03)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r895": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(d)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r896": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(d)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r897": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(e)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r898": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(e)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r899": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(f)(2)(i)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r900": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(f)(2)(ii)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r901": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(f)(2)(iii)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r902": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(f)(2)(iv)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r903": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(f)(2)(v)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r904": {
   "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"
  },
  "r905": {
   "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"
  },
  "r906": {
   "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"
  },
  "r907": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-2"
  },
  "r908": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(bbb)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-2"
  },
  "r909": {
   "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"
  },
  "r910": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(bbb)(2)(i)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-2"
  },
  "r911": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2E",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-2E"
  },
  "r912": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6A",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-6A"
  },
  "r913": {
   "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"
  },
  "r914": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "835",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482925/835-30-45-2"
  },
  "r915": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "835",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "3",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482925/835-30-45-3"
  },
  "r916": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "835",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482900/835-30-50-1"
  },
  "r917": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "842",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "4",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479041/842-20-45-4"
  },
  "r918": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "842",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(a)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478964/842-20-50-3"
  },
  "r919": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "842",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478964/842-20-50-6"
  },
  "r920": {
   "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"
  },
  "r921": {
   "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"
  },
  "r922": {
   "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"
  },
  "r923": {
   "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"
  },
  "r924": {
   "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"
  },
  "r925": {
   "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"
  },
  "r926": {
   "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"
  },
  "r927": {
   "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"
  },
  "r928": {
   "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/2147478777/944-210-S99-1"
  },
  "r929": {
   "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"
  },
  "r930": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "944",
   "SubTopic": "310",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(a)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477363/944-310-50-3"
  },
  "r931": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4B",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-4B"
  },
  "r932": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4B",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-4B"
  },
  "r933": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4C",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-4C"
  },
  "r934": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4D",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-4D"
  },
  "r935": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4G",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-4G"
  },
  "r936": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-5"
  },
  "r937": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-5"
  },
  "r938": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-5"
  },
  "r939": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-5"
  },
  "r940": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-6"
  },
  "r941": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Subparagraph": "(b)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-6"
  },
  "r942": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Subparagraph": "(b)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-6"
  },
  "r943": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Subparagraph": "(b)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-6"
  },
  "r944": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Subparagraph": "(b)(4)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-6"
  },
  "r945": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Subparagraph": "(b)(5)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-6"
  },
  "r946": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Subparagraph": "(b)(6)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-6"
  },
  "r947": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-6"
  },
  "r948": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "7A",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-7A"
  },
  "r949": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "7A",
   "Subparagraph": "(b)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-7A"
  },
  "r950": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "7A",
   "Subparagraph": "(b)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-7A"
  },
  "r951": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "7A",
   "Subparagraph": "(b)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-7A"
  },
  "r952": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "7A",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-7A"
  },
  "r953": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "7A",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-7A"
  },
  "r954": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "7B",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-7B"
  },
  "r955": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "7B",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-7B"
  },
  "r956": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "7B",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-7B"
  },
  "r957": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "944",
   "SubTopic": "80",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480109/944-80-50-2"
  },
  "r958": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "944",
   "SubTopic": "80",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480109/944-80-50-2"
  },
  "r959": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "944",
   "SubTopic": "80",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480109/944-80-50-2"
  },
  "r960": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "946",
   "SubTopic": "205",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "4",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478009/946-205-45-4"
  },
  "r961": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "946",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "3",
   "Subparagraph": "(SX 210.6-09(4)(b))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-3"
  },
  "r962": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "946",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "3",
   "Subparagraph": "(SX 210.6-09(7))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-3"
  },
  "r963": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "985",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481283/985-20-50-2"
  }
 }
}
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>ZIP
<SEQUENCE>71
<FILENAME>0001558370-24-013635-xbrl.zip
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
begin 644 0001558370-24-013635-xbrl.zip
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
M6E))JQM&Z@>O=."U<:"IWPQ;60=+C1.PNJPZ:*_SRXN4RRWX$TK(^V4ZL-N
M/19+S!J><R[-HX>WVJ/:,Q3K[C3TGOVLPR5\D2;C$#&V@5EPL)+FW=@.66Q]
M'KIV"3J5V4% E0Q7\*MC$-<(*V3X-9)V2,2P4[6M#D77.Q.MA;P[%;T_I-3X
M6@^N%*D>L]S$G<,L'-T[[-IA]TP%YC,J;UK$;/SF2F].+20K,NIQU>^Q] Q5
M@"&HX1=A^&5T0#?;?:D\AE[_J'E),&6'Q@["*DL@JI%#AUO3&,L.SO;[:0^N
M*1>-KU@>5JR8$!ODU,![?E80L%=\.T!4A'_ZL9LQ&V&-%[*_) [GET%;2JA#
MLN"\:L L>2= !]G.#Y'7O2Z@"9=*L/WCY97W!^B/EW=W"FS;@_5=5Q\;7Z_3
M=M@TQ:8D,J6,3A>9<EX0F5(TMG:!*7L+3'G%7%3MW.R$ISXP97?'&^2**JI
M-RWO;)?X&3%Y3=UKJ5'4@H,^@*#=50/211$5UNG SG0@_-K@=L6=\-3K2<N3
M,KTHZ?_YM8OR'_DDS 3;AGKPY4:^S_'YA)/5VI'/K:AO2_74ADW>>^%[(?\
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
M8I.M?3[E *M?[-<K.A4<>K=*DB/S/=L,^ROA )OSCO"U)W RR" W%I>3'*!
M4 SG+XS:1&0%*4@Z0 &>D.O90.>Q@OWQ>"JI(#I$H6!H@2'?1$YP3V%.H#*"
M Q1FY,#2DU4(4TIP@,+<8=.D#_FI+/O] *L>;;#;]A1*28:53C!R1ES>1NOO
M$,IK$C"L41/'U=KE/K2ER!2[A#*PH*CS*H<"M0*_1V;AS%:+^ "!+IB1HV.%
M06#\$W$PC((NYI43>56V0X.VH/K2^&LL<WFFI,2-H^;: =U<YM;>Z_1N37Z/
M<Q^>>EV9AV*I!\[S_P0,^?,NQ=MH1*/&_YD*' I .E=*471PX4.A4_B7VT3N
MO[TP_$JHQWU?6AQVG+Y?:7=<M]T,WLL((^]')N+!M3SI5T5.<MY_='++H)KD
MQS%I5G2A@AZT*1S38AUHVUM;%74L_?)_I[$E$_8FRGC! EM/>8!*553E9\I@
MM$",.H!]N5VGR?!]A?7O'/4ONOOR;U!+ P04    " #=A%A9MCCU]&L1  #E
M#P$ %    &9I>"TR,#(T,#DS,%]C86PN>&UL[5U;<^(X%GZ?JOT/7N9A=ZN6
M<,N%I+I[B@#I214)*:!W9I^F'%LDKC$V*]E)F%^_DB]@@V5)!FS9Y&4Z8Z0C
M?><[EH^.CJ0OOWPL3.4-0&38UM=:ZZQ94X"EV;IAO7RMN<Z\WJW]\NUO/WWY
M>[W^^^UDI.BVYBZ Y2@:!*H#=.7=<%Z5F;U<JI;R " T3%.YA8;^ A2EU3SK
MGC7/KB^4>OV;)^-61;B.;2F>L/99*_RA'XBSK1M<K=$^;[2;[7.E>].^N,'_
M/CV$!1]PW^8&LZ1I6'_>D/\\XQ85#-)"-Q_(^%I[=9SE3:/Q_OY^]MXYL^$+
MKMYL-7Y_&$VU5[!0ZX:%'-720$W!Y6^0]W!D:ZKC:2A2_>,9FJ& 3F/=%K4$
M^;]Z6*Q.'M5;[7JG=?:!]%K01?(S1R-A<?*KD5(^@L4OOR,_T$'K^OJZX?U:
M^_:3HGR!M@DF8*YXCVZ<U1)\K2%CL32)*._9*P3SK[6Y\5$GZF]>=YH$Q\]3
M!]-(#*1O6\@V#9VP>JN:I!?35P <5%.(\!^3^U@_-'LQMZ&#5@A71RY2R9,&
M*=G@$>G!XU)<XPCXU@_1>#Y> NC9RH& TF3+@[BOHM<[TWX_ N"(Z-SP#@RD
MF39R(>AI_W,-9'@*'P!'-4QQB QI!:#Z;MOZ.QZE>Y9^KV,UX]%4?3;!O85'
MBA<#_]5#"+]3C\!A_+R_2@[?E0+T.0#/SOC9-%[4*+7[J(4JL0!T(X#EH:F[
M6*APM1Z!K!?ON:]_S-X($V.8V+;! 5Z4[$T6II\'U7&AUY?QW'MR!(5PM5&
M!J:.K?WY:ILZ=B*'>(AS5H_NXAG \7SZJL)#X.=N012]!U"%6JB%X,]U)Q&6
M$I'0[C2"$@U$K).\G74#=[S&U%\H;:M/6**FFIIK^K):9YXS^/.V=+^WD9(C
M+#F03[IS4$\J@@1\.,#2@;Y^:CBDL>OK"^(S-YM*75F+Q'_WQX_3\>A^T)L-
M!\IM;]1[[ ^5Z:_#X6PJP W!2KBQM5A?3.*"VS!9K9ZHN8J>/7DNJK^HZM*;
M%S2 Z:#PB6?"GH:#!W_XPTDHU%2?@8FG/5L_-@KH4M^%$&LUM6=!F3\N.]W+
MB\YUM]-N7EY<MKKMRTV?(T;3@_'N8UL.Q0=FG<WJY]!>["HM:,D6Z;0-\2N.
M9Z$UQ46X,_:2M*6:->4=&"^OCO=+OF00!Q1_;,@_9.1Y4TWBF/:<O@KA"G^3
M_J.:+J"0Q%571O+2*-JE-3M,'KJ7T+#Q5V]5 />WV#,%.AXJ':AJS@1H (/#
M7B=MN*"6CX._:G5;YR7C6 Q:P&N;C]=VWKS^L)YC<- &#X79E!KEYU847,!N
M1U)V'ST8.H@8:?JWE%ZA_-P*8@NH/9?G^WMOO>'.VG"%)_D4_J)%RL\8$TW
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
M1.P_<#T/,QNQLF2[>T[;T3X3DBRY-2.)6DD]/?-THE0%DM5=+*B!*LD\7[]
M7<BZX%HW)'WX8HMD L@[@ 0R\?._?UM'LQ=$:(CCSV_>O3UY,T.QCX,P7GY^
MDR:+HY_>_/M?_]<__?R_CX[^^^S^>A9@/UVC.)GY!'D)"F:O8;*:/>+G9R^>
MW2!"PBB:G9$P6*+9[-W)VY_>GKS]^./LZ.BO61]G'F5M<#S+.GO_]EWYPWG1
M'8X_L6;'[W\X?G_R_H?93Y_>__B)_7]W4P+>,-P6H18R"N,_/O%_GMB(,T9D
M3#]]H^'G-ZLD>?YT?/SZ^OKV]<-;3):L^<F[X_^^N7[P5VCM'84Q3;S81V]F
M#/X3S;Z\QKZ79!RJ-/_V1**R@P_'V[&D$/S340EVQ+\Z>O?^Z,.[M]]H\*9
MD?]L,$@)SG\-DFV#*O"/Q_F/5=!0T76%[!R^A4K!KG<?/WX\SGY]\]=_FLU^
M)CA"]V@QR[[ZE&R>T><W-%P_1[RK[+L508O/;Q;AMR,NJ9./'TXXR?_\D#")
M<UTZQS'%41AP!=A^2>>+AP3[?ZQP%##UO/@S#9/-FQD?[=?[JQIB/EXO,$GH
MAK*F-*4>_^:80QYW&B-C@)$4COMQX$M(_0C3E*!3GXU-0ZYC]-%[BA"U)E7=
MF0.:OJ"G9/X4A4MO&+(D_3F@[!Z]H#A%EP2OF5XEQ/,3^AOS@^<I3?"::1(#
M]99+@G)4YXNBP1>4>&'4AP>]1X;(K7OF8<.8S3AWB# 6K+D;J@AZ JZ98K"7
MW%MX:91 8&(=$0>\O/1"\E]>E*(;Y/'/V1S0GS/J;AW/)OW)$_;FF*KL;X*"
MJY@M6I8AFPE.*45#"--J%,=<F"<K1,83MKQ[!W1_Q3AX99N+TSBX"IB!L4T
M7P T17.+DO,5^P;1J_C<(V3#_-'I&J=Q,E^47?3GTAC(@.:IYN<I.6J*BOL5
M;W^NR#IT3UOF&P8GL-ZK>RIO<8+H([YDJQE$YJ\Q7V /3;-J# <<N&9K&#0
ME8U^'%!RCM?K,,D68\RK\#4K<[\H]L,AR#/IW '-[7#&%5N%,^1>$$-S(*.U
M&<0%#]"2R^4JSC8AW,8&(%G>IRV%&1$>\4M*BS^;:"&Z]MZBE.!G_E\6S#M&
M%"V."_CCUY#Q_RAFRPK\BL@;+<=$"$:$;/OC QX5'QAKW_UT].[=T?LL.OG/
MS;$JE)1D]- F+PX\$G SRK:2I]]"^@7SO62Q9:06ZF_<5YU1=LK'2:1EO'7A
MT:>,F2D]6GK><Q:./D9L*/X-[Y)FZ&:H(A2LVVK8ZB(7"(,]OOB6H)CR%<Y%
MG+()(M.]ZY FXVC>MH,P3HZ#<+W5#B^*NJE8)13-8]X_9FS(>NN/%/N;,P?'
M1T$FXP$Q;'<] +I93T=KM'[J:K!B7.O]]D=TQ7 B?OJ$CK9L&!!=8>^#*D-N
MZN-H0]EWCC#[&,9A;I/Q'T7G')W>MEU!'7&X  7;;\.$#[!K/JNTG^7N;G:3
M:8.-E^ $<1E@OS9ZQ,^^,.GL ?DW.P=8?/&W:[9_"R/&.41/GV@632Q'B+PG
M%'U^8P!9,$()>>R*+#TY?WNG)X3#E"3LE.V4U(EA-E!VM2!X;<8\+!TPI:Q/
M_,Q'\K9NO["SKFXNIW!'PB<%BK-'/).@A@E;B7Q^P_YZ)B$F;.WY^<W)Y%+&
M\?(1D37?R9VGA+"5H4S:;4BYU,6P$TA?/# H+1"C6&C#>S#:<(MCWU@A=L!&
M.E$'GU8MZF-#U8PZEH5R?'"J'&QGC-=H>^- ,]=IH!O*(86>EL2SE(8QHO0<
MKY_".%N$;.,AV;T+OGGT<@TE/!J>14WRP/A57,;#)4U*Z6_>25@VT>A2"YUP
M_!XFKU,L[(2@2?V(A 557S(AZ:IUS,_']6W%;FNDWVZ,$791[D(^?OQX<C([
MFNUZ9A_*SF>L]UG>_8SW7VY.MB.4CBHS;&MO19'_=HE?&+O"W%&Q/W;^B7WX
MVS5:>M$%DT>RX>,W?(@ HF7G$ICCL3'/A_M2BVM4T*[^+,2Y"5!#V,*#J'F$
MQ8/U-&SI3KYEW$+LN$F+L-K97$_I;6=)2I+*#,D^[63(/OQMZVP>?!1[S,X%
M.BB%:TE5"3D51<6PO\;T&?G915RABBIAQ92IH+LJKPESL<'XD^FS F&NU5I$
M)U?Q\W2=1AX_^KE8+)"?W"&&6C!?G 8YNR0:;]),J":F#8&0+S4.LX:=6#",
MV5A*"-OB-JE)F1%36I@Y$<.;F\6^:^LG\C-8MFA]QG%V(-VV.:,VTCV.MI4#
MZANH" U-"2NE5@K=U9QLF8\-<)G,? R1KVZCI$@[-9=\__?H?3M-DU6VX[KU
MUDAA*_(&4M51-P%#M-)85$TL"1_.=(QD@<WQF=Q\5 14;4>'N%,38FCE<Z'"
M:FHP4GUI0;FD1FD.#2@]1<,IO8R56#GJY*K=0+.JS0+T7"OP.4%!F&2WL1>8
MO/((F%*9Q? J-9"W@$*Q=@[0M+*C?MB9P$0DV HC%P8C(Z%A/#K4)]_NW_-0
MMV1/O_U-N&NM_3HEMC>U\X$FOOFO<HQWO_?93(M8@X6C3+HMKJ!5[GT;Z#A>
ML3-4O>CT^3D*\_S[?#)I[L\?B1?G&4K*U7R7SA0+WJ[=[04C-3N$;MT-R,PA
M=Q8]]0(/0X>#'4DWPNN[E>X$3SYWW1$<I'XR)P^(O(2^;!H3@0GG!QG@M.3P
M])," 2J--DMA582)H?M,@QK68H/A)YT?Q?B64Z42S\FU^\;['9-M+KY$M]M
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
M82LSXQDJ3V5,'IB[%J-<%:N6O9-\C84DLW/G62?&I$A-<8R,DA'>E]8N-9K
MFJ6!"!P$H09WE]O@%L0./=LJ^*Y\.-OY]-=&7/U@-A#3N".839/)AE]=X+/U
MQ9]I^)S-XKH-LD%+^<T1L[:0^*'=.!NTM.?'L!MI.Y%A:_RFOXIC0E#MAHX9
M(4Y-\AY%;"4=W/&;V=F3E)Z?K6+/-M5?%)9IWH%4(>VZ<,PDI5FV 8V('L[H
M.DD#Z[":W-1LR*A:G!A]MP?S_(ERS>Q6@Y$?K#>A7#RZE]T,\B@*^-TA)M9\
MF4X(?R,[.[4]V^Q@[KQ-=DB6/>:^Q3X.C.Z%CC&4E+=C#=;[X%^B&7A\U*>_
M&%"GM?;@X$@TNGV^4TA4]BTM5NY_1\&O,4/Q(<'^'_-,%IP(1NW%-T3\D*([
M$OIH^VB]E2GU&LG2DGJ/M5_R:=/1P=7U&FD,^:C&ZOUDZJ@JJG67O>F?_KG6
M,1BF][F]&>76Y:9/-'O<+[EX*?9A*K<IAI:;EAP>!JUJ)R2#MZ%W0(>@93XV
MQ&1ZTY2A7C,O%<H.;\NCX").9*DW*E#-Q?(VL$/2#&[--X&-R1OZYKR4RZV[
M\R(<'-V>;R+=OC\O0M;IW%!Y#BI[G$TS.<C I=Y2U0 (N<KY0=[ BN3A9@@#
M"6!37":?(^3(5R<)-=)N'U6J7+PPJ-DD Y?JCJH!$'*5YB)O8$7R<.9B( %L
MBLOTCR=)D:^]GJ1$>I1R?C>\@@8_8557\6N"M71 !3@2NLI2?6U (Y2'*\RG
MX!C6C3UY&;XVLM7J>V(D!U?'>\0V$BGBC\HN<_RN^']>=/K\'!5W9.X0"7%P
MGJ[3R./INGE!P.R(1?8NWI!="W5HR,X!L5)J7L-U/AH[AS'C$;0&CT'CI.YB
M.*:4+F989CBN?8.")0JT]9]:</+++B)(UY1IZN&T(,VH&[(RCIR]6#NZ@QHY
M+73KA7*$:+I-$2,H")-+S\^>>U=EAK4 Y8E10E#GQ*D3P 2@A@0.F/*EXC'6
MCS]]BI< X5IFEP31ALK_?-S@V#7[F/U0_ZK IT;.Z^OK6Q^O%Y@D=$-Y(8R4
M>OR;XXRH;7Y&->"W_9+.%]F1T0I'#"'*[\4EFS<U8:%O"8H#%#28\?'CC^]/
M3CZ<G,R.9MONV-_G\]N'^?75E]/'BR^SAT?VW\W%[>/#;'[)/LW/__.7^?67
MB_N'?YE=_+]?KQ[_A_6ZCF):HV8K(#Y QIDGCZ(WI6Y-<V93DO3(7T^0'=0T
M@([=H)A+C9\-XEA36$33IB3 R'2-[6K%6A(_?4)'6PNK6H#PS$G(_MI!DYJ2
MAB>85C(-E)1^5P([CB0J'JX8QU ,*A6K2D5"C5-I,&S6O+(D<W/*^C("N)&D
MD''E:%T,HA:!4I?JV<\M])VR_9%D(?--AE&.G+J\CQQ^2C&\[RD&!1E.Q;'+
MQ[SSPN J/O>>P\2+E"+1M)E2+!]ZBD5#BE/1W*.$88V"LNZ?4B8RX"F%\4-/
M8<AH<"J%W4,2#+6LH)QN#54!'(?[7A09S] MK(6+I6(YU=PG,02"Y!-/H6:K
M_8LH _W\AN8/G>]^CS!%P><W"4DG7^Q>Q3YWK.@+RO^_BMO[EGL<19>8\'O&
M$M%9]P)@YC&3L#5ESR3,$A(SS7)L>+(-:,OPVH  5F@=5;-NGVW*X BHLK+,
M+YU>49HBF8U)H0'8T@"BDI('1UZ")6B.JOG*NX0'L,0;0&8* N%([8[@19CP
M9T%DQQ$5  "KO0'D4J4(CB R,G*K_I(27@PU.[++-.:IE?GT1!/B^8EJRK+O
M:TKQ_CCNK&9//'A-^"\O2E$ETV*;92&;$COT V!=T\L.#/1 13YX'<CGCP&4
M0-D17"W0VX"I)Y#1#EX%<A8(<[.Z^ %)1P!6S=,X @G]X-6@4.(!]$#=$W1?
MH&2 N3, KP:5JOE%D8M'_.A]^RU,5GQQQ.AA2R(K=>C5XY1J\6^C+15[L0".
M;N0ZS$\8&+K]E*);5P"<Q #VT<H2M^8#')6HL.,12TZAQ#/I/6*60\,$/2#R
M$OHH=Y.5RZ69W]7[E)&&G5+5_C*%XQF)3W!4\4OX$@8H#F@EAGGNT95$A>3@
M4XK^I]%$+Z</CLAJD<M,H4Y]1AOAJDB3&Y2LL&R_:=9T2E%^G"; *Z45J%B+
M0AX%PB;2;+8 ,.O;**I4<DVZM +[^7B,*[.[@N49*GE>!LV.SG=GK^J[L1\_
MG/QX\F%V--OUQ3Y4NYO]:][A_P%[ ]9?H2"-T'QQEM(P1I16T3_;5#XI[\A:
M=S.M*0JP4B5/RZ#AW)SM*+9:RK&,2J=.4X15[BK4Y1(,VL&X;:M119V$&C3U
MD94P%?,A7:_#Y"H.V(*9A%[$$PH2DF;U0*\C7WAKS:(=@$G,6,/*[$=#T@87
MQ7\\W"!_Y<6AGXV9!5PQX>]A2*6@;P(@TFPM #U5T%S6M>9VH;J)LWN&)I34
MPC;6T]#^W4FTH9'1<,:P^&. 5=*N*Y@6.YA>[ B%LW/;X7_)68ZNPQ<47,6)
M%R]#IL:GE*)DNX,YI;S^]8[4<[Q^"F//3B$&&P? 7:[NVC(8%YSO*7D=DOE3
M%"Z]3MO*O[2WE;S'6:5+^%M+^,F5G*=7V6).\K2T"A#.9E";1BE"WVV0NH:0
M_MU!*3B,/9U<C^12J%(QPB[NB6',_6+FB7@Q=H9P2"DFFUN<(,4VSJPA@'V<
M3H=VVS<SD@YY28>\).UZD&M01H;YTD[4!,":WE!V2C(@KMB+ZF\AHO/%-8Z7
MCXBL.TC-M!L ZVU;29J2-IATQ5/4%I_=@?R-1Y9AL5J6B<JR+8 <"K5\+.EQ
MOK,IRI]=,A++6!SEUW7.4YK@-2*4@7K+)4'Y/F6^*!I\X>G D?$>Z(>3#R?O
MFWN@HJL9Y^]L._KLE0T_VXZ?-ZJ@,,.+;<M_+=  NVN2<$^UAU(W&< /:RJ^
ML^54D/K)G!1W9"2%[,5@8'91)HPO:\"+2=F9YOLQ9D,S*5"VOBVPDI?=5\"Z
MW5#IU*DA !$!@T]4N[.'AWQ)*MT\22$=[I:,5*.<AZ0$#,Y4MLSW$V+"5"FD
MPS6T%5.E!,#8<):!U (YH[IBXC;3NW+)UL;4E1O2-;)?MQ%:CI?Z7:$Z#(P
MF9&VU412IV)P_W.+7JO'^%+O(X$#$/X2ZD+I<R1H#^_&F?B2,%Z>I6%V6=^(
MIR:-( 1(5 PVH6'X+7-Q!YW@W]F4(JX@I8"#$*I0\52"]EAL//>BB-XP/-@6
ME#]CP2;R&\SX@GFVFHZW1HTAQ!X,&&Y$R^3[F1OO=TRVFWK)GE($-/TR1*+L
M-CM*$2%N]Y/\0(7'"BMX2?>3"ECW^TFY(I7,5Z _N/-Y9%NL&$=XN9&ZF#:(
MX_VC5A5*A]+&?/C=N!>G"\]/LISB$AOYCEP%[7@#:<Q5)1'#+^G8KM93K]^:
M$ X7%E:,;"$^./-^05Z4K'R/H ?$[ZAJ%537P.$2PHJU.CH&Y_1\L6!+E^WR
M6\=G-;C#2DQ67%93,3B/LPJNT3VBB9<2+\YB71=LE4AX85=ET,ZXI</"!E:<
M-R9H<"%\Q2^(9$-HE5P.ZC"-VXK-<@J&7TBD41)>>NLPVC!9,LGR-&'^C)-\
M,:%KX3!CVFY!H2/$:9!SGJR0>N)40CK,=386@I( Q]4#A'O6:\VM-'TS9W?4
M3"FJ%PU0[=SW[_Y:@;],>KN? 81=N\AK1\"X=Y;N$/&93+TEVN)5O0=3O08C
MF#^L6@,(UMI(PIH^^/>8[A'G55ZYC'6WYJ'12OY%A_M,/W2]S[1%95;!I9X,
M OU>T_;53!53+[X]L]TC"A[#-0.9+Q[8MY2'/D)U^8&A.G?BE;MC_9!X))&\
MA#W6(&#N:PVK4(+99#"631ZZO_?BI>P67N4W,/<UAA=E@U(W$A#N75J_NC\@
M::E+C8/N#@ 9.];I6LK%QN^.ST@$$M^>[=41=7"2^DW-R/KOCH]%5(RL(^KX
M.:^>/DNWI1YR &>;[^&Y-.A$O>\;>C7E?10+1"@ @/9 RG$S0GBW">\C_FHO
M "(1 !2ARI$]4PD58_)ZMN_&FH.VW0.X"@= B8Q8-6X(\Q[%Z)5/>\7EO^J]
MOR5!^7OQ/"-4>*IKW!; VT;CR-N2#^!<Q1T/,?)D%$YY$#),^RPB['L#\)+!
M)([ GC/?041\X:518A,8'SDJ7F!TB(Y#B8X? I>'P.4A<'D(7!X"EZ[7@8?
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
M\(M2*ILOXF09.=B^Y+#**1B=G\JK@2) &#<#92HAX^9H3J(<I*C7+_4)$C@
M=P#EVE R4X+[N+Q4WD&30@*XZ&?)SU&OFU5'4EXRDP$"N,EGQ\]1[Y/5!E+=
M(I,! KBI9\G.42^,[6M^5+>4V$-^U"$_ZI ?=<B/.MRJ/=RJ%9U$\(?<\YG7
MXM13U C "4O'\TX1-7".5_;JZ,O@_%*N</MTZ"6_.?.0L'\"[6T1FP[VX[9S
M%\J<'Q5E=5GMCX-^:C\PE/<$_ZSG&E&*<KJ_(.J3,&.XZLQ'V>(?>$,F<W9Z
M!A\V9H>-V6%C=MB8N?#TN@V:MI6SC9HA/?4\$H4OGGSC)@SOEO>C,R2K3WQD
M7YQC*GKRQ*01@ V9A<1,J8*S!9BSE8&7A/$RP^XWQ"NJH>#TA7V[1'QIR!.5
M^+*W6/!*[,V^&P#;@0ZF:$\G5%$7+ZP:R7,+"R ]LK?0ML3 D4Q.4QU-[C'X
M;>=8&<XR: @@9[+SG*>F;-R+_.6%\SRKF3[B>Q2C5\$T)@,$D-UH.77)*(%C
M*4K_NTW&W&J+++_-OAL ^8M#3U=".N&(^L[;\"4KO>0UVJ4+CQ84@"RT#H)J
MD0%'#B)/?/$MI F*?53ZBD=\D04:+>8I11\ LLX&FK(41$XT>RT6#V'"MAU9
M+-O/LR:\Z(+R*'8>[>5YCAS%IO"Z=P,ALZ3KU&=%J//(_RY'E9\S\:41TSR&
M7-CA..!C^SB@TOW,BX-9;8 ]."7 /%VH@K+R@$ "/*VWO8J9E/,SINR,B@_"
M[4>>(*)L ><\02F*JAM5TK,SN/>.IT4)FLH\$DT;&,DD!AIH(*[1;HU_)4R3
M[@A>2)Y?D<  N#]@I#'E?"0@P?$K%!'K;OF5;0B)%[&YYC18,T;RNP\\.[L(
MJE#-6Q16?0 (_1J+K".)CCU8?JDA)U(I.3$H@!"NM8#$E SNI03)RMO9+^&+
MRS#(M@GLZQ4_A[N2_5SF)\N?91MO* #17BN?.1XG'!=Y:2R=SC:W_/(9RF.A
M^=>JMW-M.@"3]V>^8+0A#Y @"R25"T9E"QC+17OME,NN0>#P&9PA?4X3]%N8
MK,Y3FC#/HJ@=+H<%L)8T4*5M/J><$+<K2H9QLCG#<:!>-+;  *P+#=DOI^&0
M$*8[F]>Z_\/5P\/5P\/5P\/5PPD7WJW3 ]U"^QK"A4,M%<K%]-[FAWUENLBI
MN4<13]AXQ->,ZWF5JP>4)#G*$D$:M@6W$M%)UY"ND=]8J"^>\L61)&_/ !Y
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
M54+QL!GB&&P0MG?P,9HG0)0 U3+^/CHIO)%V>)MDI/@;0-5<M4VA&IP#!6"
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
MTY0P0*6S.O;W>TPEYI5R&XMUP8&4+!#$]X!:9W%]D#6/)9#%!88.5BHZ3"^
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
M6WC(:+EFTX+:H:VE*<X T=$/ J6IG=V \2)W!S.H.JS2DOH(%-^%*>"WRUE
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
MBJG%Y[MM"&V>"VZ,'LBJM6=?9EC@Q>FA%#W^/*U YP8TA@294C#")2-5T;
M-C9#RT-B7+48^V0/A;/9+R^>E!+JQ.$)'"=$9=5:UL-)R2ZA))%>+=[)OXX/
MZB3DS16,".2';^U.F/,'5^0744Y?I7]QMVD=?;7)X(;4OG:IG]GJT< +BKTU
M,1&,.4LB\YR1U:O\089J^U VZH-=DCCS%U]U.U?=&G=$M&A9]P;77E.\_MTF
M\-&O;%4\%4BC<53X,Z;T/-HX?MC!//O]IN>\M9JWN7&ET[0<NEYTDZX](SD3
M\EFPZ>/F:_^%N^[;GWYXR]V7?? W6%#[Z67H[9(T]IW@+.(Y5"ZPO0K<CW2S
MHO&>,;KTP^F^G34']]7N9-=]O<CE*7!\NMSWES-P^V\K2GHD;#I>U/1A"X!
ME%1/(R($(:4D1!9E1JZNSO(VOT2P#1_"VLI)OAMB6547].-92\<4GP6O<1>5
MHYN _\*FP.T_[CY2]]$)V1HQR ]UHCBY#-6XIM$%+Z3IZINC65M[W$"F+?V
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
MKJ)DW\E'"NEA[9'D.?G9,SG2^Y(,[.B+"W?HX!*/'P3PZ8P$_%9=Q4:NL%'
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
MP[PF O-#6-C$P6$CHPG ^2#J(CPXG!&0$5:J^RM4W.<\PQI<99,IHN<=3=-
M9)2.\QM4&7Y5.%ICZP'!5.+VU2!JG<XH8542U"BP_B1,'E(V):2#)&6,8'FU
M<::(L!\</[R*DN0R=(.=1[W+<,'F[JS92(#;R/^KPM_V7V) .%8S_VK06<,$
M*,$:Y&9+9B;YMR27'4IRY-)_"5/C 7^;N??W79**IR/32-K2L 'NIUD1E;.R
MADJEF,E][(3)FL8Q]>:KA)\**GZ ?I1P ^X1UI&ALP<9O"!XC#*]4R[S4C\2
MTQFIL"427_(YYVQG=]6&B:K&2$L./ULIJ.*\BH=YH[G[CYT?T]PD-/D0,UA5
M&$ZC&V[ T-6[4B^EI0]>*-"6O/>9?,8 QLF,!2EYL)D(<!DBQ)]HO(J:@WQP
MY?EMKZWC>Y!I#I>GV.S#5%Y,!X3Z+8I_9YRS _AR\E)S<F^&*LX(-VRU/!G'
M $G<.3LF%>P]XRX2$9\%BSS;@R3%UDJ696N]J" &>]5-MQIF6YD<><(0*249
M/7<(@_5^V_,Q1V4.; L\*1> +7OA1JTJ<^AHHC@QWJS->JX :RCBG0$:TFND
M=6$UI2>7PM+\T;+IKJ.4V<"'$V"/;T-%\08NH#R'#%_Q %5=@=UBDZZ39=LH
M31&2M*S3CD.-9*8&/GK*&$></!&MPE?:-D>T$36LA?)BB)Y&LMXV6T,CP1LX
M&7@(_7]23[S_MO;AU""K>B86^=Z'*/*>_2"H5D%C;=@JR+NF'7;'#7&;'&Z9
MM'(+MIE@-2G\,ZJP68PL12.R;'F)Q%RZ&<GEFQV43<QDG!$FY2!X"J55.^(I
M"HOSFK#$R8I-9ERY^0+)?(Y@B&>^B\)VRH.3+VA0ZGYT:YCK5SE(=3P2-LGR
MJQNT!CYJ-CQX(3R@1O4C2.8610026$'XLN4U!SLKI]\]S5MKUJR4JE1&U>QO
MJL_TB\3PCC8W .&:'+\X!.^JMQ4 5Z-V46A8DG5*V#V6^5$59#9J*UYB-A4M
M&17J\YS24>!8S?HK N46^P\&S0J^7PE MVF/#::%O%D'3C 7>?IH/=AOP>;T
MF5%WX2K[A^N*B7=<,)HZ@E^&3ZQ]%'<X-S3"Z^O!Z ,+#P7*!:.O X4/U44&
MNX6 DP=9<Z96V61RN%D9=VYB"CG)BY<M#1/*VB_31QJ+[\8> UMD^7IPM_,O
M-,IDN4F0KP.WNYL#&:[O3Z<S'4BF!._(U<A:3![^Q_O%<E-205T\$A@!@P$O
M>9BQ"Y1D3"[#Q8O+J"_7L'RHN;]O202<J&_S]VBX:S(H_\E=3!G'&L??8H&:
MI0G<N*><!WRTRKC8OJN"VX2U%UMT!\EY_2"Y-T;R\KG\QUD4/TXN/X;K,+A_
M(%Y[& 9"6F21TJSN0KV_3WUM=1-'6QJGKS?,8&EV%+.MN5XY-F^<HZB57V"H
MM9*2\=>Q-FI7']E:*!>8_04BSXK3X.WH5QVG]7ODE 6P*PR&8I6SW/(\T/#A
MBC+);Z%4_'+]*:&UVUNC,\>)R79^@R'6-,V<OY[5C*8=>B>K/\I/ \5 'OZ
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
M@2M+CIOZ3W *%-/ R:H7\3@D4<BO,"5;ZOIKGWU3"5F[46K8'O!X>A3X'C>
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
M0^;CSP%+XJKQ:9PP'479N%0V.53VW[XO!6/0\/M?_B7_)"/UE_\?4$L#!!0
M   ( -V$6%G;6@Z)&4<  $TB!0 4    9FEX+3(P,C0P.3,P7W!R92YX;6SM
M?5MSXSB2[OM&G/^@K?.P,Q%;799\DSJF9\/7:N_:EM=R3>^>EPZ:A"3.4*2'
M%]OJ7W\ 7B12)&XD0("48F*ZJFP 1.;W(0$D$HF__,?GRAF\ S^P/?>7+\.?
MCKX,@&MZENTN?OD2A?.OXR__\=?_\R]_^=>O7__G\OE^8'EFM )N.#!]8(3
M&GS8X7+PXKV]&>[@ ?B^[3B#2]^V%F P&![]-/[IZ*?)Z>#KU[_&;5P: :SC
MN8.XL=%/P^P75VESGOLSK/9M=/)M=#0Z&8Q_'IW^#/]\>L@*/L"^S6UJ2<=V
M__$S^L\K_.( "ND&/W\&]B]?EF'X]O.W;Q\?'S]]'/_D^0M8_6CX[7\>[F?F
M$JR,K[8;A(9K@B\#6/[G(/[AO6<:8:RA7/7/5]_)&CC^MOD6M@3ZU]>LV%?T
MHZ_#T=?CX4^?@?4E[2+Z-<-'LN+HMS:A?$Z6I'RI_50'P\ED\BW^[9>__LM@
M\!??<\ SF _B'_T<KM_ +U\">_7FH*;BGRU],/_ER]S^_(K4?S0Y/D)R_-_K
ME!_9GQ>N=>.&=KB^<^>>OXJU^&6 FO_Q?%?HB>FM8(DP6 <A6 518*"??$,E
MO[$U&HO(I+QOS62<A9"JJ!]7GAMXCFTAYEX:#M+T; E &'!+R-*D1O(]&3[\
M]1*$MFDX$H3=:5^MY)L?!M/Y] WX,=T$08QK6Q^)9Z%G_F/I.1:<(V[^&<%!
M)U[RJF_HK $)].?ZH#ZZN3*"Y:WC?4@8#KFF6Y/WV@Y,QPLB'UQ&@>V"((!3
MS=1?&*[]1\VIB]ZB NEFT6IE^&M(-7OAPN64:<!)U32]",ZJ[N()PF': /7T
M)@AM.+\"?GR;?4R!3I[!.W C<.M[*TC)T#?,,/@-+FZOHB#T5G H-E !0]L*
M)+XU;/]OAA.!!V"@?\<#KX&4F/842'9A0K,9V/4F:EPS"N3X[GG6!]Q1P<%Q
M9T%MPM%CO#K@SH6K^H4-_W81!'"Y] C"!E+R?$2!#J[!:SA]=>Q%S747H24%
MTMS#H='(FF8-*.C[E;=:V6$\JB%7D"&#]ANXR'HW$(C8JHJYL?F"E]R8"IG
M BFXT1Z<V%@GUC#9SUI=RVP_JN.:Y@59>JDKF^P+NJQO&DM,;%7Q6J>Q<%6-
M:;WN:2PQ_Z?4KX$:"XUI3]EZJ+% Q6:T6#4TE@G?I!8KB.;R89OLQ&KBSH4R
M@1?C$P37(#1LI]UU1=7G.Z*W=Q DZWTU>BM_7L>5V:/AH]. =Q'LJO,Q'74"
MBQJ+A0^2:6LZ3RNTH"#:EW745O;39 $#Q\ ]7-G8#ES<M<(IIL_KJ+=GL#)L
M%YD/X,=3DVN"W&*I!=6Q]D"7/55SE9";5;RK:BY>96N*I8K_[@-K=Z<C5EKJ
M5Q1K81HN@2\/;'SS6N^JKY;P)VBM= 47!FMHB"Y6:$DUG6=--->2C,YHK5/*
MK]O4*&M7U'LZFFL%UZ!ZV6+;(%S 8JOJI7STX*;KQ;N%RQC@3S]<M)@6+3/I
M&\I\6LVEW&E'F22;378:H>8NXI_+V5?4_Z0R_3P88>3'?9G.XY](4 C3-_0Z
M$VXN.DOC6OAZ'Z/5*[0\\]G2\(6X UF_H(7T=W![ZB+O$0IM$S.I\7Q$"V^X
M )'Q;<J2$#48P!;CU@)@_K3PWK\!TXIO5*"_Q/+'LM^Y@0W!>/$-=#7DPO?1
MFAP3,%9J+I:4U *O@&]P#,":L9;NX>]2J=!W!-\IR&D0?(; M8"U^:D=HL]-
M)J>PCT>3H\'70=98_J^&:PV2E@?U0B:0Q%!FQS,+W7'0G13/9T#4 G:"*/S+
M%E'XC]^OO'>X/7T-8A]4UI)CO +GER\5O_\FL2N9OEY@BQ4]R?_Z][/C\=GI
M\61\/#HZ/Q\/Q\?'V[[EJ7'A%_MI^&;6-/QKB2U%_:<EOKW%L==?S:7M;*"?
M^]ZJ4D/IUSS&3GL^'!&_?!E^&40![(OWAGJ-(KS;T/1_1X8? M]9/X,W.$@(
M2M\IV3G]L_0_A6*D!(HGX-L>M#_6M1&2V%\HUSD8Z+U/03A6 @*<F=S$2T<=
M$+M%B\),H#"G>D/!)$"*QDFK:"13Y:WM@&3)6X'";I'.:)^IXZG63Q5H_1DL
M;-1S-WPT5E5VJ*I8Q[3/T/D4@3,%"*"H#A\.R%AA\6VH*^3K]M=7GH4'A%BK
M8_CPRY+"=:X KA?C,_.E)Q?$*38+4[YC$/%(D8(S5@#.A67YZ+Y=\@?<)H(A
M%IB*LAT#A56"%)")%H",.  9=1Z0:@FR/>"1.D2NX%^G_HOWX=+PV);L)AJ4
M_F=8M+LA+_0PGO*F_I/OO=M)Y@XB(#O%NXD*BQ 9-.UNT O=?/*"T'#^G_U&
M7(Q5%>XF+'01,E#:W;"C07SA P,#0_[7G5$\M=.9JMO=C:/$1\[3TG/QN_'=
M(H7>CX^&XZ&F*F?J>*;V=K?C,V"BT][U</3Z@DX9*M2^6Z0S:F?J>*;V=O?@
MZ=G4;+UZ]9P*G1=^WQF%TWN=:;O=+71&A)M/,X[PP_B<JHIU1O?,G<\@4+%1
MOHI\)&#B"49,@;J+ NP"I[IX9R#A%B*#1L66^<X- 1+"?@?71FBDO28X JN*
M=PP:#B&R0SL5>V?DQO>OX,9EX?EKXBG%IE3'@*#W/=._BOWR;&4X3I94"ZO_
M0JF.Z9_>]TS_*C;%-RO@+Z#E_.Y['^'RREN]&2Y^'%26+LHTU!T/=ADR7-K=
M%Z>L60+'H<&1+]0Q%*A=SY2OXMP:1:RB8RO/_$<2J3F-0I2"%RW \0LJ0J6.
M@<,M2@:6BN/N*X N7SIWK@4^_PO@!\M.N:Y!PM#[#(5VM]M9,,JM'9B&\[_
M\&_A3ZKF<DS)SB#!T_\,BW8WX\4>)I%:;&CDRG84#YH$&2+M[LW3?<^6,OCP
M0%S1SN#!)4 &1[O[\0O(%ROFC&-43>6%WQ?[/1J.C\=Z*I[>ZRPD$[/%_LNW
MW5A\40'Z3"GQ<ZHCAN</CU!X_J9)^/>KZ>-L>G]W??%R<SVXO+B_>+RZ&<Q^
MO;EYF7UI(39_;@2O<7M1\'5A&&_IE0LG#+*?;.F7_N#W3?>G\UO;A7JPH>WR
MDC!.3! _7]7ZXZ>...EE/G+'BX5T&5=U$$%#CD,J[-4 *.8<0'-IW2>:PHH1
MRQ "/P!Q237PII:=">6=LKJ!S0 :#FD6R3H/.$K8CZYIPC_0E;UWPP'HXF:8
MI6V(\[M@",!45T]"L&!;YD5]@3O/DTO;<8"593YZ!B: XJ>)_ZJX@2W?)S[P
M"8F]K,3' ;@P?/4V+'B#NR!T5AG?^&B7$C_<UX+\P58!&%(0:A0U=JPLYD<$
M+7C%Q%Z@JF\<%-+B,9;: KGA4'T"2J_0)U)P2HF]QM65"0.E['1AL^OD"8HJ
MX/-%^@0U52[L;;&N@/OD@S?#MFX^WX ;;)([%'2&P9RA9I^H4%=<[&VVKC D
MF_OR*3)CL5%N.")#&&KVB2%UQ<5>H.ODHH'%=/362#";@_)9!B?87F@XBB8,
M[PWXX?K),9*L+7#[_(9\</C5 :F*GNASSPV< @K:0*J;%(IYX9[MQ3*<SG^D
M&>(P-"#6Z04/^"64NF$\:YL560I4# &R7_<":Z(P/=CSE=+2WGR:3H0"B2@H
MLU3M!0-J"]KY3>-UVLW-(RCY)RJK.(&O4%30R7",XOR[Q@1.\01M"7'NX];-
M?FXG_.BY)G'I7UFV%R1@ETS"AD_%'H^XN>L%I 11.K^/RR4PACN6<L)72L@
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
MA#_G+EAN32G99##5[389ZHNH.F=:8V8DGOL9,",_3I.#5F1>%#X#P[*=]36
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
MTZ#ENDW*T"N@Y>)H.Q^.1T/=3%L)ZT*6;TDJ(%QP4_;N0\6MVJ89?-4#+@M
M_'S%HI"NP"\APZ]Z2O  Q08S7=Q^9/C5$SNZ]HM;K_J"[V>&WWZ@7DOFSF=N
M)4Q_E^L'X^^>?^484+'X>9ZC!=UHT][<WU1)!)ZI>P8,+]-6HD=C15X=<+;2
M(0HQ <M%%6:%:/(FQ!1U8^H_^9Z5S)Z7AOD/QUM4SCMLE3J$/S-:90[4T('J
MI4=CLKSXA@60I@(B/7:+%94Q5A[K*X<03%)W?C%R!1?<W@KXSR!Y="U8VF]D
M-A!J[ <Q>!4@(=N%HO<2+]>;DR[J$I54IT,\$;THY5:+(/8X2HG3_%W(77V1
M%[BROZL=@;EI1:!FJTH3M(:J0^]*SPTF+_3V#+]Z<N2IJBUY6@6^Z EJI#N%
M'*HVD8$?YLPC_-?6-,)__/X,9QA0,7<6?J<=2Z3/D73Q!24R:A?H2GNQ\UM=
MP*9#4 %7G9$I7_</D*^K:(75?N'WVNF?T*TB G0Q]/12T- S/LGHY7_?8?2H
M8G3>P9![BCU>,+S ;Q'VC;CBNF#<_I:12R."TI<IV2U6"4K<YN$K%'4S@;HY
M4<H6+@S9*$ 05+OU< ,2W+DFB/N/(AW1#>UG(ZQ>4M5HH0LT(>!,)PJO['JN
M%3CHD]E>@GF^I[RFR].$;@1J;U9JK"4)F0*UH]IO &6&@SI_![ZQ #\",(^<
M>WN."^YMTJ1N5&Q,D%J<XU./U"<M.ITG1Y.$:[VD<9N:$[1]Q#WEQ?ML"^OM
MRL<(+5&F\RPIR(,-!0P]ES7;!;Y^C_DE1A=:O<W RA=TQ;@^6W"U]X\K7)K0
MZEF!%I_BO?!]Y.2+GW6/W7W3^30*36\%@O@8[5>X!&&?-!M\I(#*R1%<JA_U
MA9\M*JSW&?]K*NS>^Y#.8OB- XD%Z$MJVGTADS9Z9/#6\3[RCJBJ&(J*8CUF
M")?(K620;_L^?/)V4>X'-2["'U,NPL??*/YPWR[ 0T*=3<Z/SL<GH^'IZ.@4
MDJOMF6EF+H$5.6#K>LPC<KG._8MT 9ZW&=VL!S=*Y?E$B HTN:\B_H*[!A@+
M 0B_CF"17F-XQ5]@UP!R'FS8D*6+*_$"^S4P38]T7;E8H-B]X7!RI!\:='T6
MUV4,$JH^+JV$[L:Q@.G9!.QV2O01/!8158=65:)7=2'^$:ZHEU<&_!I<,&!1
M9:S91[2;B-[YVUD5"J2%.)"JZ,:/]M929!6HMA:2/(-;W].+;[A!(LF0PAN6
M)G3C$3?@K'X\#O'[%6_P9*QC1^6+EQKL3#\@^.Y[ <[XT*KUD#BU1)9\=*\L
MEQG#Z,G%.=PE2:6MYA:IHM$>4DV"0@2MD'!$'+?H><XEHLT'VNRZ[Q]!>+5$
MQR]0,7 )Z:]M=W&Q0L[YZ3QK@MM/?78TW/539VT-#-<:Y#M43MGZ[P/8*5@E
M[=? =@=9SP9)UP;>?-N@]O[M/!*[J7"W!P5DAS=G&ZK<W5DWV;S:A=+%\3A2
M?NNE%FK5KFNZG P).5L_7I]!=<?'LYF=G8%%/+43G-;$.KHAS -0!;S<HNJ8
M=37M--%!72BC'8C<,%1 2150HOMYZ]!)N\'@]2J4U X1JC9Q'BVZ6!)QN'&
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
M/0?J=^AQP ]^2+:J(=> .03.0T]Y27/"D6=6C\;"D&#7N_X>/!8OZ$E3P&:
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
M>IH)+3VG/CSQ\"&GN;)A!\^>&_%FK="MH+UB3T!&9D[$D-(4Q2,;Q[Q!VT>
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
M]Z.67M>QU=\>W]OT-^)^-9PN)8W?C#8E"%O8>"C#IUMNJ"*. &40,$,F.[Z
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
MCL"YC$\^E_&,5Y)0[4Q"-FROJK2WMR 3T7AOL!#+M=Z8D='D#C8,!O>O 2H
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
MY0+HTDX,P O FV\%XV7P[DTM4([]_L3D*^S$<C?#3CF(B]S3L0X)84B1(%$
M7P!? -_+"!<OP[>T'8S:\]YJ*A'PE'3*A]J@68X#YUBV(&&H2&63^0A2,;*V
M36#;;:Y;+Q;J;)<=,.T"TZT6F&J'ZW*"&-])-&0+[+C'=@60IO%1A>[R3[1W
MP*J?(D<(FF5%G5?7;,U5+,:>,_.U81N>[R;UV-C]1K.]<SKQ7J[2-.S-'6F$
M>K[>;.I]EV:BEX[S+RBH"),DV.T!\+QY>&8K.+P;GC-Z,-(&_:G%EO:B.\3Z
MI:TR#*.7CM,JHL4,C8*D"@#/&X;GIT@*[X8G3UKU/FG6&,@X;AH+>UE9K.LQ
M/.,C'PA2Q% P>P)XWCX\LY4,W@U/D=N&)CKL(Y#"::V9%FAB;13#,U83,!@K
MHG0F^ 0I$%F;6V>X;H'O%@2FS<8'/!A!8,6/TPTN;5Z.9-Q+)W1]LLQ[:7-?
MX/28Q_^Y:I6BKAAVV_$\WJX:WF,E>'[!>)[FGSN:UVJLELYQVIB;V^EL,3/7
MY)'9]&7J=#@$Q=+D_6]  8 "  7D5PEY*P580FN\E2&F"FG=HR\/F6"OE^,+
MQHEHA46F$S$  0 "  208ZWEK02P7X[#ANJTVN;!W4G]*:Q5)3LF /K+=Z1(
MDA2@ $ !@ *N2<]Y*P48'8*@FIV>#1F8V<"8RG@NA#$%Q#(.7"2H=$+71W
MR GYU(,L_$:+G=#6"X:M.FL-Z.1 )[\9G?Q3Y)4G!'$)@&**/7=27V.XEAIP
M0U:8M4M&?<=#!U*/WRHIKERDJ S/I@ L BSF!(O9ZAROPV*'<L@9&N*45#+T
M;;/9V8YLL1^]59S>@>)%&,LP5QU@$6#QTEC\%,GAE?.BWF#AL;9?F<H>UJ4>
MP5DB%$9OE>1RH$4HRS.; (L BSG!8K9K_]=A<=M 9DC-ET80,NUO#91;,Z4]
M$[U5O.)':*H(PZ!VQ54F;O!B@QT4N&Z%[["%?QX.?/S[&Y!LK_P WN?;?;&3
M>A<?;^#G]V0W\/-[LQOX^3W9#?S\ONR^5S\'VZF?LYT*(\D7</&]FIKG@]U4
MH%3=FE+U*;NIG+V+X+/6;/\D53T"ZMPY(WRW&O64XU#BR:I-6$V2#D:,#,-)
MO;\B!2J? SS> 1ZSW5%] QY=FL):2]-F6*6-[Q=5F8'"2C_&(_'E.PWN$P%H
MO&4T?LJ>ZAO0Z)BNO1W.(1%"^G.RA:R'/*/H,1KI+]^)(D$#/ (\WCX>L]U7
M?0,>0Z73V 0KEI,.DV-[W>OV2@R<S([)[FH1PV"PMWIU>ZN_7?]KI_((0*F\
M<J7RIDN<9GJHY9/D@A/>'JJ1=!W;>4QU.</!PGK8J8EZQ8,J36U6ET+9]^V(
M@Y'3T7823:>W@&-M ,%WCN"L!8:W('BH&-Q(**D*) 03?,X?:HX&ZS&"DQL/
M*8H " 8(!@C^7%'B37,P[<UK?;MR, \U 1F.>+E?;R8(CC.^BQ"9UB4 @@&"
M[QS!6<L8;T'PH32>:-Z*&$*MXTJQ9IVE;M42!,=*!AU-PMF$T2"5X5.EC,I2
ML?7H689=\)=:8:$8;F&G6(%6<!:)KT;OHME^05-<N^0$?L&9158D7NL!)1DH
MR=?-NY^B7I0#S[ USZLXZYEA)U]<>0)6]"?/F&NG]V%<-T9CK#1[)V!R-K..
M6-#G%[_YE;:AG/P7/G<$MF?1\AB;5:2 X=2U4D;KJL7(,)HH(601P=/'[CXN
M# .H!JB^747C<J@>4)B[DZ32C W:,Y4OU[ FO IC5!-?OE-%$LFR="< -0#U
M[8H<EP.UY):T4MG;EZ4M+0\A>FG@U58":OK+=PPK8BB8J@&J;Q75V0H?ET/U
MMHPT6<+H!9*&]LH<@;@U;)<$X$EY/:R(0-E,UB AY%-5%-Y?:B[0KT%IU-LM
MC7I3YT\2O#X7P$^)?;^_[::O[!O'?F7D0X?^OCUHU7OH"HW",RQ64J@,+Z("
M7) ;<  NN!WUYH\$$)D=/?(,$ZBDW^AH'H.;2 /#Q87.AK-1P@1$O% #V]J
M"NZ)"F[JX,V;PX+=PI2$9L_ML'5;'-17?LN6^PD9T%^^HTB&!48!&>0&'8 ,
M;O+4SYO)(.*A)GMH55 V&*W,";O93M6^'I-!(O9D=^[G:KG@:I)E'J]1B%WB
MH>A'X9^'PS] A7\;@=\R6^>7FJ\_C>9=JS6$.$:K1GK(LB-J$+#;*3_;CR).
MQI,,F*P3D0&@ :"O&=#9:C#O C1NC0_#@[-CH8K:9W!&09O4. %T7'ZD2$+I
M<D  SP#/=X[G3U%/WH5GD:66:[6R$"%^-;#6N+AI;^ $SW'>"U+$Z/3""0 :
M !H .GL%Y%V 7I6-H,I1>YHU-IW.?M.;Z-U# NBD @I<)+!LIFB0\I*UN0\W
M2Y39&C]@'^^9$)DQ*P!9&QS=S._1S9M*7?EQMT_-==:GI,0@ZLV'RW\<VRMK
MT<.T4SM1V6L>N_==)9HH#5MQ#YROK;V(V6,+7,>R$F[_;3TK2"1"O5<?BI!
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
MI#M;MLGOT -< UR_#M<_%Q2#-_M"4L;H,^J)_2WN!6WC:W%-K@(*%0MQ!3"
M^ZO&_;N+5]T0$5RF#_Z0\Y9]\18P(5S&Y)<SNV[0Y#_E4 %7OQ/*^U/J$'"$
MVR2 /VWWW*#)GQ#B 3__1,)[6OTA[UW\45_1;"?^OUW;,='KQ/*J8GW0F@YX
MP"=[P%_2 E@+YL-+L&R#I+_E"='Q/XPB,I=]R-38OV3:XV4"SVT#^DX.,?V>
M84W_3#GQ$WJQ]Z(7)KZ2]%5+O!5GO7;L4P<)OJ.:UQ(-Y-<G\*\4?M4^(;J:
MX@7N 7C%%46#?SOH/<68ESC[6@;ZZL*\G __0/,5PXXO[;V.\<\QT',>T"=\
MOHS^K+G>PST)(+P'X?WM8?DO-FJO.'@[W9H&:/PO:1S_BEQW$'^Z'^;._>!O
M-BZO>.P!!WP(!Y!)\L85^P'@@ ]<O%VQ'U24C?%Q*CYPA*MU!%9Q[>A]P-3P
M,:O\:_:$;1"M&L'"_^6%_^=>\)RRLLRTF6Z%+3!BH<I6V$Z9'110.,G$1SX,
MOA>V\0-O=*<N8<Q+U[4CT2(RZQO;&4_F%_'E5&AR83LB/URN'C_L=#'V">H5
M9[UQ[/BB7V9O>$^M3OM_B2;828YZR*LYS$P:#**:AZK.]4Q^Z7<Q_?D=[URW
M]H9+WI]]PVE=PGE>H,V?+G.'GBYS#WL#;:KCB\ <A?-RPQ4G"]&.KRE$OGS'
MX"*,H$64P+.XSOT22,A?%N,I6?W"?/"O#TM!OQ$ND(2JO":J&V?(0#-H+7#<
MHCQLE@;[_L6)H(2^@0>>[SN<WN2) M G"M#8C7PH0TN1/72G9--1UIU^.:8
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
M5/ MB-3.1EE[W;CM$0LAWI2+],@K5D4;'59M:;0M4+%1B1_9<\>-:ADK3XC
MT73**:)!I=6*%3-^Y/R/U)MRZ!0F"FH7T6VOTM4[=KSEQ4TS<U"M3!: 4^D&
M6N:K$=7>=M?\:),TS7H $&):G$NS*HITM4$OF X; RQMFI6#;7GAC'OS;<_1
MNMILM2"+S7;YT#8SM35-*J]FU5+?L1%:YM8T;<EL/+ CQH3>X9W1H+JLH"M<
MG W[QE8AJ;CID3UW.=&&-=:8-U&IABXZD_*ZP\6J%C]RN-W;(<&.Z9ZM[)HE
M)S+"%4T$Z5,STU6H#$O<ANC%(K/:(4A[NUYW*IND:6:ZN.VXP3JC$BW65:/H
MDY8_ W[:@>QTS<%P$BO85HA&2$V:LCN7;$II#[+3U0/#"MDN*(("D'FWPXUH
M?<(?GIN1Q'"T=,/APJLJ9<W81;,(,!L[[6YVOQFT6@0^U8V!:+/3];!2M(M
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
M JM+L3S+(LY"G>"41@.OLTDJHE*)"L @]L][O^&J()-@Y%]7MV$^DR-2<3Z
MY@DO@VV9J&D]?H\*6,E")%'UVM,_V#B/O.FP@<:XB><KAM^1/72JM,3%2,(;
M:-33R69I8 L#/JD3S'SYF\J3!)NG\>P6^F^(HY-RIN]@#[W(Z>=$VN"3MLP_
M405_OG7^H *^[:$51B7JC5%81#454Q9LO[#OC!,S.JDRA*-<GD49J &@!OBM
MBPY7I0.NWHC^=NLHH=-5W2?'^Y-6$#<X46L)I8T(BMVH3_9QD9/Y\QK4:KO%
MX,WA>*'0QGX=S\8 D<>)/9!4YB((+D_1.+2JH2Z NN#4NN"94?D<<WE2 DNL
M@@%0Z);% 4965FU5CXB>=5XET 116?!ZN.9HK-9J;JI1N5A-3M5)R3TLCY%,
MGJ8)J ;.IP:PB_BCSJ$&&*@'A@Q8@4JW5T(7W49MP%3=?M$X\SY>FFWPXF!8
MTA3!1M@H,.J-,L<G$.82".,,DV=Q[AP0/@3W[@3"5\?__1ZFSU*<P_#T^2T0
MYFQ7]Q;@)J/UIXWM796.29GS^"G&=EU796 BJ1M-) 5%^ +Q$KB>][*>,,\3
ME-];7LP'E-]S)^*!$@PE^-$D^,2NDV+D:\ES5$Q-?2>DVO-4XLF10I[&H<JR
M@Y&)JU5,D2VD7RR4!\: ^K@WINU[IATVO" XYH5IS?K4UJW83GW4G.-LO<UU
M]([*I(Y4CLX3V%E<, ^I#=XN573%SHI?%?>Y>U@3H-@8@DJGHJPVI9( ^DX+
M.!]G/[R)R$%_'@4BJ)=$V68J@TVSC5 1GR"2.R<B'RW!V25C%S\Z11/^N.;J
M(.>9N=1W_A4&JDZ9V/_1)P&*PJ4N US?+%SB)L'US0)$Q*4H\M<W"U 6+D7L
MNKY9^'3#\/JF ,(!PN&"),GKFP0(" @(" @(B"N@P%[?+%R"/WM]LP 9I9=P
MGK(9Y^GATG3BB,]YR\0S'N3 %OBZ'21YH*\_:@7YIE>Y+->G<"#?%(KPC:_G
M%?)-3Y^:XZ1TD9_?SG?1P4!8S9M5T5:'MFDYI#C?\1]/U)&^X9#5*AY!O"CM
M>'(]XY"L(_VE=-A>Q>?=]4CB#J.(#"D"X5D4B5!:;5>KJV704;DD<0>6)VA(
M+($TLSLA^EXSR>Q/M,;[;_UEE49?FT?@;9WQC?Q"U=?D/N1W2P712XW^?-\F
M0G(3ZXPDTP=UQ@N]#P6?!]08%R:F_N<,N7Y.JB7>SO/17^HJ4YS*#2?:=1IS
M@VKU3'SSJ9KBI\F!4 #"GDU,EXXF()5=8]'LLXM491!?_L;I,^8%>B@ 09UQ
M!78&/'!" O:5B.)-$[!/8:JV<'&Y5JL:CNY&Z*@PF2[$XC@YWB8\;3R;CPYR
MM&^4HYT-,_@@"'U;#T$RF%A:<O^M+9;_R2V!GTI@TBHXU)B]R5CK@V>T/_4F
M>R=A0<B[OCG>-93]2Z_Z%28AAW&/C\8]DJ\%+;8&DWX"-TA'>"3PL2@50MUH
MK_;.:E<?!%UE9+IJ1\70-/+!Y%&,A9D)(4_QKGCLUWZ O,68R=OZYMM)U*VJ
MQ?*:B8^A4M\V&JV^NBET4GV31$UHZBQG4:AMH+9YY%S*=QI]^5V=PZV)P%EV
M5X$H\!BZ:W.U/N/PJ<XAOOQ-YFDN&WF!6@=JG4?3.O! ??NW+LX=U[EV&;[?
M4,_O[G9K>\(T*\L9*THD2JF8-);0S<'"YI(J9,1YJ$GP6LGE<O(<?#XY'^C
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
MZ==<'>0\,Y=&1K["2.0U7EBYOA$_X"+#FQ>/,.0'%.RS7T5(A_PV\_C2<_"
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
M62VY[18Q=LDN8@6UC_#.N-@*-3XI2IEI.BF2[;F/CPE4EELU9^GXA7[#2CP
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
MAN(/G2W7Y6PYRBGWP=J;KQ-/B^X#PPYSIJ:GXX;N%LB0N!?^Z.>1PAN>:_6
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
MMK'YA\!?('%V#?[ISRR-OZ0C>E.O:+ODZ;W\#Y]8FM H_6M@"#=W)_P[4,S
M^&A>MWMON/Y'0$2A5H/"![GC7@Z8OUGY\PW[S:V*5C8%5O$T6G]E3Q]>OI*K
ME?:^!.9%^ NV2/S?!(%^^?>K=_#J99ZL2/@JX4=O=!_5:WE;,< M<;[L<T,3
M[ZNQOZ?0YA=/.1_FEZ_%3JO<Z0\2[(0=,"TVP;'YI!=,K+6+0 O/[SG0JP7^
MB27E$2HJ=MHEILTRI79GP+"##O@WVVG62OD!4RK7VOEVL99OLH/\%T\('N$]
M^ -.H!$G!IW$^9@3X: 38-3@37G<L$_W=G[_0K/2!F",N60")9M,$*A$=[R,
M/[R,?W$Z[XC ,1#_#M?/\S#:SAH\3?@(0M8K@BUO.Z;4D3L;/^?)\CV@^4QL
M8-Q\VJ+FJEMRN+7J%B9+#3AH$O"5-J +VW2DB(S"MQ8)?TD4' M>( \ L2XF
M.N:"UY4C&GP4NT[1P8ZQ_T$)/V]ONOOOL3?'5336P&NV$ZQK :&TD/5)U'3A
M)9G@$R5@V??0CQ ,<V-XKSR9V'C\:BL!70Y36DJZ!:Q_8BU!.@MT7M%*2YHD
M0/\9_!/N0^3T M\$C'&G")*53 "G5EB"SA3@>6QX37.!JP*9,:#CI<3#QLG$
M#@Q:T?P4>M IKZ <>Q$!#]C=7W#9".P_U6&^B/Z*_^=O,$+-6<]1!Z=1@$^5
M#4JU OV@$1D:& 5O)?:2IL'_&K(,ELWV?".P7P5ONFOP)-LP@Y_*"E@/L 2V
MA+Y_28RDQ-Q1-#$)Q@_<)PT\:<T#KPO\?Q+>&P+'#'\(_JH!!_YLG<Z'AYH$
MXPZGU6*ZP:P2EO^&["7P A9+P[&A*Y> \17@PK'0<;->$M 9!'H$M/.[>/6"
MDWY_P==[Z?4GSJF-8:)'G'J"'F;XK0EKN,![WV[M(1_!@(T$>_E."SAWQ;8N
MG5++F5N*J/"F(GGOB=^ 90?[!7P+D^?@R'P-]Y&^Z@^(\=DO?\ UO=#1GV74
MCZHB(S9X!=Y2K([<-24+C!GUE]=%%MAK1092J]MY00 N.5167;!Q!;!5!V
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
MDQ_"1AL>#>KLI9X(%G -@:[A%Q*23MY75^=R=!5S.7O(RQEMQ9^3H(&_>)N
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
M=?@.O>(.YZ$5+XDH.)<->WX=;'DZ,2B=HOV7A7A0EO!YVO1<.BLBA1*1=#<
M[K<K8_A'^GY>7E 0!A5KN+HUX;)PS%^^KXV2]X#G C3B'+%*-6,/7]M925M8
M<]O_Z0'5<0GT*AH?)*V=<J;#@D3GTA50S/RB76]ZX<AI#IQOGT]W@P: BF0$
M]#)DPSRG(J#0>:%+C]3[DAB^^@3Y*;Z&5_RSY02JQN7_/2PNY$>CD:\"&;S0
M;AE0L?-P*>!*OWZ:7_WL.P\(A=F_9 (*O.1E0/K!!@2%K2""X=].=/K=VA##
M"R>LLQ,I/O@]>'^68&PD9&Z1=0O,EV^>!%A<!*SRPKNUZ=RC\PH]!EE_YY<G
M^>3E4.T*R(UTI<#&ZM+"L!%/#BA=-'U_J1"6\" :4"'AHH6^Z*L4>GA-KQAP
M*GE8\=RKZXRP@$_>.Q<'H#]-Q&X),E>!% .),'2OO!':_)<L%*_*$A#2@"+H
M^ZYG7,[0L/L\2J1Q;^ZE4^8Q?Z*(> @A7*UPJC+<YS(0*D_=@[5#?#3Q8D*^
M$/E'?P%S$XT?'3*&"=X7:8N6L 1/U^+:XA!X!'OJE+%\=F=.N -?(4O]TF1[
M6]Q7W7[)+\4^!Z!^1N*%LH.OVK0\UI#@K!V?#ORJ_@V*?@956U&)LA-$#2FJ
MMGO%/87?OS5\E 1O:#LD?XYY=M/.VW-&-P))YS4/05LP$I\U]HUUO+U:ISQD
M#8H70"1^" @R::U BE&&.E#T,(KW>O,C4*5=WH3WU^GJQN0;&;U_AZ=98;5%
ML'H[(&E!7J43\,>\L;RJA_3&^J#\Y?/+G;PB4O!?VH>]K.*)V(P&A<87+O6W
MWIX9>H*25Z "[,P@P=6KVL:?;\)+77YC2[[":]YLGPZQG4YR3D4U/)LK75$7
MSTCIH2@$Z;_\Z::H<Y5^Z;:^8=5A%1U86^VD%LZ_#_ %1!10P'5ICU(,@M%X
M&LLKS98$F J,5) \H^LY]XAH?X*1+XF6;R7/2R*^&A)<##CEZX.9BWH6(GJL
M8)^<Y+!(W&T0^Y?UMX<,);^PM'SNWUU,VR]C=@7/O/"!@<X+PIM.0B\JX%F^
M45TNA*!*4(SC5 O1EPLH2/H;XO.7_RZ\-K<0W]]("9X+(IB.L$PY&^]:F ]E
M/G\*"3N1/_S"M3!6* 4%X3QA.:E;5 8 4@ "SXD)ZTO9J(.@X&909^GL&CWO
MAU9PM.AM"(_L#.,S9Y42W_"PO,:A^0,R'$0DSL4G;Z% F3= #R%X%8=O#.7R
M?A"_,(<'NZ'\:,I:\<(?2>1A&XZ-"KW#9ZJ2>R89O&VC8\]O%2$]\9^]H$J
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
MFWR39W5'8.K"^<70_LJ(?K4SF-&/$B44R(H%/K$H;138^]+8G]4D2/K)ALF
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
M8NDO5V@NX++YV@+#_OUQMO/,*D#-*9G!>\*)DTWP[0*.>[,YC?U_G0_^I,#
M6FN&^4]@V,YFM?2V(X$TVD)*S4V)5U.\#![\#Z_M>=?R9YG)O:3Q@%KX3V@<
MX3HD<.R%R/T[<?9WN!Y7B[GF#ZFS)?,U:$J39/L?_V?!9^AUA1\:%MH._YB2
M!E[73H*]7_2+WHQM;/XA\!>TM<$__9FE\9=T1*_JS%XCFWUZ,?_#)Y8F-+3_
M&AC"VUI+AR94N]!:_D=?O@Z@MH=R 2434A-#C<!_/7OKW]RK:&538!5/H_57
M]O3AY2NY6FGO2R#PPE^P1>+_)@CTR[]?O8-7+_-D(,-7"3]ZH_O@M?#([L^(
M+)W.XMGT3$X3TBR=(_ 9GQ:S,R$C8@(MX(3 RU^\A> #I%#H+ Y&9MA?,QU6
MFZ:*506O[?,0W[QNN6#&LRROJ3+FJNU9*;??'0LV;)E^W7(BU'9-<8<MU35G
M\TNWCA%[/#\C9MCKEE5BTRSOM2S.2+)S/#9<>J?7\S/RNF6QA"]<GF($IH$-
MY5JJ6%,<HP=:7HTS;3=)=E$O$0S/E1J9Q8!<2RW8Y]4X;;6_+A>93@%S1.U
M2YRT;,]ZL_3UTUNE<LM>"1JGL@))9HJ;_L98+&;4=4NFR.13S!9+J:X^&C(*
M7L6&TSUH>35.LCSK=%+5LHRELMI^L.O/>VH&]AF,\Y6N1;^K +6TF>4LEZ)6
M=:N(28UF!^N7F'27[<U@:S(:9V3#NY#G"PT+>(J(=B.O)0PS83ES6)8.F@C!
M6&\T"5DV/@$>*@$[HDM)T$18 OL(/MPL>0L))[0S&Z^@W4OBM0WE32FA&S9\
MDJ4 K>F9IB6_ P8K80$-K\C E(+1R HD%\/GP4>#9^EV$CX(].ZB7A#_6/1^
M#QYGHX&>FSC%,ZW02L)O>#NQEX [@QZ_D4R(U1.&8R:,.; LZ#4$IMJSR-[
M7Q)WP4&/"'NT$R3TWA? )N#]\N(.E9;S]XT''R', "\+@B2$0BSK!GX!$.4E
MD?=^+IY^CZ!2\-JL!%*$WGO=&_^?O2]K4EQ7MGZ_O\+1Y^P;>\<M.+8Q!KK/
MUQ$,9IYG>"&,+<#@"0],O_Z39!O,4$-W0T%5^6'OKJ*$+66F5BZEI$QC@?6U
M!18<.6^@SY'R!1G:$S05]*L)UV 38"!3<M_G,SO_&*YG>XB H>\J /8+=1*W
MY75$N6$GEK9D &=LV.[05Z9 !0;FB#,(_C[SY WXF8F6@UAD_-[RL%R?LW3;
M%1MZ!/1N\'DZE,Z6F/ 2TL.^<Q+LPVL&7H.30#B=I_#=I[(S@*YA#<"N\X0*
MG^XY+T)3?1T/C;>A_?/&/+0;@G?F)AP&&B/@(6@X3T-]A9-1TL2K3K1?6#&]
M<>8Y*^JJ#4U4$JZQ@W <+;NT^L>KLZ0J>DNS+>8_;?C>E*P)BV\^KQ%KA08<
MQ9(\N5Q, -@JD\1B"E\"3&B5\#6688/KTO$WKYI.+<FU>U0L%UW P5,]Q<L8
M4EHS9+,NU@#1\R8339:U-?8][HJ+QW.E!70+WS>!//.)0-+&;\L P?V4PI]&
MB+_Q2S7;A'\V__G^T(:&0QK[Y8H3CX-+%9G73?#=^\'?#?16E]@CZBHXW/AX
M*7%./L_7:I;AO=5]&N6,X=F0D0)'(7M\E:7",>JE.R\^8NQ[O@:?.8'*]43B
M_1Y"H:?OSLH+ JSXZH)G_W=^#.W*ML /M/:)PJ%!:U1-Y.V_XY^0<_F;? K!
M/_USTR50F(QZ*]/]C\_'?JE?B/WZUN5_%M2+A$GZCCISXP9'RZ"]^KZX:B@F
M3"4"W3RD;B+A^(L9G@/5!(@6J.82HD4#W=Q2-Z]?_?TUSG9/.<1_?3,<LF/T
MX?_[1G_[71N-A>G[)B*)O[3?\:P(Q\_NIZ'J *>KI/_^9WR-+>'7W."--W]^
MPYY^=[?QJ@9&W3>MR_4-[&R]?6Q?OP=*=SRB\XP,3@(;WZ\R@\C[EMYZ\Q3R
M7I2& QL;$GQP'L@K@ :+7@+7U:'S-_V**[O&8BD0Y'4@/9!C,+$?0X[NFB$0
MY*<A^'Y5ZP; JSATG),@TIKI;A< TY(4O#$ >$,]WU;T-AN?"!E]PJ/= ;Q_
M,-$,0C" *%F$K$$O;5Y[1M]9DM<X&/]J8/'JM/WX)*\SGLCIT*Y]V#UICFH3
M?W95A8K,23FR6]"%=HZ7N R5^8-JU\_NUU6!=>'$.SGC;"G1+PM<:Y,A*;M
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
M6&GR"K47#"!"B4UX 9O#<8\DZYE>87DA4\5B)2!TF;8PP^][I6NFUS=50V^
MCT,3&1@$E#<PCB3B#O_0 =/? Z]D*%0M%A#\0.$E%;T(B<I$G7)DC=\4Q@;]
M[@:<Q.,]NQ7Z!*V,F/$B(1^=BB!T398$9%,"JIF*QO)&%P$47=:V (R847NT
MZ?:+H)-K;J6VF0D51OST%3_1CX$ER#?;65)IEHN]6$'M9L2D'W$+U>P;('<"
M.XO.>12\ :% '>JY"2$$CK\VX=Q^FFDT0"#N<91T<+0*C65$YB(+J2GL-(XO
MD7JE+F^*+6GZ[2<5H<X E/!&[DY0'HY4&4LJM'9HT^ P'_Y]:V?[NA!#T3^2
M81:.)ZD@8-M+C?5);:DSQ9(R6<D<7\MDJ[NB5M)CC6\_XY )G8L-6KX,?W!
M:F]VO(&L<05,A!82G-5P$AL0O)S/D.<D5F F"1#?GC"XHIGH0PCEX&)=K"-.
MCOB,>1E;^BDJ.5-UWQ$)SG6 YC'6I&VBJ>"_/PA[A#PV_JZDGG9CYJV]<!_7
M<*@(L+;.FWQCT8&!]0$[Y CBTGFD VC[>R>I@FR+CI20YZ3)'S78RB"JD$+@
M!UA$$H,\_BOU S5$N ?5B6]EX:&G7&FT9@"V?">,@K#4\R:&\'(DW94\#]VL
M-G;Y#^'<W(*]%R$E1.8(7/^,:CQ#$[!FFHC$*9G/F0;\RY@WX=>0XX!$69I
M8@\_MWV4S-.PJUW793LV9YL0[74#Z@0[>;]E1(Y>](IYN+WDH7_>0C8!'SJ1
M 9QICN&Z\\Z&]N]Z%,>B=1M^ET=.? J]/J:PQ-__E8[OS*.?OTL67 <(4-X@
M/(7*E7X^P7FG2HJMX($H_ ;_K/-;_)0GR!O4*7+1DX,VH(U*F@C_!K6N(C\Y
M@<*6!1MY/Z0:%1JYXK =Z!V?"& )X7_PXR%OD:$]F&BNV8KN8S$&F$*HP\[7
MAH0"'-3G4"8-OM1Y/#1S38%//>C?93R\ *6(&03V_&][#OZ0/Q@0C]!E"O;<
M2.!U)+(PT?(9!90U-%!L"&BP?@JU'Q4T0UF$PS)MV<(-_68%&0+B@$AVD)EI
M:_B##BD!-'RH6=FC]2X O#(?$$"Z!B8BYNBS*@!%@LP2<A$T8D=O#DKZA@#<
M)186HN_;Z,$&7'_ 7N\<5$'OAP^"/-(A$>=5D)_\\H;# OX9Z<W<UX0-&9PZ
M14TGAJ:\E6[ *0"@FRX8]'K%&(M0.Q+GX^4=F8RNC[UDQC:PY$;4B'(RCK8U
M7_I1T[!&320;O$I$OU6<^>$N!2/K6DR02EN]L^PV\]+2S$4[Y2.?^I:5('*I
M/5<,24<*:2B$VB3MB&#O3D.TSY]FY%1!RH[;TB+$272GNQY0224)60@;/C^*
M^Q>:3/<7G@,HKO!:5"JCTJ*])7.Y;K>A;3>6GGHGX0WFRL N#EN[12FVZ15T
M)M^2MXC")2X)[_T<W^^L@H\6P;^B(&O2XGH]D!'(EL2;'.256\-J/!N?<.B"
M&Z40:^IQ_.$L7'$<K6C#/J5D35BX\8CQJ-BTF':[7Y7)4#4?J6Q2@UD*K00
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
M]+R2&6PS Z'7=F.--!M[BI+G%=__% P><.;W-&.!EH@"KZ.#$P2_OP%,_!$
MW&^H[N;O9((W?S^3%PQ@X8VP %]XZ6S9$5EL'[BB.P?2SA0XW(&_@!J3;7Z6
MF89TK4/WE$:]W;1%8*V=R#_%/+$74M!\#091U2SX"@FEMQ-QZ@"H(V#@^+IA
M?F@J<9<$- 'Q>&R$>>$$ZW,H4S[$: LJ.OT.Q L 4^ZJJ56,-56R)I6W(&.4
MLX7HVMG<BT2?R*_!2CC3@M)&^VYGT73WG@,!>$,-:;8%ERU;Y>C$T&^!S"-=
MGK\?XGS96_;.W9L;X VC#LM27FN 12C!=!K,-F6U6HTKX\VENS_[.S470(8.
MK0;*4-8&7*Z08)6:14W(3G(412##T$^QR"=G,5>94V^C*G>_S_:.89&[CS7
MC]_ #W0S;ZI"&8H%WS9S$N\RN]$4,>=N&2=5/XU).CO-57!II;3==7?;C%R*
M=T(%<[P*D8,66T3'-#&123S%7TSX\P&8S$%N[N8Z/LG_.UOU;]FK>*@0RV<*
MJKQW@I&'=8HO;PX@TQ70#P#:,N3C?\ZX@QV"P-,]GJ>[Z.'0#(!_X ZF?\'A
M];O%B+(K5N:+;9O1FE1.[M3[TU$<AP9CU!-)OY1KZ@,XO+>A10K2!-?5V>K8
M_440' =I  %(."O !]U<^$R>+\"0=\40%/%3+:=E<S\/+B%)35MQG=TLM5K4
M<K%&M+RIM,C0>I1 2(*8,\-^[N7YL]A2-P ^I  V.E!-1*!1#C1K!HP/346"
M'88 =-X!=-S9PSF3![:OH9GC_.T""B7*G6*DE)Y&.;9IU&4PS_!=-8EN)2)"
M\\3$KH]"#P@Y:<V]T _V6Q+ 33>*[@2!C0!5A1;^B.J@3P-B$Q";A\689PY&
M7 =?T%0Q"RJ'IT1MDG(GQ 5HB8IJ,9Z=6WV.%T)3.E2)#SL=?(L9,9S82UD%
M/S>]T70XEJV#-U#L.MK8#*A-0&T^..S<@MIXDZ4N\Q" G.",_LRI+3#/*[G!
M-C]>Y"I&:MSDHHE0!Z="0(<]GZ+T]1'G >&E#'@3$-@T0]HD9)ON!D7 6 +&
M\K#0<6W&4M/Q^0AUBF=#$PF[-NF8X-EET(:-3KHAJ5KO\,-DI36>IXIFM(%R
MHV#LB+#7W\9\**?]+)QX>\+73(#\<)3EXUS!"@C/ Z&61WB\.7(!5TI->MC6
M^-%JH51EFD\E!2$IKU$B)11>B4:?(LQ+-;\_#2OQXS<AJ= 2IM+A[$3 30)N
M\O"S_)K\I+"? 1?WF'FU-:5#*X6KY=E!3EY%8RF4_BWJ;#*33]0-SH<_E$-^
M%D=P,)N XQ:<F-0U .2A1AZ0B0!FKK<,0K.ENI\LSZY^&DQAMJU&!BRG]*O%
MQ9:M- IT$B5F1( 3^1);0$GO](K.;X.C*X_.29#*KETI_2LBA+NUX_^#.P_J
MSC2X@!8FN5&W]9&P["R+RFHZ#$F1<7R-<K/B-<T3%3EG)_]\#7KB[88=;QH+
M:,OLN>UE]+$(W&QQAI,Y,: S'Y_.?$6$NM'&L^\/W@0[;$#C_6BT,^1-K1?J
MQ,YW5$QJ:K,U61H76[JQ&L7!=(U21>.%5>(IGCB/QOPQ=#T@3KF")30O3D[(
M>-O(=VTEX#\!__EJZ'*\;>3[PP4L84VR EKEO+'()>8U:E;*=49L ^62=P[.
MW0))'LJUO[22,E!^D//SNX07M;D6SCR40 *N\Y70Z'U68SB"<P%]XDHOR71G
M.ZF3*Y2KRZ%15K10 Y6G@.C#/M&)R)?@,65-G88L8"@W8S+W3I;Q('#SN"E#
MOB+V_#H3N@ [VXMG90[%A"^@SBS/%4II41UQN7BF$=JF1_+*QI5N(.K$HC?
MG,_GX(.$(@\WUF!3ZG$2BD3X14EDV566LYE<L[X>6E0^CBMDO3VCB%<5VDUR
M?E(5\U/5OGC8P:!J*KP,FSLYV]T2)[IM"#-$SW2H"EP^"==&>5L"%532";(_
M65*@"1KX_L03^KX!H!V#)U3?:8Z*L,*GHO)-4_@6H(I>H55!4W09^#LS@8^1
M<=:Y?1_/3B;AOO#N@M;7I_#^8"0J'F4 $Z4+<)YJ6[8!"#@[5$V1!&(,5#"1
MT),,"27<=HH6.<OATX%;,Y28FU=5S8+?0[5?I94DVCRJ8>6EG''E8P*=AVX;
MR*AZE3<3PP02^_30LT/NFO.2L6[A*G]A&BA@$8@(2Y $<,DE?H.4IFMP'1_^
M?+6.?Z&0]C-KD(+J;>IXAG9>V&>OWS/SPE60;0L.=P><.D$'<U2 -=-$7!$8
M:@4M<B35R;H*30,U5?"E15TW-#B;<$DAMT;6P6[.WA@F8(>QOT4/\K:CGNDW
M\M7P]4Y6&%1)&>5Z=<IB0*<SD_23_O/[3:_][I9O$+#M3!)F3JTD$^V!>:!@
M:&C> C?U#*K*89Z568,-S?VDA*B$-RD=<;C3S^V[C2<9-';)7(2</->PF?<-
MPG"&"^?9?MZZDC> JR7<!/;- *B\LS.G+(,7 7:*[FM0O3>?5L80U." 5/=)
ML@0F(3310X:VQ76F'4%X,H!:DS&R$=[?G7YI[O>=4G/0KP->N2 *R70D\;0O
M+^5,;31R[X%NPDPTI]$DAD3+D3'>;WQ>?F&B!=7LJ4:!P$J@HM<0>" N67N+
M<8$1 ;..K0%:&D)B]$)U+YCGIX3TXGE0B)7X1TV0\&;I6K)FR+H!-!#+R6-^
M,!38#VA!$&+=98TGX[U^B3*4ITQ$X'MTVX+0C34*YXR"O8AO##92XAH.@YA"
MU#8P[CJ:M757M\?&!D<#I2()DLZ?V*]/Q+QC=2;\/ZHF[GH #\S>1B@A!H,1
MF2L8]'K%&(M0.Q+GX^4=F8RN?R7#KFE8HR9RC9A.HM\J4$N*K;BT\7H$U'M2
M!2XJ8=^1*1:0^-M;W7GY<PT*J@"P.C*N!)M0=NY#YV:+VU7+,L>%N UC1J?Z
MKK4X2NO[UM4SRO63A8KROV3/1D.TKU[ANA5=<6,FKB[2T60OU9#C8%9*?OM)
MQ</G$?Z_T'RZNTKYS<=1:6(^RYJ+S%;MA%)ZI#G,*H*B3&^KTIYFUD9Y-K=8
M+.L9N5;,+$C0@2JER4LJ#?OR%&^A8\-'.@X^:^_J#I#A5!%T<!GS4/B%P\D/
M*!C>@48(-Q-;AK1R!<$!.6_ 0]PZ14-"D.&_;D7+=Z<];Z1C'[#29A8JP0)E
M*'S?<>R3(+U9YPWK4)33M_P]+\.9H+:4;>9M0 *^4)L6,LEY.=FX41G.ES78
M?I%TNB4C7=:WKWCYMX@*(1KX[-)MZD5>W^P>L?0C$Z9B5RC]R,3#D:#BX.&Q
M]RS]2 6*>$]%.%(GPT'ETT<P?RH<HP-%O+?Y4W0X2@5B?W>Q!\8>2/VK2)T*
M,P'$7%'LOWC$X56&_R!;+;=ESQ]JD#YF>L<C4?'C,PL"VL,P3D0P/GK)VIF^
M8TT6X1^[^SVF"MZ5^.]_QE<Y*_8*BE_]L,;%@=]6]RXM^\#*/P0S.T[XL2Q-
MP"]:P-=1-Q[C YU^O(<,')KP*4P^BS8B$?R=6/SO>>Y['TY,.?OS5W/2]Q[/
M^_CMN]Z<N&2[W/&9B:MYXL<;Z1W.K[O^^O%$\88=LQL7R?6>],)&6&I;X>>:
MD48[D$=;O#7D#&I&W=!$Y[$N%KF/[@\8(=:=C29D3QK'DLJ\VE:ZC:.-W) )
MA.^B;: MU=--.F__[86>]3#" S$)#8*? H?+("KCV^=-KU;RT![K;<YN#UL3
MK5;BD\G&MY]4.'YZ*M39V?U->O"Y8?,Q!GF5(^@NDWFHNW,?]83Y#=$CDZ-6
M0DZL4URH:I:*DI'?[)2K5N^^4>*VDDUM]$F_+2U*Y<IH8(%$**DUH/1CN*QW
M_)IIV^X1/6KC4Y!5*-T@,/0;6Y;O0BR:YX=/@]C.']+'>X_[8W-%C!H(-$SW
M8?(T.=OT!MT^9X]2NX0>%^#_IN_-#I?#X9"3N?F,M*WT3*Y(%2L=FG[[2=/A
MQ#7IX6="N$\UHE=H8L )[XL20RZ3D^;&*L_EM*4^3'?Y2(U]C#P-+[- 3HV,
MU_T"F'!VMS>9-P932ATV1A'$ BGJ*7(#%GCOU5G:NQW4]-\."@*306 R"$P&
M@<GW=",>$AT!D?O<5C.4&N?X?*/#"D;7RBI,WHPD+_).=(#%!.KUJ2?T#X6V
M40U5>*5%2LO2KK8(26Q_D!PQ(P;Z!]*CFB>WUC]DT.Y>D<E[;]C>&UN>C7/>
M6S !YWTS6'$CAN&762K'@71(FTPH*;++?@3Z:Y:[N72-MKLD/96K[):3Z^1H
M#>$-T5\Z\D1^^"BH9O%R$ "]6P#TWNCZF6(@[QGE# )5USZ*]BGR@ETZ7A8D
M ?L\2<!^@T*T=,"*Y00]Z+ E39LV:Z76?-0813&%>%O]J_?( 7;]^\RHG\@T
M)-4YH'U\R<!W=T*0X2H1S:V9^]+]S$$OO\7EB6?#!A1]F!WN#*&8TPL2_W-T
M\6._,$%7L37CNS?'?:-R+YS0>+I/0<BY5\)/X(N_\_*:WYKN*&,)'WY\W^,$
MD@-!D2B_(N'[&<GC3)CHGK=/9$=7O=VO'=_V]CY\Y8*+JQE+T[_35!@;"/S5
M'1D#<>]&JO(A%T:O@V+^RQ,S V'.O]J:</$.#/H93A4("?(/_U%:]R/(?O&%
M>FU"I)V;\8?TNKS_6LR+MHHE&X)2//36E>SAPV.5G$G:^2,$#N%OU(+X/X+&
MW_SG1 <GRCQXC[TJ=>O9QWMJX3$PC5A*9*.4$!_QD4EBQ @4-4JP(#+B!?AI
M@J$B0@0)%0F"]Z LT5:B&4$O+SJM>#>QL<F=)-M)B/7D:<ONHAFRU664X7+Z
M)"YTJH(LJ%/H%\Y:-JLU,=?O5E)DJ4=;4Y.O%/4,.F9"G;84Q7IHVM_,MYWE
M1MQ%:^-=/-Y/CB(7GFEG6+K53^CDMCQ/%;()RS 3*"AUUG*[KLU;NU7=Y+:#
M^JB?#BUMLX[ ^:QE-6?H>2W2[)!2O;?KD%8"FG-CQ)[WL\W$1M.X5.=)/IX1
MD^9$DRJ;Z2AV_LQ^-!K/-;G=M%-K9&/63L[ON$YC%#]O61PDLK..G%,[.5:B
M&F-6[*_:4]CR[.T=JIYI\L5\>Y%K3 ;=5K'/#<;K4>+\F2V%V\7B$SO'V>6=
MV2_%4LOJ>CVBR L=S<:DGA025F2H7JG+Z[;6TF.PZ07-%V,-.M?D&=!1EF4S
MFUB4BZ4%+EQ_UC3.JBT[VN5X+C>U5GV;TYE./(GJ5)_K:5=:E4,)MDNF8XRF
M:K/JI"0E4>G9LZ92?UWKQ>O&DJL)*ZI+K?0>5VR@@I-G37-F=-SGR*G T2-F
MD,HV)J5"J(%*Q9TUU29Z<B(T#&.AT UY25E6*6DU4)VHLZ84:\?Z9C496BR+
M9K<PBHR%86:*"K.<-=T(J_9@4EY62"#%"RMCW-%CD36JNW#6-%4'O4I%*C4[
M-7F[8YIS52\FIBA)^EG37FM3%[:MD,CUVGUFPO;FC7EOBC(;GS45TQ9?DXOV
M>E';,BLUGTWT2JT&RE!ZUK0RDMA"LMZFR'0W,6U6E4DO%4V.Z O:*I:BH?)\
MO"TO)#O6BS#U CNT80>8O;F>4 ,O[<RP$EH+]>+([DB+2)IGIZMY$9HY:DH[
M/!-^ [(PZ[76D>M2A1>3TSC=FJ)$:FAW*:39%J'M,T\33GZ[H^QO3A[%F016
M.*\4<D!OI.$5"9),2U/!J%;FY>1HVXAVE% LF>_%^MW\<OW><4)>,O -E-1V
MGXG[$!E$STOOA8.>)(G V74Y9.;V0H2LU*JH)7D2XEK=2D>JEI. ;![Q^T(U
M>[Z] 4G^R?;&,_G$(5V&KZE-O(I*>TD>.#OI/U##-CAY'8W8G=",3&>H=4_3
MZXUO/R>:;9S1=5^*R/U3"725F.")(UJ"NAR2-B&'-G_/XW]&&7:8(,?K:*^3
ML^O+VK8\LDA[??%:[^]:\1OY$!,+*?#SV9X&X7\('3X3Y7O<)VC<)P)#.;X.
MV<#VH_<G;/SW1UEAWL6H0]$_6[0^TY6D@76$=&#BA'JU2<VV! W:"!Y:65OO
MS9[UF7VGL9Z0/3X7Z80&I#SO0$AMS=;??M+A\[JI2-TR4JBE!4I^1"7GX>2^
MJ.5^/;V8T,.\T:&'XXB=TN;#HCI])F>@I^8PT0-'N7MQ<EZH UZ^D!/U%:=X
ME&*V@A1/I'E#UHB6I-BR/V?P6094E&C62X*J')(SAO_W7Q1+_D@?LI;BW*>^
MU*5.,MVCY+FG:4SOG>SRQOE+KVCT-\F?J2DU?1 I5\<+FM+)';U-I"5Q?=O\
MF4.Z,UPMAP.+5&J+7$V@IJN!U, I4>FOF1+UT:U$G!7C9('=M;G0ELX5YVJ4
M+_<:M[428S"QDLG-,,9)YG:P3<DK6:51XMS$I2RK'F:M 3%&-QA6 *\"?-G-
M$9/:(QJ.TN#TRP1<7"R !>F3X21BACAUR.GL0ES+'IM@:2-H]6H.^-+>B_#Q
M3V^!8-@C)' L=YS7V0?BF-?!_FD&SE#M\#\/87$Y C>S)O"QOQ>=@$L(3538
MX)7>XX39OG3_DJ( 47+* Z!2Q"[7OF8&_^L'OQ^VEL5S85+)XF5).%H6N!D'
MBL3_\HK^@V@1%8!J4:#],!PP1?:N&>83 6=KF/ !SWL*XJ/KHZ8263 V;)2^
MG7HB$.;C0@2' B*RO$\T#Z' S7H/)[.)/ V:GN8,SABG.#>O(SW"3L'7HP_>
MJ+N_D<1H\D<1MV[AWZ@?_X0)]P,$%C/ BTO834@ <2)>2 =-BRC"Q3>O/A$=
MBY\]>?GK5] EH'()^S<*/H=#0-&N) $V0+5--#BY#0%Q2/1=:>^B8"NW@Z8.
MT-^E'1JJA"&")YQ=&R+?3:8)<VM:0'&2Y\\TTY$ @@STYBEO>@V@B9X7#O&!
MSY-_M#R$< WEO];6B.PBU)(@"$$EN5^$]!RJ;^NBI",1S3;\HS;!%#-3HNG6
M0#@M?N"]#]5?N/8*ZB*K^+54U<76P6A\-@,MQO7$TGJX+49+B\RB%:KIS"RG
ML1W^]U<^KIC,BVN6#;^S]&:YV>:408D#A4FWV^.0!R;9\'FMMOW:U"LC@A&-
MP,$-TR'[EUS/51.3?U[,:A_EVH;T!+X#OL^\[,Z/>8'@9XRH%(EJ3H#A54IZ
MPP/.*FZ\L>+2DYLJ'%=440E>P:M 9!_[&D-_7\@6?M-D\*_.,*:]5)0HM5IW
M:*8C3(:Y8K6DO9 '_L++S-36]]MYJO>EQ4%H3=9W7'HA[^1\M%J-IVZ5ZOU!
M*HT]8JKU:#B:N$*J]3@=CL:#1)@'=GNW7-.1,!,D_7X$15"1<"(6:.)ZFOC5
M\K>O0=(M+G$^1S.^7^&8YVLS^UVTZ#TV#?L\-B3XF#R05P"- ST2#CAT_MQ?
MT?IMY]SGD='OS8:'NL[V;$UZO)VB\Q(.$ JRAK90?K,\M#-I[CWLJYSR=FS[
M2Z7>^O/KLJ^N=59C/:G,]5V#E*C8;D[);%D;_OX)[[H;<6YK[N%MKW/ S!F:
M>>FH=JU5 ):N&>-.C5/ +M2(2&(5G46D49R!O.YMKWMXQ;=-^IYF+)S"E$XL
MS2D\BL]S_-'<O]]0W9/9DPD^F?V9'&" "&_;ZKM\JN) $=L'ANB:?]JQ_N3>
M^"\ 1F+)UPTIFLYSV^RP%-WFV^NE.1U%,& \1>.QJ\/%O?WGVQ"DJJ&S%>YV
MA:5A%0$#Q](-\T/SASM<T0S8Q@-CR\NGMB[BB^\"&>R.C3ZZ "W%QFY>YK<]
M0-J%>G,RH!("MT1W&# 7^2I4A'OF=,&ELPW>$8,_PY<OGFW#!9L@M<85H2;4
MR58K_"+!<%*YU-,C]MK>E*Z: OB9 UG[XUL7\*42*6IB*=;?<2VQ(BZT"3^;
M9*:C*,*7Q!,9/3_\]JFHRU5FT]OXR=UO@[]C .3N8PV0X_J7WG/N_OC%R^]5
M<&EAI#(%,F_&A3$'S+B\89C,TDJ@VY*(O=#D$QM)?&SZ<I";>Y( G[_ZG7,)
M;]F0>*A@RF<*GUQGE)_ '[Z\ X!,5T _ &C+D(3_.<T.M@$")_=03NZB<T/&
M#__ ':S^@J_39L+ *(F&1I9L*;5-I[M**()N\2-?QSS%R>M3Z0?$B10D"*Z3
ML]6Q^XL@.*[1  * $H1"_Z ;")_)YP7H\5[H@6)[JN6T;.ZGP"4,V1IE41XK
M]1)I)]>1S5I/)5=QE+4#8D@D_L10U.=>CC\+*P5U!46H&=OK3;/'8"#/'<MZ
M[Q,Z 7WYO "TGSR7MB[%@< E\\-F9VF%ZI'JD%UO-TF4_0="#AWY$KL+=0/@
MLTU@HP/5!,X5(LV: 2.@*0%-^2HH<413W"G!.3,"MJ^AZ>#\[0**E.WQ3.FS
M"YGL4;-2OVV;524^18G!$'%)G%_,^AJL):V9EH,FA^O1^QQ!Z ZS4XQ$FQ!H
MI>34(PGH34!O/B]P/7,&ZSJ@A:=;075*_-0F*7=.7< K95J9)BJU\8"SA;C4
MZD4%(=-)HNR$$*]B=/QKL!Y-AQW?.O@$9:RC8Q,!XPD8SR,"QRT8CS<#ZC(/
M(<2)[^K/'/'49P8;+8RY32>7"4WM'EAP0[N!DI2B==(3&V.^*,<I ]X$!#;4
MD#8)V::[X_FA]X6"XYU?'&ZNS5-J.CZ+I4[Q=&DB.=<F'1,\NZ+JQ3*A5+>I
M=!;+1:(W %/!6'1QIF.(-\Q3] 8'LQX07+PC)]=>%GV%^X@!S?F N./1',_P
M+R!#KE>F<Q5.GB]"A;A1SO.-MI6=HL3F"!G(IQAYGJ/U:U 1/R83TKX:BWL"
M*R D 2'Y^,#PG@6+Y$:NG*O0I%*@LA4P+%FB,455$2#.L)'KUOQ^7 J" ]\$
M'*3@A)JN@29? SH"G/@D.(&G0'4_ YY=L]2+\^VV'S/6I&VN^XVN7:7M'2Z.
M@B^K?5%6DO1.O^G\]H^/OCW4D+\N#T&*_3L E2OLW/C_X$Z4NC-/+@!,O[JU
MY=+4BG1JO412G\>F:VN;1"654!"6?&*9\^LD_WQ"3N+M;!WO(0LO[3:CCT7@
MIM@TG RK 8=Y9 [SQ3#F1CO#OC]XL^:P0XPWC-'&CS=?O*I0%[ G&5F5VFU9
MFBW2F6Y49.AZ VH,U6A#Y";Q1,7/=XW_&'L>RMT_?\S%71EI7I";D/&FD.^6
M6T!Z M(3 -()(!UO"OG^< %^,K-J*+HJ3>J=EI6/B*4\O>YNUJCN(X*?R/D)
MN\_(>R!#-% JH?.#NH07G;D6YGP-@ G0Y',MH7"DY@)ZC"LEIM(4S5J'YE+5
MJ:[UE9RR1J5@(7K$Z?,-HR_"7,J:.@VA4G90G>/@R$I 4@)8 >(ATNO[&YHI
M;3A1,G">7+K\W,]4>@NC8"WLG#U*J0DE.JU,40%I"##1KQ&5.8#)S19"05:R
MQ\Y*]L70Y]>72!> 9WOQB-RAB.0%M,G*2CW4'B[+"VDUB=FSKMS/%M:H!CT^
M'!>AS@_'?2Y"$Z0M"]*6?1F4>?^T97P_46UV-N2*[+72FAFJQ:C8$N(+\PMY
MR_Z#2T?]=.NE/ H@')4Q>^!J7JBT'"_#YD[A%K?>FVX;T. @H=)A[\&^<.S;
M$JRA<HZ0K\F2 HW'P->><(%< T +!$^HMN,<"+@<K8!KVQ(Z< IK.C5L%5T&
M_LY,X&-DG(IVW\>S,X>X+[P;M?+U*;P_V>PO:(Z?:ENV 0AHUZJF2 (Q!BJ8
M2.A)AF3N*Y0[,:_3@5LS5)V#5U7-@M]#532EE23:/*I?Z:6D<^5C ITWG%JZ
MAQ*[80*)?7KHV2&WW7G%3*]HI;],'Y2P"$14WQ.) -=<Y#=(:[IF@JM6ZOWC
MF? >!8,+JK<3ZUG1>0G#O?+.; >7?[4M.)0=<"HB'FQ- =9,$S59FVZAQ-&:
M0U*=%.M0[ZBIHIG64:5IKP#FP2C.WA@F8(>Q!T0/\O:0G^DW\I[P]4Y*.-N$
M_A)^S2E\I:GF3-)/^L_O=ZKW6]*^07B5LG%52!-M7'LSWM#0I 1NWCE4=\L\
MJY\*&YK[&2>Z1;P=<;ASR^V[C6<0M&3)7(2<<A:PF?<-PG"&"R?1?E*ZDC>
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
MK2J(9!-F,QG*KV]L(,T!;S;;QH;L91>9V7)1+">L*300]E(B5 ^IUH 8HV.
M*X#)OJ^. R)->QS#>3MP)ET"KB$6P(),R7!RZD)T.J3G=8&M98]-L+01H'JE
M4WS%.T3X^*>W "_L$1(XECM.T>N#;DSA8/\T R<;=JB>AZNXJHJ;,Q'XB-Z+
MT.]R/Q/59WFE]SCWL:]JB:3 A:OD5#F!+_5H]37KD%P_3>.[]\M'YB6+ER7A
M_.KUMY^XL"SA0P?SKGU^(%G65*+";PGJB4" BXN>'"H1R?(^:S><C&X*<3B=
M3 3S:((H&)G0_A3*/0K9AFF9SH3691MQMRD!.[5"U8X@!JP08B)3KL+Y-4-T
M1Y,AO<.I<'DX*Z#ZCDH<G=1+@L^]-KW>>Y^HS_M$?X5M7_(M>'C>Z%SPSF4;
MD_':XK4.RS=HD.;9@;B97IDA'UQ2&[(Z<P(,J$;J(O^EVC.6C:5R*LE;8CZ9
M%M/]3&N-MN+"Y[7!/ +LX3N&4 22..<LM @#6H(G!ZCQ*::CCYW!^)TF5PT:
M!-0_0>,)%OG5"6;.H%/ 4TK@=81OL->:L$ ?9+ATNO9$0,80)OY& Z3)'_@S
M_#/UXY\G8@9X<6E#GPJ<[,!$%3I^FW_" \SSB@YG+JH==C0!WV_2422J[ &E
M@F;=X9>W3+L,$ 3M0.$RF_A\)*>K)3*WV11'L8&L].-WG%WIO!:O5:E&9Y$>
MA+H)2C>SLU0#E1(^7 Q\?G8Y.9O%+RCXNLN6VIH;S?>Z LR<H9GF16$O5ME"
M+4.NNIV>--IV:W31F*P@E#'Q%X3M3"FX4M9Y:;\,%V3-62%C+OGUQ/\+=N_;
M8BDX];;%B\I)9F(CIJ=7J84T*IFL.!I91AHN("ZEWM_K!B*5JJ'8!&3/OBII
M>" 02[6U"DG'$R[*YA%\7/<,U_T; T>G$E0P,"P>/@S5.E0%%*:Q(#Q[9484
MN.# 9;>>8>.HS FQUHR%4W?$@5^G[)KCWS#:NM6R#PL#[/WA\@(^6(5N<BH=
M:BXBNX'S&EJ.5T<%?A<-RO3[3_SY"7TRG7T24P=H&+@N)'R=+NFXS1:^3($"
M@?_PRA.A:VM@/!%C"<I0F#D/A?1+P//(*7FGJ2NP/?HN?!S:X;3<0":J#[<
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
ME/$?4TKK52N4L""GK#M9\DDUG6_-U'-2JL%5BMGI+#?EF'HQ(8_U-BV[XZ.
M7>]_\%5(+P2 >!2K#;<&SP(Q^)3$G](/R*',/G8I=#@DPT+X>'-7@8;S$'H+
M@9$BO#W$!&4V<BT;H(W:1PC$"&"VWYX=-5>7%!N-0(P*\/=&8")H\E/(=L4)
M8A9\W CH0%;$ .G/!S3".*I D\,R^EW:@?@S+6-L"3,[$MJB]R)054,4H:N
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
M.$)8C\?M1/WX!+Z8%L&*<Y\YNN,2POKD.+I1Y66CJX)IWR%6U, M5;KUT51
M&]7U]O2SIN8^3R%^U*9:[BJI<K/V2DMRE:&>SR+,T%@D_BJ%7NK+>Q*ZN]E?
M64#/ZGU^GORCS++>HL75F*@OC5EWW0FGEEDHH,G$FUA&=^MT?IY"0K3 +ZAF
M36/=5IC-I<5$>%E";CGY<0']?OA\[X,T/N\@]HZ_N L8NSMY!, 65I9A?^;_
M%/ _?'VDEF#8W78(JMM?C<?C2IBMCX\>_'YU(1],:>(];DM&_,\.JNJQP^.7
MOMQ[5_<5B1SWT\O!5*W34U-:92K#..H?]1*E3G*M%RAU;Y47H%@*(=;I#A+1
M';%>R6*>&*:K.;8NR\F\KF9;<@<JO@-T#()EOSQFB(3:Q@QLSU.Q[_%A0,"Z
MB55[/EJR22:<;7,@QRU<II7EVVKJI+B_M%>/BTIY97+S;JN@S.U\C*NDOHC]
MMT'\\Z=O=XP6%&3O**"?-!WR8C[J6D1;KN>E^"K#\=WFK]^&#@ZM!-R63E]V
ML&O[1H8!&:7C2H /2 D+:>F@Z&NSU([!+N$'TLX"!VPR4V74D<@J8$@.2"XO
M$3&XP)EA@9>R GU63#"D(A8BV5. H3H35J$1VI^AZZP$V)( O^G Z^R!K9"A
M/VV^\ASUX0?#<'/SKB"\?WX&?"<49ABW0L?6@I\:.@PV5]LS;6<"PTX/(:]J
MVO/CT2/\)_HG<RZ<]?:/"-[5P=&C#>F+ TL+H+&14%$/?&'%DK9XKWYB@<8Q
M\R; _7 \A!?"<S&[V"<*#8*KSU)-SBQ%I=+@311-FL^LB8&2LUA/72TJR1A1
M4*/=I?>G.B#+;<4!J%8!BA6>>0L(&FNCZPY^*41FL\2C&K(0K:YNMQH&6W9G
MY9Q)1H56#FZDCF<<:H@&MQ/$8LA?@-^P,3PHR^*:J/P#\P%Y>B(*]L>6X3D3
M) 2&+$/[[OA0IINI/OFU"[N;DF9 *X+\0XR#"7]8F:C*TO_K*ZD$"\P$/QVQ
M(V:O9A1V4@0?V2%>B_:/[ #(0G\J;FUM)K[=%<@=UI!K83 B&X;#98SN<MTH
M,#$YAH[%R><P9:O;>'= >O"*#_WNBC\0N9]_R2[=:;C SD:)E9US%W:!C+HN
M6C(12;Z^Y(,TT(]S[5+0AD\-C)49( ;[<+@K-!\R_J_M*ZUI(6V @S;)-2N
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
MHP,VE1FNN8V=9&B(X&0G6[<TY, =4[*#@@L)FDMK%3I>K7B/P(#(IW@  SZ
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
MO&8U][L/MZUCY\H\&X.VPI(^HZU26E%!$4%0A(H(_V"W#+A"S$+,M*9&RK"
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
M?3@9$7=DDO&JDY9TD95\Y0L S! -=,FF" :@"AH_,@$F$*(,L#^7](CM ;S
M>A;=VZ1K3GRO#U91()VM8 @SMC/B?P\0? AZ' 2_&.JFRU<3BC<((0#3(&4#
MB$JMG<^]*WJ:+[E@JQ23V:)$8/XF4 BLBBUV," N>CQR]!L^+,[;] -..?RL
M3[@S!(-A$EP:.)Y/ESQ8",:.V\=!@>L!+DVPC-M=6>H1W?)[!K 1$!K4EU/N
M=#HF$NT#)3:$Q-T),@# F+VZZX!RVY1^& N589J0E(^!M(R=^-\>W^G=?IY3
M J*RAZACG;E&Z+#"2N ,3(-%-R"K<!-^U:G,,5H=,(\LH?+3!B&#<PQQSP#=
MG!YX2%) W4- ,)3;U^O&KN1QCZ -3@[8H.2!ZVQV3'2O7:E+;+ ^=&292PV?
M@GW[U- -!SP%]@</<M$50ETP3-?@#CSU[$ST1 %4N65/>/!!,."PO! N\=>&
M ]-B,Y+0IQLR1$2?"_P/B.?[$(9'<V"!((R>F@'N&(*_XK@1XJ&W"?.P@'=
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
M +;3_&>2BWI,V]"Q< .<IZV3/\!#D5//NK!.XJ88NUX4GXJA)WA@]D HK3Q
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
MAVF1S'":?0D 8'S&)Z3_I>WQAOY?4S*8$F9L^9$HA_ZSPR^V8BEE_:KU83U
M*"">+QW8AC,@B8ZJT3<F_2;5IC1NJTY;+Q83#?_>U4#UV1[:+[R\%/>7IR^O
MQ%T.W]#U\2,=O.'_TK-YA4:[_<($3"]L)ZC;J9=@1S:=-Q@T=*\GM71+MPW6
MZI$W@HPFXNH^F67E$,AP:0?N9?4>7 =+:(;9PEE3"+M=QNTC_YCN($Q;?=;
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
M9_D4I/+5X_JB&:IF-I,_%%9S)@*Y8@\!Z7%+!F$&C)D;9C7H[ACAW%=T36&
M)SQCD!;+TR3GN&&>BCA#^ G[I4$Q)]3'N0KX9!),<W:)1.+<C.E$\I0 !^U)
M4NX-'6TD3RVZD?G-1H2MNEU%@MC?P7R-VWR6@-X&L9$5% EJ\$8,</2,$X0*
M\Y<[']GNDNC@.H;KT73-P -@-FOXWF3YINLM;%/VW]4 [O-.RVW7M\ ZWF^C
M]=2JF/])./$>&G:\D^-\JV?QJ!#CH5?C6)XET1GNPK>@JL&$^B!\FJNSU7/;
M8ABHK5T8[/-!MVG$6C,9HR/79T)/-*%-(*BI7V)!T_T </ 21+./,A7$U5C$
M7\O@/UBP:"PE*!;1Z,1PG%I8];X()>QI(4!_Y)(?Z,L4\[TT1L2\O# (18H&
M%PGZDADH7T>-10G96!NLG#I61ED2AD9HJX).P6"? HNG\'O.:/&%> E(HUN1
M!A7-B_%+1+$72YQX%/PO0$!XROLW'[^\.X*[L])L'$NP)5\V.,LDBBC>C!.)
M0E"*^"I&Q\^]?M>,>F=907XXI7C1_T!9@Q(4:<IF+PUB@0SR8AZF' ?^1P&Z
M!;12GY,,,U:]>J$XWA"%$K/5S(1'3H73% =-PYD@Y=E5%1PE"G-VBA',TAD?
MIM)&-P/<-TXHDT2Y@%#+4TZE\BSPDR@A< S:6J][$<-D<E!_9/4;J\^*'P9X
M/DTH6G".M/;%G,!E&,-+,3JK[/-+]18D 0RCG#8YFVX]B6MQ+_I!:O;,.$G3
MY)P"YTFLH.H"\^O-UH ]V5RTE#!==7'A:R_ V3WO]Y=NK*X69R*,D*,L)/Y"
M+CS*J3I/',H* R9S4I):<\:5R-[&JE4VQH=RG<A^0GERC#?^FL!<S7VO-JZ^
M_J46.WH'G*C=^ E 7HP*SX@QTA-?*(E[\NG#<2EMZ37\))VLA>/FY(-)E+!C
MC;\R/&$JQV2<)L"<E7>/\32(Z)D4L0*ZEYS^B,D<F+=Q1N8[?SR/EVT%V Q5
M3D3IZ.6LOQCS)<H@=,;TIK%MD@G7\]PROM@B+GQ;5VUG8%.@TT7GL"_O=]15
M,?EL4QG.QD6:D97$DEBY3&G]D/I@NN$5E$BD<M3E5$231IGT1.8\9A#Y2J(R
MCW.*;#0YP)1U8F,M2I6!E%7N<M*YB>^+C)8?Q# %>%<.O=3K.LV3GEF]4R>4
M*A51SE6%G,EQS C 2#VE:S7E]!X%A%$]C=/$(S38THRTJF0*K!CD-$V*TVEM
MUP)WJRN-"]$[%3*QRR>KH#;8F'XX"='9H5>$O3V88\\/X;L6'AE.S*L""78F
MJ#W:Q3I=F"@^ 2&NE!13T7PCF]RN\W'"L0D*N>>T0D5*JNF<G/3C>K9NR4VU
M"2UQ%?(#)00DL4I96)H%#[^,(OB1"&= P7%&>5G\F>0F9EMA0*-<7?)O488T
M9[[Q>8DQ,A3E*"1Q+&EZG)4LEMYM1$YT&$:]$/E_^7I%"KW;PMD,OD6I6]];
M/ +%>XHTC16\0P*/T&/  $^%N$I<!L@$_LPYPW9Y-!.)>=&494<2%E!F\Z_X
MWA;],:=DWK@ ZHW)KZ!0!#:,^%4J+\$QQJ?<'<XI:-F< IM38',*;@,BKG?
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
MXF%EPNJFH%4.'AC/183]8 V?<E+O7:>R.F&<"'VP-R+%ROF!N4I^SLC#+2+
M2,$E17D # 5/P?B]>EP?>84F89KE91-!6'R,FU(H79.*PBCR(!<7SBFR,#5!
M<P=E#S1B!V9]E7[ $1#.#,WS2$5$R'A:S**@I(4PFQ<8/>6=HC,^54!"6V@&
MHU-K0TD';SAK5754!0[#S'H8XCC2N\QL5E^ERE/NK385SQ/E3*0M7&:ZA@3A
M:--C0V#YK<"/Y1M5TJ[.) UT:#L'\Q'N\>DP"O<3OI)\YY00K4F=<3:8CS8D
MY72!+9!E*M]+W5NVGP/&AUL#/JZ %Y_\_3_%;/[ZB"YLNGWCPOI3RQ X?*F(
M^MQSVU5?NSA8O(4B8&Q$PR<SJ#E9&9FKUB#3>?WJ-=7<E0A\:XK DU+PX>6?
MRK,^>V@ ?T=W[8IC8JV?B%.+&!LQ4P:1DLT-=: LY.3P4NZJ'.E5&L=H%4MI
MZ#H:BEV4V:&A-F-FYD)QXD8V5PY)]?K7SC0YQSZSH(S(/P_V!#OGRU,E.GFZ
MW.+$?94"]1/,SB % @*&\I@XL1RC $IEZW:K@MSE[ <]4SG\ KWPW!)9!JB?
M5*J6>EV#C[7QZ9,TE'2TI^J%S6_'IY>G4Y#_51]'CL-N%6\J@ZP][(R#H!6,
M?&_8&W4\OS\:=OMML,^ZX^' :XMV,'RV&-CTCC!%\ ,?)AJU^]W^KAH#1W>V
M!I "CB+!@QL"6PK[ 2SH+:&W.B<%AC&=%J$?,DG:$G0X[< RT-!P+I-"=VWW
MP7R8% @3=7-7AB'J_%J5( G/^ R@1#E[&P[.O-5\73$&+K&Y5G2!]UHKE2-J
M4:Z<]2C*L/NNNK-Y\$MY=)32>=CCJ_/'^"J=1*8%*)_T6?+CUHXW-5;C4\2M
M+# 4JG6=HTK"4.XD)V?$RDX@IS6*Z^I$%)\<Q+,FA(,U_*@NP,PGE7X4SDHQ
M3Z=K4+J9 V<!^+U3V&H(K:2@[#>'HML<C_R)-QZ!1!2C04\T1_V@/Q&!U^MZ
MLK,D!5M_@!8]#3/$2,&)B$"C3MY_ ZOUL@HI[*A<;-U9+)HT<8@HJ%N9+&:H
M!?GX#\9ZRJ/RI-TI-U_:8XD^OXJT=8*7!+9!Q]?84CU^$DFVMQ ,>, T=3ZK
M5,35F]/R#B8/Q7@<QI^R&&T-4<LW^QR.?9-@"B0E8H&%18CD!8($!3[H9X4S
M7O+!BC-RD&1YXG]%N*,S0>&7TU3,S';UQ1P_>6Y3IWRR#9Q-1<K+1?XO(R^>
MCE#$_&S7.2E]$'C>&@?%@\4#U>R1 YH0.,-_M>4>L'.U( L2WJ'>1N@!4<%8
M5BGL5>1<CYX,,3U+("J8/WR*>F)>YCI TJ/B% _X][6-6@VP(E-</4.C2/VF
M\:4>LO;WJ)&*(I\F*:5](V(S2 RW--V.4Z<CT"E$ PZ?@'_,S83BY?59)&0Y
M5L]S.RO7B0%6]:0 H-Q5ACJY.XW+L>!",2LXE 9/R_'@\00CL*O?1V?N'<$^
M;G66!MTHK:$['*+]R1<:B[<\RZ<@*:_/+V<Z5=11+@7,UA>!7+&'C"0O/+M>
MG>M,YC+6!Y\H)(#'C1!.Q_(TR=EID:<BS@1YYOCHUQQST_.<T["R"B]A0,0X
MT<Z.5'6<0'ECR)-:15R6JQI4MRL[BOV.S-<$_I,@G-!YTPS&'C1X(P9D2%#.
M/+EBS9UOEGIX5^7)Q'C4])HT&>6@JEB^Z7H+VY0K?M1J1CSOM-RV@K8W**A7
M>BK7[(\V!LM;U08AW/NP3/=T4EJZ-J7%IK3L3TK+0P@'0Z;JX-N5\K22IAPT
M9FC(PE2II4D215S/39_]40YVXP=33F:'V^2VIMJ/I<C@^J]4HV:>R4/]A_E6
M)*G:7,@^/O-GC>< /"9UAJ-O:DRRS"/+(C5/]<#4"[E^\TU[ ;?<YI7%MPW^
M-9Z/>0T8]M94TY]) QZR@#P'.ETKEY2JJ'&^&&=)5.0/4!AC7870^<T+A!HZ
M\7MK*_<Z=B&V82%:;G=@5V(;5L)NB6U9B*9=B&U8B*';M^NP!>M@)=.V+,3
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
MWBJT?%O7O=WC7P%R[Q3M_Q=02P,$%     @ W81861V*KLE9!@  )AP  !<
M  !F:7@M,C R-# Y,S!X97@S,F0Q+FAT;>U9>U/;.!#_*GONM*6=^)4$"DY@
M)@UAR@PEE)BYZY^R+<>:.I8K*X3<I[^5;!,;VH,^X+@9&##V:B7M2[N_M8=_
MF.8D2T@6T@@^^!]/(.+A<D$S":&@1")UQ60"/L]SDL%'*@1+4W@O6#2G *YC
M[5AN=]MR3/-@B&N-JTD\\W#0[O;MKM/M@[/K=?O>]BZ<?82M"W_\1K,?3L?^
MY[-)N>_9Q?N3XS$8IFW_V1O;]J%_6 [T+<<%7Y"L8)+QC*2V/3DUP$BDS#W;
M7JU6UJIG<3&W_7,[D8NT;Z><%]2*9&0<#!4%KY1$!\,%E03"A(B"RGWCPC\R
M=Y%#,IG2@Z%=_R]Y QZM#X81NX1"KE.Z;RR(F+/,E#SW>DXN!SC3QN$;/%?F
MBD4R\5S'>3G(212Q;&ZF-)9(L;I[&YI@\V1#Y*5RGJ ID>R2JM4;ZX8I)<(+
MN$P&-[?XULR\GA?S3)HQ6;!T[;WVV8(6<$I7<,X7)'O=*2GXOZ""Q:\'FKM@
M?U-<&A5,64;-A)9R6N[>0-(K:9*4S7$W11V4)O&0&=2?VRUOE A!2X15N4K
MTP@')U<)"YA\]<+=<0:]KN4.[0"-F3^&X"&&-A4-R>\2=CPY]X^/CL<C_WAZ
MBE%Z/KL8G?K@3Y^RT.XN7%@S:VS!;#)6@I>V=GO;SE,6>S2#T>'TS)\</A5#
M_U!<MVR]Y^S ] C\#Q.8C<[?CTXG,W/ZU\GD,XS&/HZ47%W'Z;Y]% 59%J%R
M7F\G_[=S>YQ!R+.,ABJGE*E?)A0^+8E PZ1K.*<Y%Q)X#&.^B-7M;%U(NBC@
M8C;JE$H=9Z$%6VK>JQ>[W:XS0%:L'FO]Y [>8'6 (RX655 ZYB? E?1&7\N-
M@**T$<QHCDL'^-QS.J J20=( 3%+Z[JDYLQHN!28!-%()(M@<H49/L/JA+LN
M6%$H1?!7<498FR"A@J+X3?E*I6KQ.G#<414.Z]W$@A.2T0Z<"5HP94"]Q3AA
M-,:-<&.5<F$:QRQ$*7%9M6JE;@>0)EF,-_E2%$N"LR6'S=E4^K_3AU*K12*>
MJ]K99)Z5GMB$5+7%C(@ !2O,Z55*US *M4M4-'5PG$CO(>.I5=9T0#4CS/QN
MB.D!3$Y6J<ZO7'VT016*\3+%N S1YJD*@>NP$/3KD@FJL$RAC-,RI=O;(AB'
M MSMK>A-:?X<%PA)D**[:RMO(NLZJBI3NWN]_D %PQ,V=/<W&9IE>#P71*<$
MS Z2H)P14K6-:B\0IM)#CN=$&;RCA@DB19R&NI(4W5'DZ(&BHV?%+$/,J>BX
M8*01C#Y9R+5,M8%Y3H7>LKAQK"QM<8V\I/)6;?J BX@*,^1I2O*">O5-T\K*
M+I6!%8Y2RJ"TE0U+,Y.EY#6AQ&B:TG*%<E8;QRE* Y49H.L) C==4!3(%+6<
MM8/+>B*CFGZIDD5(TJH4(<ZL5MS>L?J[+YMEM-J[+JD-H-A8G.."<<I77L(B
MC)?K9W,E2.X%"-2_F"NTV9W@\WJ<! 5/EY(.% :^J?&#'8(V?%#<K7W*F3AX
MR0I$E2F3ZUICXT"E=*<W&-J*M:RQ)6:OKC*ZEP?Z/6O;??; 0WG ED(=D-]S
M&![#!H>8U#R8AI(K;*)0B<(FI7(_%E)5TL+.3O(%[J12.+J81?#"T3__L:9V
M8<-MCU\2A8ZD5RPPQ9LA9EED;2&FEK__+SYN%5?-\OW(OV^L_U0XJ-/]]&*A
M[>  ?<G:>4#=>TRB;B&RWPLR#VUV,TAL7=7K!/'H*>V>CGV6ZUFN9[F>Y;I+
MK@:*^WG)K$TMJJ&"IN!C0UBZ^ :0; /$1$#&BX1$*(X42VI@^Y5RL6]4%<8
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
MWDT4-%O?7Q:7G/K6]/!O4$L! A0#%     @ W818617X51@#$@  \+\  !
M             ( !     &9I>"TR,#(T,#DS,"YX<V102P$"% ,4    " #=
MA%A9MCCU]&L1  #E#P$ %               @ $Q$@  9FEX+3(P,C0P.3,P
M7V-A;"YX;6Q02P$"% ,4    " #=A%A9#QN<Y3XR  !:+P, %
M    @ '.(P  9FEX+3(P,C0P.3,P7V1E9BYX;6Q02P$"% ,4    " #=A%A9
M?@%EX:)R  !R)@< %               @ $^5@  9FEX+3(P,C0P.3,P7VQA
M8BYX;6Q02P$"% ,4    " #=A%A9VUH.B1E'  !-(@4 %
M@ $2R0  9FEX+3(P,C0P.3,P7W!R92YX;6Q02P$"% ,4    " #=A%A9.#6'
M#["$ @#, "  %               @ %=$ $ 9FEX+3(P,C0P.3,P>#$P<2YH
M=&U02P$"% ,4    " #=A%A9[OQUQ:L(   %)0  %P              @ $_
ME0, 9FEX+3(P,C0P.3,P>&5X,S%D,2YH=&U02P$"% ,4    " #=A%A9KTI.
ML[@(   I)0  %P              @ $?G@, 9FEX+3(P,C0P.3,P>&5X,S%D
M,BYH=&U02P$"% ,4    " #=A%A9'8JNR5D&   F'   %P
M@ $,IP, 9FEX+3(P,C0P.3,P>&5X,S)D,2YH=&U02P$"% ,4    " #=A%A9
M[VXP=VH&   +'@  %P              @ &:K0, 9FEX+3(P,C0P.3,P>&5X
>,S)D,BYH=&U02P4&      H "@"< @  .;0#

end
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>72
<FILENAME>fix-20240930x10q_htm.xml
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<XML>
<?xml version="1.0" encoding="utf-8"?>
<xbrl
  xmlns="http://www.xbrl.org/2003/instance"
  xmlns:dei="http://xbrl.sec.gov/dei/2024"
  xmlns:ecd="http://xbrl.sec.gov/ecd/2024"
  xmlns:fix="http://www.comfortsystemsusa.com/20240930"
  xmlns:iso4217="http://www.xbrl.org/2003/iso4217"
  xmlns:link="http://www.xbrl.org/2003/linkbase"
  xmlns:srt="http://fasb.org/srt/2024"
  xmlns:us-gaap="http://fasb.org/us-gaap/2024"
  xmlns:xbrldi="http://xbrl.org/2006/xbrldi"
  xmlns:xlink="http://www.w3.org/1999/xlink"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <link:schemaRef xlink:href="fix-20240930.xsd" xlink:type="simple"/>
    <context id="Duration_1_1_2024_To_9_30_2024_srt_RangeAxis_srt_MaximumMember_us-gaap_PlanNameAxis_fix_StockRepurchaseProgram2007Member_Ov88TD7fr0q4sout0EvbgQ">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">fix:StockRepurchaseProgram2007Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-09-30</endDate>
        </period>
    </context>
    <context id="Duration_3_29_2007_To_9_30_2024_us-gaap_PlanNameAxis_fix_StockRepurchaseProgram2007Member_M1s8HVAzp0WW5UGq9xvC5w">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">fix:StockRepurchaseProgram2007Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2007-03-29</startDate>
            <endDate>2024-09-30</endDate>
        </period>
    </context>
    <context id="As_Of_9_30_2024_us-gaap_StatementEquityComponentsAxis_us-gaap_TreasuryStockCommonMember_SF1yafOekU-tXEsRPH5BZA">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:TreasuryStockCommonMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-09-30</instant>
        </period>
    </context>
    <context id="As_Of_9_30_2024_us-gaap_StatementEquityComponentsAxis_us-gaap_RetainedEarningsMember_9Q60Oh9Ah0OkbWnQEVoujg">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-09-30</instant>
        </period>
    </context>
    <context id="As_Of_9_30_2024_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember_YSdubrY4XkOM19Wz565jjQ">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-09-30</instant>
        </period>
    </context>
    <context id="As_Of_6_30_2024_us-gaap_StatementEquityComponentsAxis_us-gaap_TreasuryStockCommonMember_rplrCduHPUKkd5ni2h63_Q">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:TreasuryStockCommonMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-06-30</instant>
        </period>
    </context>
    <context id="As_Of_6_30_2024_us-gaap_StatementEquityComponentsAxis_us-gaap_RetainedEarningsMember_1uRWP4PGY0CHlwtNC16vmg">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</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="As_Of_6_30_2024_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember_Esh6OYjwZUCcuWrfy0pzEA">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</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="As_Of_6_30_2024_SiyrixYS5kCDbEg8NlCx0g">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
        </entity>
        <period>
            <instant>2024-06-30</instant>
        </period>
    </context>
    <context id="As_Of_3_31_2024_us-gaap_StatementEquityComponentsAxis_us-gaap_TreasuryStockCommonMember_u9WlFz_I7USmDHCYxAti0g">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:TreasuryStockCommonMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-03-31</instant>
        </period>
    </context>
    <context id="As_Of_3_31_2024_us-gaap_StatementEquityComponentsAxis_us-gaap_RetainedEarningsMember_Mf5SjU-Cp06KTb9FvCkxjg">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</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="As_Of_3_31_2024_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember_gusb316CFEq_VuQbOr8B1w">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</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="As_Of_3_31_2024_TuxXtlZ-cEeaT-E2a8UyqQ">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
        </entity>
        <period>
            <instant>2024-03-31</instant>
        </period>
    </context>
    <context id="As_Of_12_31_2023_us-gaap_StatementEquityComponentsAxis_us-gaap_TreasuryStockCommonMember_WxG3JaTAz0C1Fg-OE_oPhQ">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:TreasuryStockCommonMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="As_Of_12_31_2023_us-gaap_StatementEquityComponentsAxis_us-gaap_RetainedEarningsMember_p1H1eeBRGEW14HqP_cu3Tg">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</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="As_Of_12_31_2023_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember_Ew23JNCFwEeDRuV4V2E9SA">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</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="As_Of_9_30_2023_us-gaap_StatementEquityComponentsAxis_us-gaap_TreasuryStockCommonMember_PfWQst0sZkGVJo1TkRwV9A">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:TreasuryStockCommonMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-09-30</instant>
        </period>
    </context>
    <context id="As_Of_9_30_2023_us-gaap_StatementEquityComponentsAxis_us-gaap_RetainedEarningsMember_U3nCX3aNDEWCX8TCtyxD9Q">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-09-30</instant>
        </period>
    </context>
    <context id="As_Of_9_30_2023_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember_DTKQ77I2gE-QJ1KPR-Wqcg">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-09-30</instant>
        </period>
    </context>
    <context id="As_Of_6_30_2023_us-gaap_StatementEquityComponentsAxis_us-gaap_TreasuryStockCommonMember_7ZCIjuMwc0yqYTkNl5XEwg">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:TreasuryStockCommonMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-06-30</instant>
        </period>
    </context>
    <context id="As_Of_6_30_2023_us-gaap_StatementEquityComponentsAxis_us-gaap_RetainedEarningsMember_hWcGX1hQSk2wZm-obHvvlg">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</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="As_Of_6_30_2023_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember_eUOzUQVlskWz5TPjuCeKzA">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</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="As_Of_6_30_2023_1H6Df8Z6mk-jEaG-3RVOiw">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
        </entity>
        <period>
            <instant>2023-06-30</instant>
        </period>
    </context>
    <context id="As_Of_3_31_2023_us-gaap_StatementEquityComponentsAxis_us-gaap_TreasuryStockCommonMember_MVSe43959kWoGkMdx8o3oA">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:TreasuryStockCommonMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-03-31</instant>
        </period>
    </context>
    <context id="As_Of_3_31_2023_us-gaap_StatementEquityComponentsAxis_us-gaap_RetainedEarningsMember_YHaH3GP0S0msvUbdJx9WYw">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</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="As_Of_3_31_2023_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember_0AeYUFRn1kGtjsTyvhxwgA">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</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="As_Of_3_31_2023_rI4kWnhsEUqWMYWZ0HR51g">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
        </entity>
        <period>
            <instant>2023-03-31</instant>
        </period>
    </context>
    <context id="As_Of_12_31_2022_us-gaap_StatementEquityComponentsAxis_us-gaap_TreasuryStockCommonMember_0E-fjy0uWEKri5BSVKBJMA">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:TreasuryStockCommonMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="As_Of_12_31_2022_us-gaap_StatementEquityComponentsAxis_us-gaap_RetainedEarningsMember_Ltidt_uNakiZoGFqd_UsYQ">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</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="As_Of_12_31_2022_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember_HxJsUy70f0eu-ec_UvDOcQ">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</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="Duration_1_1_2024_To_9_30_2024_us-gaap_DebtInstrumentAxis_fix_SubordinateDebtAndPromissoryNoteMember_qpkd_dEisUWksMOTrrt-ew">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">fix:SubordinateDebtAndPromissoryNoteMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-09-30</endDate>
        </period>
    </context>
    <context id="Duration_1_1_2024_To_9_30_2024_us-gaap_BusinessAcquisitionAxis_fix_SummitIndustrialConstructionLlcMember_CxZRbwSqy0yVRiIvUOAx4A">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">fix:SummitIndustrialConstructionLlcMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-09-30</endDate>
        </period>
    </context>
    <context id="Duration_1_1_2024_To_9_30_2024_us-gaap_BusinessAcquisitionAxis_fix_JSMechanicalContractorsIncMember_4Tqmm51vwU24UcfZGJNKoA">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">fix:JSMechanicalContractorsIncMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-09-30</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2024_To_9_30_2024_us-gaap_BusinessAcquisitionAxis_fix_SummitIndustrialConstructionLlcMember_XMYoI1-JrkOXifMp6DHBsg">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">fix:SummitIndustrialConstructionLlcMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-02-01</startDate>
            <endDate>2024-09-30</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2024_To_9_30_2024_us-gaap_BusinessAcquisitionAxis_fix_JSMechanicalContractorsIncMember_iwZyJ5KkDkS-Op4hGo6UaQ">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">fix:JSMechanicalContractorsIncMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-02-01</startDate>
            <endDate>2024-09-30</endDate>
        </period>
    </context>
    <context id="As_Of_9_30_2024_srt_RangeAxis_srt_MinimumMember_us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis_fix_cnst_date_20240401_KhHzX-P3hUuZ9un5V7uebg">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember>
                <xbrldi:typedMember dimension="us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis">
                    <us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis.domain>2024-04-01</us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis.domain>
                </xbrldi:typedMember>
            </segment>
        </entity>
        <period>
            <instant>2024-09-30</instant>
        </period>
    </context>
    <context id="As_Of_9_30_2024_srt_RangeAxis_srt_MaximumMember_us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis_fix_cnst_date_20240401_BllO1xJM-EiQTJc1oaHdoQ">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember>
                <xbrldi:typedMember dimension="us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis">
                    <us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis.domain>2024-04-01</us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis.domain>
                </xbrldi:typedMember>
            </segment>
        </entity>
        <period>
            <instant>2024-09-30</instant>
        </period>
    </context>
    <context id="As_Of_9_30_2024_us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis_fix_cnst_date_20240401_R4HBB7Adtki0cTpCVHmm3A">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:typedMember dimension="us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis">
                    <us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis.domain>2024-04-01</us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis.domain>
                </xbrldi:typedMember>
            </segment>
        </entity>
        <period>
            <instant>2024-09-30</instant>
        </period>
    </context>
    <context id="Duration_1_1_2024_To_9_30_2024_us-gaap_PlanNameAxis_fix_StockRepurchaseProgram2007Member_uKGUpz4UMU-zuY1h4cUX2Q">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">fix:StockRepurchaseProgram2007Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-09-30</endDate>
        </period>
    </context>
    <context id="As_Of_9_30_2024_fix_DebtMaturityDateAxis_fix_MaturityYearTwoMember_us-gaap_DebtInstrumentAxis_fix_SubordinateDebtAndPromissoryNoteMember_skGkSkrrj0m22UCbee6nbg">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">fix:SubordinateDebtAndPromissoryNoteMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="fix:DebtMaturityDateAxis">fix:MaturityYearTwoMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-09-30</instant>
        </period>
    </context>
    <context id="As_Of_9_30_2024_fix_DebtMaturityDateAxis_fix_MaturityYearThreeMember_us-gaap_DebtInstrumentAxis_fix_SubordinateDebtAndPromissoryNoteMember_fwN5F61NGkugv8GyHLBReg">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">fix:SubordinateDebtAndPromissoryNoteMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="fix:DebtMaturityDateAxis">fix:MaturityYearThreeMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-09-30</instant>
        </period>
    </context>
    <context id="As_Of_12_31_2023_us-gaap_DebtInstrumentAxis_fix_SubordinateDebtAndPromissoryNoteMember_0FKP3iOUfECrhZe1nFqndw">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">fix:SubordinateDebtAndPromissoryNoteMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="Duration_1_1_2024_To_9_30_2024_srt_RangeAxis_srt_MinimumMember_us-gaap_CreditFacilityAxis_us-gaap_RevolvingCreditFacilityMember_9jwsIiTizkCuq9i4hkJodA">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:CreditFacilityAxis">us-gaap:RevolvingCreditFacilityMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-09-30</endDate>
        </period>
    </context>
    <context id="Duration_1_1_2024_To_9_30_2024_srt_RangeAxis_srt_MaximumMember_us-gaap_CreditFacilityAxis_us-gaap_RevolvingCreditFacilityMember_XE34UnVimU6RyWu3ZGxTzQ">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:CreditFacilityAxis">us-gaap:RevolvingCreditFacilityMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-09-30</endDate>
        </period>
    </context>
    <context id="As_Of_9_30_2024_us-gaap_CreditFacilityAxis_us-gaap_RevolvingCreditFacilityMember_us-gaap_DebtInstrumentAxis_us-gaap_LetterOfCreditMember_0w5GbMjA8EKON7jMWSL4iw">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:CreditFacilityAxis">us-gaap:RevolvingCreditFacilityMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">us-gaap:LetterOfCreditMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-09-30</instant>
        </period>
    </context>
    <context id="As_Of_9_30_2024_us-gaap_CreditFacilityAxis_us-gaap_RevolvingCreditFacilityMember_E6oVXDAxSE-DOVuvfsnYPQ">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:CreditFacilityAxis">us-gaap:RevolvingCreditFacilityMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-09-30</instant>
        </period>
    </context>
    <context id="As_Of_6_30_2024_us-gaap_CreditFacilityAxis_us-gaap_RevolvingCreditFacilityMember_-F87Z11Jpk6QmdRLV_C52g">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</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="As_Of_12_31_2023_us-gaap_CreditFacilityAxis_us-gaap_RevolvingCreditFacilityMember_lWML2av1jEuhx_9kBGRmkQ">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</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="As_Of_9_30_2024_us-gaap_CreditFacilityAxis_us-gaap_RevolvingCreditFacilityMember_us-gaap_DebtInstrumentAxis_fix_SeniorRevolvingCreditFacilityMember_U6rrLCv-g0eNhWu_TkXWLw">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:CreditFacilityAxis">us-gaap:RevolvingCreditFacilityMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">fix:SeniorRevolvingCreditFacilityMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-09-30</instant>
        </period>
    </context>
    <context id="As_Of_9_30_2024_srt_RangeAxis_srt_MinimumMember_ClTBeXmHB06p7bDY9nYFkA">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-09-30</instant>
        </period>
    </context>
    <context id="As_Of_9_30_2024_srt_RangeAxis_srt_MaximumMember_id1gXBxYjkO3jpdyCLZ7Aw">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-09-30</instant>
        </period>
    </context>
    <context id="Duration_9_1_2023_To_9_30_2023_C6BTPqBxtkOfHGcvUcDV1g">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
        </entity>
        <period>
            <startDate>2023-09-01</startDate>
            <endDate>2023-09-30</endDate>
        </period>
    </context>
    <context id="Duration_7_1_2024_To_9_30_2024_srt_ConsolidationItemsAxis_us-gaap_OperatingSegmentsMember_us-gaap_StatementBusinessSegmentsAxis_fix_MechanicalSegmentMember_ipGvn2J_yUG_njJ09q4Lag">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ConsolidationItemsAxis">us-gaap:OperatingSegmentsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">fix:MechanicalSegmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-07-01</startDate>
            <endDate>2024-09-30</endDate>
        </period>
    </context>
    <context id="Duration_7_1_2024_To_9_30_2024_srt_ConsolidationItemsAxis_us-gaap_OperatingSegmentsMember_us-gaap_StatementBusinessSegmentsAxis_fix_ElectricalSegmentMember_oQ76muCgDEywAlwL2zQzkw">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ConsolidationItemsAxis">us-gaap:OperatingSegmentsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">fix:ElectricalSegmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-07-01</startDate>
            <endDate>2024-09-30</endDate>
        </period>
    </context>
    <context id="Duration_1_1_2024_To_9_30_2024_srt_ConsolidationItemsAxis_us-gaap_OperatingSegmentsMember_us-gaap_StatementBusinessSegmentsAxis_fix_MechanicalSegmentMember_AXOzBdIvRUiN5O9WEm4Teg">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ConsolidationItemsAxis">us-gaap:OperatingSegmentsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">fix:MechanicalSegmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-09-30</endDate>
        </period>
    </context>
    <context id="Duration_1_1_2024_To_9_30_2024_srt_ConsolidationItemsAxis_us-gaap_OperatingSegmentsMember_us-gaap_StatementBusinessSegmentsAxis_fix_ElectricalSegmentMember_PRfP2cG01k6HY7-Zoc8duA">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ConsolidationItemsAxis">us-gaap:OperatingSegmentsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">fix:ElectricalSegmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-09-30</endDate>
        </period>
    </context>
    <context id="Duration_7_1_2023_To_9_30_2023_srt_ConsolidationItemsAxis_us-gaap_OperatingSegmentsMember_us-gaap_StatementBusinessSegmentsAxis_fix_MechanicalSegmentMember_YShAl0xQB0KQs9SdK5emuw">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ConsolidationItemsAxis">us-gaap:OperatingSegmentsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">fix:MechanicalSegmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-07-01</startDate>
            <endDate>2023-09-30</endDate>
        </period>
    </context>
    <context id="Duration_7_1_2023_To_9_30_2023_srt_ConsolidationItemsAxis_us-gaap_OperatingSegmentsMember_us-gaap_StatementBusinessSegmentsAxis_fix_ElectricalSegmentMember_uyYACQYB90KayXA18v6uBQ">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ConsolidationItemsAxis">us-gaap:OperatingSegmentsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">fix:ElectricalSegmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-07-01</startDate>
            <endDate>2023-09-30</endDate>
        </period>
    </context>
    <context id="Duration_1_1_2023_To_9_30_2023_srt_ConsolidationItemsAxis_us-gaap_OperatingSegmentsMember_us-gaap_StatementBusinessSegmentsAxis_fix_MechanicalSegmentMember_SM13mUb_6EqmmKe2QkBVTA">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ConsolidationItemsAxis">us-gaap:OperatingSegmentsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">fix:MechanicalSegmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-09-30</endDate>
        </period>
    </context>
    <context id="Duration_1_1_2023_To_9_30_2023_srt_ConsolidationItemsAxis_us-gaap_OperatingSegmentsMember_us-gaap_StatementBusinessSegmentsAxis_fix_ElectricalSegmentMember__3WjLNReXU2bdGGOMVYI3Q">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ConsolidationItemsAxis">us-gaap:OperatingSegmentsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">fix:ElectricalSegmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-09-30</endDate>
        </period>
    </context>
    <context id="Duration_1_1_2024_To_9_30_2024_us-gaap_StatementBusinessSegmentsAxis_fix_MechanicalSegmentMember_V8JBIWI_BEON_oMqzNwwcQ">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">fix:MechanicalSegmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-09-30</endDate>
        </period>
    </context>
    <context id="Duration_1_1_2024_To_9_30_2024_us-gaap_StatementBusinessSegmentsAxis_fix_ElectricalSegmentMember_CPvGEZODSU23C4fWc01EEA">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">fix:ElectricalSegmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-09-30</endDate>
        </period>
    </context>
    <context id="Duration_1_1_2023_To_12_31_2023_us-gaap_StatementBusinessSegmentsAxis_fix_MechanicalSegmentMember_sIHEWlasEkWrIKV3BjH9Yg">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">fix:MechanicalSegmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="Duration_1_1_2023_To_12_31_2023_us-gaap_StatementBusinessSegmentsAxis_fix_ElectricalSegmentMember_OGp-N20eBkKNWuA9tDPA-A">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">fix:ElectricalSegmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="Duration_1_1_2023_To_12_31_2023_BLO39KDJ406SXE2fHbCX8Q">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="As_Of_9_30_2024_us-gaap_StatementBusinessSegmentsAxis_fix_MechanicalSegmentMember_gOl7vnNOE0Oa2WJW-H9y3w">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">fix:MechanicalSegmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-09-30</instant>
        </period>
    </context>
    <context id="As_Of_9_30_2024_us-gaap_StatementBusinessSegmentsAxis_fix_ElectricalSegmentMember_CMh8lOiUM0mkJyMFRKjiQw">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">fix:ElectricalSegmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-09-30</instant>
        </period>
    </context>
    <context id="As_Of_12_31_2023_us-gaap_StatementBusinessSegmentsAxis_fix_MechanicalSegmentMember_ZJFhNQD-0EukltC7W7dFWw">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">fix:MechanicalSegmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="As_Of_12_31_2023_us-gaap_StatementBusinessSegmentsAxis_fix_ElectricalSegmentMember_Zmipb459G0WsxnuQZ3rZ7w">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">fix:ElectricalSegmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="As_Of_12_31_2022_us-gaap_StatementBusinessSegmentsAxis_fix_MechanicalSegmentMember_-a4MCWI0AkC8_ejEkzppLA">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">fix:MechanicalSegmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="As_Of_12_31_2022_us-gaap_StatementBusinessSegmentsAxis_fix_ElectricalSegmentMember_arrUsxZ46USNASy8oYXSFg">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">fix:ElectricalSegmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="Duration_1_1_2023_To_3_31_2023_us-gaap_IncomeStatementLocationAxis_us-gaap_SellingGeneralAndAdministrativeExpensesMember_us-gaap_LossContingenciesByNatureOfContingencyAxis_fix_DisputeWithCustomerMember_xrkRNEHpmE6z7qbWjo9S-A">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:SellingGeneralAndAdministrativeExpensesMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:LossContingenciesByNatureOfContingencyAxis">fix:DisputeWithCustomerMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-03-31</endDate>
        </period>
    </context>
    <context id="Duration_1_1_2023_To_3_31_2023_us-gaap_IncomeStatementLocationAxis_us-gaap_InterestIncomeMember_us-gaap_LossContingenciesByNatureOfContingencyAxis_fix_DisputeWithCustomerMember_fYWoQjLFtkuLvfPKSv0Eug">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:InterestIncomeMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:LossContingenciesByNatureOfContingencyAxis">fix:DisputeWithCustomerMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-03-31</endDate>
        </period>
    </context>
    <context id="Duration_1_1_2023_To_3_31_2023_us-gaap_IncomeStatementLocationAxis_fix_GrossProfitMember_us-gaap_LossContingenciesByNatureOfContingencyAxis_fix_DisputeWithCustomerMember_tF_jasNoLEOUH0zZxyqiUg">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">fix:GrossProfitMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:LossContingenciesByNatureOfContingencyAxis">fix:DisputeWithCustomerMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-03-31</endDate>
        </period>
    </context>
    <context id="Duration_1_1_2023_To_3_31_2023_us-gaap_IncomeStatementLocationAxis_fix_BusinessCombinationContingentConsiderationChangeInContingentConsiderationLiabilityMember_us-gaap_LossContingenciesByNatureOfContingencyAxis_fix_DisputeWithCustomerMember_W_Dvrlx8X0K4cRCKRmGtlQ">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">fix:BusinessCombinationContingentConsiderationChangeInContingentConsiderationLiabilityMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:LossContingenciesByNatureOfContingencyAxis">fix:DisputeWithCustomerMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-03-31</endDate>
        </period>
    </context>
    <context id="Duration_1_1_2023_To_3_31_2023_us-gaap_LossContingenciesByNatureOfContingencyAxis_fix_DisputeWithCustomerMember_bDYxGk5BM02TJTfRtOn_AA">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:LossContingenciesByNatureOfContingencyAxis">fix:DisputeWithCustomerMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-03-31</endDate>
        </period>
    </context>
    <context id="As_Of_9_30_2024_us-gaap_FairValueByFairValueHierarchyLevelAxis_us-gaap_FairValueInputsLevel3Member_us-gaap_FairValueByMeasurementFrequencyAxis_us-gaap_FairValueMeasurementsRecurringMember_5Yh2p4vMrE2MelwjCJo5zQ">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel3Member</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByMeasurementFrequencyAxis">us-gaap:FairValueMeasurementsRecurringMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-09-30</instant>
        </period>
    </context>
    <context id="As_Of_9_30_2024_us-gaap_FairValueByLiabilityClassAxis_fix_ContingentConsiderationObligationsMember_V6NueS9puE29mSfrqUvXog">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByLiabilityClassAxis">fix:ContingentConsiderationObligationsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-09-30</instant>
        </period>
    </context>
    <context id="As_Of_12_31_2023_us-gaap_FairValueByFairValueHierarchyLevelAxis_us-gaap_FairValueInputsLevel3Member_us-gaap_FairValueByMeasurementFrequencyAxis_us-gaap_FairValueMeasurementsRecurringMember_ixgQ0Wh_OUuXKIm8Z6RKuw">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel3Member</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByMeasurementFrequencyAxis">us-gaap:FairValueMeasurementsRecurringMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="As_Of_12_31_2023_us-gaap_FairValueByLiabilityClassAxis_fix_ContingentConsiderationObligationsMember_QiEcwmJcfkyCJZA_OIAaqw">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByLiabilityClassAxis">fix:ContingentConsiderationObligationsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="As_Of_12_31_2022_us-gaap_FairValueByLiabilityClassAxis_fix_ContingentConsiderationObligationsMember_l5io3FvirkunNcDFGrPWFg">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByLiabilityClassAxis">fix:ContingentConsiderationObligationsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="Duration_1_1_2024_To_9_30_2024_us-gaap_FairValueByLiabilityClassAxis_fix_ContingentConsiderationObligationsMember_lHT-Wg2JpUixTnvmQyoGPA">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByLiabilityClassAxis">fix:ContingentConsiderationObligationsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-09-30</endDate>
        </period>
    </context>
    <context id="Duration_1_1_2023_To_12_31_2023_us-gaap_FairValueByLiabilityClassAxis_fix_ContingentConsiderationObligationsMember_NUKD-aaodUafCY7RklyjKA">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByLiabilityClassAxis">fix:ContingentConsiderationObligationsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="Duration_7_1_2024_To_9_30_2024_us-gaap_StatementEquityComponentsAxis_us-gaap_RetainedEarningsMember_b-0313COyUGZN-vuWAQxJw">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-07-01</startDate>
            <endDate>2024-09-30</endDate>
        </period>
    </context>
    <context id="Duration_4_1_2024_To_6_30_2024_us-gaap_StatementEquityComponentsAxis_us-gaap_RetainedEarningsMember_MTAAMIW_sE-DxCrnUDth7g">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</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="Duration_1_1_2024_To_3_31_2024_us-gaap_StatementEquityComponentsAxis_us-gaap_RetainedEarningsMember_88WYf2_I1USg-VDBGWdW5A">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</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="Duration_7_1_2023_To_9_30_2023_us-gaap_StatementEquityComponentsAxis_us-gaap_RetainedEarningsMember_hh3TIbxMZkmJt5_HIPx80w">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-07-01</startDate>
            <endDate>2023-09-30</endDate>
        </period>
    </context>
    <context id="Duration_4_1_2023_To_6_30_2023_us-gaap_StatementEquityComponentsAxis_us-gaap_RetainedEarningsMember_qajS3b2wo02nQqc4tAHFAg">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</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="Duration_1_1_2023_To_3_31_2023_us-gaap_StatementEquityComponentsAxis_us-gaap_RetainedEarningsMember_Aw1vox8rnUCTCSpKHgL90Q">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</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="As_Of_9_30_2024_fix_DebtMaturityDateAxis_fix_MaturityYearTwoMember_srt_RangeAxis_srt_MinimumMember_us-gaap_DebtInstrumentAxis_fix_SubordinateDebtAndPromissoryNoteMember_KojyVCN3cEmLx0QkqiRh8w">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">fix:SubordinateDebtAndPromissoryNoteMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="fix:DebtMaturityDateAxis">fix:MaturityYearTwoMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-09-30</instant>
        </period>
    </context>
    <context id="As_Of_9_30_2024_fix_DebtMaturityDateAxis_fix_MaturityYearTwoMember_srt_RangeAxis_srt_MaximumMember_us-gaap_DebtInstrumentAxis_fix_SubordinateDebtAndPromissoryNoteMember_Eql9x3iYsUqpttrRsDjGAw">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">fix:SubordinateDebtAndPromissoryNoteMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="fix:DebtMaturityDateAxis">fix:MaturityYearTwoMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-09-30</instant>
        </period>
    </context>
    <context id="As_Of_9_30_2024_fix_DebtMaturityDateAxis_fix_MaturityYearThreeMember_srt_RangeAxis_srt_MinimumMember_us-gaap_DebtInstrumentAxis_fix_SubordinateDebtAndPromissoryNoteMember_5PjgbMBB_Uia6vIHc4mrdA">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">fix:SubordinateDebtAndPromissoryNoteMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="fix:DebtMaturityDateAxis">fix:MaturityYearThreeMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-09-30</instant>
        </period>
    </context>
    <context id="As_Of_9_30_2024_fix_DebtMaturityDateAxis_fix_MaturityYearThreeMember_srt_RangeAxis_srt_MaximumMember_us-gaap_DebtInstrumentAxis_fix_SubordinateDebtAndPromissoryNoteMember_NBdJfeqzu0yjSKA-VJbqwg">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">fix:SubordinateDebtAndPromissoryNoteMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="fix:DebtMaturityDateAxis">fix:MaturityYearThreeMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-09-30</instant>
        </period>
    </context>
    <context id="As_Of_9_30_2024_fix_DebtMaturityDateAxis_fix_MaturityYearFourMember_us-gaap_DebtInstrumentAxis_fix_SubordinateDebtAndPromissoryNoteMember_mt7zqU7oSE2UCMwTRSK82g">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">fix:SubordinateDebtAndPromissoryNoteMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="fix:DebtMaturityDateAxis">fix:MaturityYearFourMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-09-30</instant>
        </period>
    </context>
    <context id="As_Of_9_30_2024_fix_DebtMaturityDateAxis_fix_MaturityYearFiveMember_us-gaap_DebtInstrumentAxis_fix_SubordinateDebtAndPromissoryNoteMember_KBZY_j_KFE-GwjSjJgLy8g">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">fix:SubordinateDebtAndPromissoryNoteMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="fix:DebtMaturityDateAxis">fix:MaturityYearFiveMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-09-30</instant>
        </period>
    </context>
    <context id="Duration_1_1_2024_To_9_30_2024_fix_DebtCovenantRatioAxis_fix_DebtCovenantRatioRangeTwoMember_us-gaap_CreditFacilityAxis_us-gaap_RevolvingCreditFacilityMember_us-gaap_VariableRateAxis_us-gaap_SecuredOvernightFinancingRateSofrMember_piwyt78j20OZTYNyDxHCYA">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:CreditFacilityAxis">us-gaap:RevolvingCreditFacilityMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:VariableRateAxis">us-gaap:SecuredOvernightFinancingRateSofrMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="fix:DebtCovenantRatioAxis">fix:DebtCovenantRatioRangeTwoMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-09-30</endDate>
        </period>
    </context>
    <context id="Duration_1_1_2024_To_9_30_2024_fix_DebtCovenantRatioAxis_fix_DebtCovenantRatioRangeTwoMember_us-gaap_CreditFacilityAxis_us-gaap_RevolvingCreditFacilityMember_us-gaap_VariableRateAxis_us-gaap_BaseRateMember_dIavi5Tf7kK0AqbqTFpRCA">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:CreditFacilityAxis">us-gaap:RevolvingCreditFacilityMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:VariableRateAxis">us-gaap:BaseRateMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="fix:DebtCovenantRatioAxis">fix:DebtCovenantRatioRangeTwoMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-09-30</endDate>
        </period>
    </context>
    <context id="Duration_1_1_2024_To_9_30_2024_fix_DebtCovenantRatioAxis_fix_DebtCovenantRatioRangeThreeMember_us-gaap_CreditFacilityAxis_us-gaap_RevolvingCreditFacilityMember_us-gaap_VariableRateAxis_us-gaap_SecuredOvernightFinancingRateSofrMember_tBj9V7cBBUWwlrV1Pen_Xg">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:CreditFacilityAxis">us-gaap:RevolvingCreditFacilityMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:VariableRateAxis">us-gaap:SecuredOvernightFinancingRateSofrMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="fix:DebtCovenantRatioAxis">fix:DebtCovenantRatioRangeThreeMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-09-30</endDate>
        </period>
    </context>
    <context id="Duration_1_1_2024_To_9_30_2024_fix_DebtCovenantRatioAxis_fix_DebtCovenantRatioRangeThreeMember_us-gaap_CreditFacilityAxis_us-gaap_RevolvingCreditFacilityMember_us-gaap_VariableRateAxis_us-gaap_BaseRateMember_PxGRy-w8oUOGfS7CcwrYEQ">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:CreditFacilityAxis">us-gaap:RevolvingCreditFacilityMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:VariableRateAxis">us-gaap:BaseRateMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="fix:DebtCovenantRatioAxis">fix:DebtCovenantRatioRangeThreeMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-09-30</endDate>
        </period>
    </context>
    <context id="Duration_1_1_2024_To_9_30_2024_fix_DebtCovenantRatioAxis_fix_DebtCovenantRatioRangeOneMember_us-gaap_CreditFacilityAxis_us-gaap_RevolvingCreditFacilityMember_us-gaap_VariableRateAxis_us-gaap_SecuredOvernightFinancingRateSofrMember_4qAfbGq9YUS-CNDVj6lX_g">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:CreditFacilityAxis">us-gaap:RevolvingCreditFacilityMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:VariableRateAxis">us-gaap:SecuredOvernightFinancingRateSofrMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="fix:DebtCovenantRatioAxis">fix:DebtCovenantRatioRangeOneMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-09-30</endDate>
        </period>
    </context>
    <context id="Duration_1_1_2024_To_9_30_2024_fix_DebtCovenantRatioAxis_fix_DebtCovenantRatioRangeOneMember_us-gaap_CreditFacilityAxis_us-gaap_RevolvingCreditFacilityMember_us-gaap_VariableRateAxis_us-gaap_BaseRateMember_euITv3b3C0Cpyv9J0nPDUQ">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:CreditFacilityAxis">us-gaap:RevolvingCreditFacilityMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:VariableRateAxis">us-gaap:BaseRateMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="fix:DebtCovenantRatioAxis">fix:DebtCovenantRatioRangeOneMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-09-30</endDate>
        </period>
    </context>
    <context id="Duration_1_1_2024_To_9_30_2024_fix_DebtCovenantRatioAxis_fix_DebtCovenantRatioRangeFourMember_us-gaap_CreditFacilityAxis_us-gaap_RevolvingCreditFacilityMember_us-gaap_VariableRateAxis_us-gaap_SecuredOvernightFinancingRateSofrMember_7kOu2Za0hEqrgLFNy6oSZA">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:CreditFacilityAxis">us-gaap:RevolvingCreditFacilityMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:VariableRateAxis">us-gaap:SecuredOvernightFinancingRateSofrMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="fix:DebtCovenantRatioAxis">fix:DebtCovenantRatioRangeFourMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-09-30</endDate>
        </period>
    </context>
    <context id="Duration_1_1_2024_To_9_30_2024_fix_DebtCovenantRatioAxis_fix_DebtCovenantRatioRangeFourMember_us-gaap_CreditFacilityAxis_us-gaap_RevolvingCreditFacilityMember_us-gaap_VariableRateAxis_us-gaap_BaseRateMember_w32L56YUnEucGsNruJgppA">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:CreditFacilityAxis">us-gaap:RevolvingCreditFacilityMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:VariableRateAxis">us-gaap:BaseRateMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="fix:DebtCovenantRatioAxis">fix:DebtCovenantRatioRangeFourMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-09-30</endDate>
        </period>
    </context>
    <context id="Duration_1_1_2024_To_9_30_2024_fix_DebtCovenantRatioAxis_fix_DebtCovenantRatioRangeFiveMember_us-gaap_CreditFacilityAxis_us-gaap_RevolvingCreditFacilityMember_us-gaap_VariableRateAxis_us-gaap_SecuredOvernightFinancingRateSofrMember_s6sKxL1LTEupcC2UEz935A">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:CreditFacilityAxis">us-gaap:RevolvingCreditFacilityMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:VariableRateAxis">us-gaap:SecuredOvernightFinancingRateSofrMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="fix:DebtCovenantRatioAxis">fix:DebtCovenantRatioRangeFiveMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-09-30</endDate>
        </period>
    </context>
    <context id="Duration_1_1_2024_To_9_30_2024_fix_DebtCovenantRatioAxis_fix_DebtCovenantRatioRangeFiveMember_us-gaap_CreditFacilityAxis_us-gaap_RevolvingCreditFacilityMember_us-gaap_VariableRateAxis_us-gaap_BaseRateMember_2NZsBDbXOUOCqovL-tm5PA">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:CreditFacilityAxis">us-gaap:RevolvingCreditFacilityMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:VariableRateAxis">us-gaap:BaseRateMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="fix:DebtCovenantRatioAxis">fix:DebtCovenantRatioRangeFiveMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-09-30</endDate>
        </period>
    </context>
    <context id="Duration_1_1_2024_To_9_30_2024_srt_RangeAxis_srt_MinimumMember_us-gaap_DebtInstrumentAxis_us-gaap_LetterOfCreditMember_Sxjt1WXSdkS06xcBdFFXsw">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">us-gaap:LetterOfCreditMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-09-30</endDate>
        </period>
    </context>
    <context id="Duration_1_1_2024_To_9_30_2024_srt_RangeAxis_srt_MaximumMember_us-gaap_DebtInstrumentAxis_us-gaap_LetterOfCreditMember_sFO9_7LDT0-9J9IiMcimag">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">us-gaap:LetterOfCreditMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-09-30</endDate>
        </period>
    </context>
    <context id="As_Of_9_30_2024_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember_ooz0_FoGDUONfNpJABpC_A">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-09-30</instant>
        </period>
    </context>
    <context id="As_Of_6_30_2024_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember_FsF6nm3makmkjOm3DJrFOw">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</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="As_Of_3_31_2024_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember_faNjppyvAkG95Lo5lfEFQA">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</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="As_Of_12_31_2023_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember_T-GK8ughAU-Ymn8SjNyefQ">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</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="As_Of_9_30_2023_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember_goYxMkcD80mW87QWqQRQjA">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-09-30</instant>
        </period>
    </context>
    <context id="As_Of_6_30_2023_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember_bCsm-GJ2k0O8PvX-0xSefw">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</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="As_Of_3_31_2023_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember_GqQElVI120G_fnR-Wj6JEA">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</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="As_Of_12_31_2022_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember_jd1AYHA2ckyDgIPkOhtN4g">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</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="As_Of_12_31_2023_us-gaap_FairValueByFairValueHierarchyLevelAxis_us-gaap_FairValueInputsLevel2Member_us-gaap_FairValueByMeasurementFrequencyAxis_us-gaap_FairValueMeasurementsRecurringMember_f9bGEi2wcECLNMoSjsii6g">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel2Member</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByMeasurementFrequencyAxis">us-gaap:FairValueMeasurementsRecurringMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="As_Of_12_31_2022_-q309bsKT0i3jZ5ZPwDgew">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="As_Of_9_30_2024_us-gaap_FairValueByFairValueHierarchyLevelAxis_us-gaap_FairValueInputsLevel1Member_us-gaap_FairValueByMeasurementFrequencyAxis_us-gaap_FairValueMeasurementsRecurringMember_cYZklQkgzUO7e0HBwuxYsg">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel1Member</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByMeasurementFrequencyAxis">us-gaap:FairValueMeasurementsRecurringMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-09-30</instant>
        </period>
    </context>
    <context id="As_Of_9_30_2024_us-gaap_FairValueByMeasurementBasisAxis_us-gaap_EstimateOfFairValueFairValueDisclosureMember_us-gaap_FairValueByMeasurementFrequencyAxis_us-gaap_FairValueMeasurementsRecurringMember_mMGWK0XHXU-gmD_1-Ip02w">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByMeasurementBasisAxis">us-gaap:EstimateOfFairValueFairValueDisclosureMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByMeasurementFrequencyAxis">us-gaap:FairValueMeasurementsRecurringMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-09-30</instant>
        </period>
    </context>
    <context id="As_Of_12_31_2023_us-gaap_FairValueByFairValueHierarchyLevelAxis_us-gaap_FairValueInputsLevel1Member_us-gaap_FairValueByMeasurementFrequencyAxis_us-gaap_FairValueMeasurementsRecurringMember_Kd0jmytlNkq1QJcuaTF_Tw">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel1Member</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByMeasurementFrequencyAxis">us-gaap:FairValueMeasurementsRecurringMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="As_Of_12_31_2023_us-gaap_FairValueByMeasurementBasisAxis_us-gaap_EstimateOfFairValueFairValueDisclosureMember_us-gaap_FairValueByMeasurementFrequencyAxis_us-gaap_FairValueMeasurementsRecurringMember_6lW7BwjU8UCeo0LTvup66g">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByMeasurementBasisAxis">us-gaap:EstimateOfFairValueFairValueDisclosureMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByMeasurementFrequencyAxis">us-gaap:FairValueMeasurementsRecurringMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="As_Of_2_1_2024_us-gaap_BusinessAcquisitionAxis_fix_SummitIndustrialConstructionLlcMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TradeNamesMember_ZEDGijrvHEGoqpZCVa3O6Q">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">fix:SummitIndustrialConstructionLlcMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:TradeNamesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-02-01</instant>
        </period>
    </context>
    <context id="As_Of_2_1_2024_us-gaap_BusinessAcquisitionAxis_fix_SummitIndustrialConstructionLlcMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_OrderOrProductionBacklogMember_DG1vcGdP1E-NsKJirHxzmA">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">fix:SummitIndustrialConstructionLlcMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:OrderOrProductionBacklogMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-02-01</instant>
        </period>
    </context>
    <context id="As_Of_2_1_2024_us-gaap_BusinessAcquisitionAxis_fix_SummitIndustrialConstructionLlcMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_E_44aqF1GEeC-off1i3zFQ">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">fix:SummitIndustrialConstructionLlcMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:CustomerRelationshipsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-02-01</instant>
        </period>
    </context>
    <context id="As_Of_2_1_2024_us-gaap_BusinessAcquisitionAxis_fix_JSMechanicalContractorsIncMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TradeNamesMember_UbdNcFSzgE6eQY8Lq0nsUQ">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">fix:JSMechanicalContractorsIncMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:TradeNamesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-02-01</instant>
        </period>
    </context>
    <context id="As_Of_2_1_2024_us-gaap_BusinessAcquisitionAxis_fix_JSMechanicalContractorsIncMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_OrderOrProductionBacklogMember_e3s3Gydg70m4gr5DlLZ2jA">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">fix:JSMechanicalContractorsIncMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:OrderOrProductionBacklogMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-02-01</instant>
        </period>
    </context>
    <context id="As_Of_2_1_2024_us-gaap_BusinessAcquisitionAxis_fix_JSMechanicalContractorsIncMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_E5wMVmpO-EaMwtCFJaOzjg">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">fix:JSMechanicalContractorsIncMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:CustomerRelationshipsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-02-01</instant>
        </period>
    </context>
    <context id="Duration_5_1_2024_To_5_1_2024_us-gaap_BusinessAcquisitionAxis_fix_MechanicalContractorNorthCarolinaMember_GFQfbwtaoU6aQ2eCa6Ydxg">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">fix:MechanicalContractorNorthCarolinaMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-05-01</startDate>
            <endDate>2024-05-01</endDate>
        </period>
    </context>
    <context id="Duration_10_2_2023_To_10_2_2023_us-gaap_BusinessAcquisitionAxis_fix_DeccoIncMember_Dx8j_lCNK0GxxJ_7YlmX8g">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">fix:DeccoIncMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-10-02</startDate>
            <endDate>2023-10-02</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2023_To_2_1_2023_us-gaap_BusinessAcquisitionAxis_fix_EldecoincMember_yjnrZ-2c_E2gP329DQLXDQ">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">fix:EldecoincMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-02-01</startDate>
            <endDate>2023-02-01</endDate>
        </period>
    </context>
    <context id="Duration_7_1_2024_To_9_30_2024_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember_GC_A98EUY0OVhREw-KFEtQ">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-07-01</startDate>
            <endDate>2024-09-30</endDate>
        </period>
    </context>
    <context id="Duration_4_1_2024_To_6_30_2024_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember_Vg2IkYLjME2M1RDpLQhp_w">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</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="Duration_1_1_2024_To_3_31_2024_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember_Vpc_7DhSLkuyQLld5NTf2w">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</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="Duration_7_1_2023_To_9_30_2023_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember_204q6j4d9U2AZI6d8ovCvw">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-07-01</startDate>
            <endDate>2023-09-30</endDate>
        </period>
    </context>
    <context id="Duration_4_1_2023_To_6_30_2023_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember_OOET7gOWT0i386w9VvqgSw">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</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="Duration_1_1_2023_To_3_31_2023_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember_w92MrZLl80KReq7fJha7BA">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</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="Duration_7_1_2024_To_9_30_2024_us-gaap_StatementEquityComponentsAxis_us-gaap_TreasuryStockCommonMember_OHlyn-cLJE6WED7jje2D4g">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:TreasuryStockCommonMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-07-01</startDate>
            <endDate>2024-09-30</endDate>
        </period>
    </context>
    <context id="Duration_4_1_2024_To_6_30_2024_us-gaap_StatementEquityComponentsAxis_us-gaap_TreasuryStockCommonMember_iuV_4b6WkESZTYOaWSSz5g">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:TreasuryStockCommonMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-04-01</startDate>
            <endDate>2024-06-30</endDate>
        </period>
    </context>
    <context id="Duration_4_1_2024_To_6_30_2024_sROrhhIG1EWJb6sdFVCV5A">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
        </entity>
        <period>
            <startDate>2024-04-01</startDate>
            <endDate>2024-06-30</endDate>
        </period>
    </context>
    <context id="Duration_1_1_2024_To_3_31_2024_us-gaap_StatementEquityComponentsAxis_us-gaap_TreasuryStockCommonMember_n0WWCqlMIEi_Xifgk4ElyA">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:TreasuryStockCommonMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-03-31</endDate>
        </period>
    </context>
    <context id="Duration_1_1_2024_To_3_31_2024_3eDLXeHQHUqwFFCeVkNekQ">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-03-31</endDate>
        </period>
    </context>
    <context id="Duration_7_1_2023_To_9_30_2023_us-gaap_StatementEquityComponentsAxis_us-gaap_TreasuryStockCommonMember_y_DckiuCiUukzdxoeufHBQ">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:TreasuryStockCommonMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-07-01</startDate>
            <endDate>2023-09-30</endDate>
        </period>
    </context>
    <context id="Duration_4_1_2023_To_6_30_2023_us-gaap_StatementEquityComponentsAxis_us-gaap_TreasuryStockCommonMember_0KM7HwwZUUSAEOBlTGDKCA">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:TreasuryStockCommonMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-04-01</startDate>
            <endDate>2023-06-30</endDate>
        </period>
    </context>
    <context id="Duration_4_1_2023_To_6_30_2023__ElO6pinZkqcX7BvHZvATw">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
        </entity>
        <period>
            <startDate>2023-04-01</startDate>
            <endDate>2023-06-30</endDate>
        </period>
    </context>
    <context id="Duration_1_1_2023_To_3_31_2023_us-gaap_StatementEquityComponentsAxis_us-gaap_TreasuryStockCommonMember_g9f-nDzbck2YIepY4G-9GQ">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:TreasuryStockCommonMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-03-31</endDate>
        </period>
    </context>
    <context id="Duration_1_1_2023_To_3_31_2023_H23KnShKiEqNJR3rELr9eA">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-03-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2024_To_2_1_2024_us-gaap_BusinessAcquisitionAxis_fix_SummitIndustrialConstructionLlcMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TradeNamesMember_lgAhxWYVXEu_Bz9p8cz9pg">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">fix:SummitIndustrialConstructionLlcMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:TradeNamesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-02-01</startDate>
            <endDate>2024-02-01</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2024_To_2_1_2024_us-gaap_BusinessAcquisitionAxis_fix_SummitIndustrialConstructionLlcMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_OrderOrProductionBacklogMember_XY4c7Vh_f0Wib7AmjNTmVQ">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">fix:SummitIndustrialConstructionLlcMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:OrderOrProductionBacklogMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-02-01</startDate>
            <endDate>2024-02-01</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2024_To_2_1_2024_us-gaap_BusinessAcquisitionAxis_fix_SummitIndustrialConstructionLlcMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_SR-BbGaHQU6crVtFm4Hs3A">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">fix:SummitIndustrialConstructionLlcMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:CustomerRelationshipsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-02-01</startDate>
            <endDate>2024-02-01</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2024_To_2_1_2024_us-gaap_BusinessAcquisitionAxis_fix_JSMechanicalContractorsIncMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TradeNamesMember_fM79lywvg0u8_5fg8WgnBg">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">fix:JSMechanicalContractorsIncMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:TradeNamesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-02-01</startDate>
            <endDate>2024-02-01</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2024_To_2_1_2024_us-gaap_BusinessAcquisitionAxis_fix_JSMechanicalContractorsIncMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_OrderOrProductionBacklogMember_J4SGwOYkg0erGQ6tMtF4oQ">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">fix:JSMechanicalContractorsIncMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:OrderOrProductionBacklogMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-02-01</startDate>
            <endDate>2024-02-01</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2024_To_2_1_2024_us-gaap_BusinessAcquisitionAxis_fix_JSMechanicalContractorsIncMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_DCSiQ8QzcESU4zRgTrHB3A">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">fix:JSMechanicalContractorsIncMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:CustomerRelationshipsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-02-01</startDate>
            <endDate>2024-02-01</endDate>
        </period>
    </context>
    <context id="As_Of_9_30_2024_us-gaap_PlanNameAxis_fix_StockRepurchaseProgram2007Member_v-c1j9gAuk-TEjUkrEyayg">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">fix:StockRepurchaseProgram2007Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-09-30</instant>
        </period>
    </context>
    <context id="As_Of_8_7_2024_us-gaap_PlanNameAxis_fix_StockRepurchaseProgram2007Member_zuupYSp1G0-EXbeu-NSt3g">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">fix:StockRepurchaseProgram2007Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-08-07</instant>
        </period>
    </context>
    <context id="As_Of_3_29_2007_us-gaap_PlanNameAxis_fix_StockRepurchaseProgram2007Member_IxnfDnQA_k-o75uXlRzSfQ">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">fix:StockRepurchaseProgram2007Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2007-03-29</instant>
        </period>
    </context>
    <context id="Duration_1_1_2024_To_9_30_2024_srt_RangeAxis_srt_MaximumMember_S1BDn2duy0GGVVQoyxtpBA">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-09-30</endDate>
        </period>
    </context>
    <context id="Duration_7_1_2024_To_9_30_2024_srt_MajorCustomersAxis_us-gaap_OtherCustomerMember_ooxekhUnHkC59OhygvzcEg">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">us-gaap:OtherCustomerMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-07-01</startDate>
            <endDate>2024-09-30</endDate>
        </period>
    </context>
    <context id="Duration_7_1_2024_To_9_30_2024_srt_MajorCustomersAxis_fix_TechnologyMember_KsDxF3geU0unObVLWO98Dg">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">fix:TechnologyMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-07-01</startDate>
            <endDate>2024-09-30</endDate>
        </period>
    </context>
    <context id="Duration_7_1_2024_To_9_30_2024_us-gaap_StatementBusinessSegmentsAxis_fix_ServiceProjectsMember_v1xTvZU3H0O-NNEJG5Wuag">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">fix:ServiceProjectsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-07-01</startDate>
            <endDate>2024-09-30</endDate>
        </period>
    </context>
    <context id="Duration_7_1_2024_To_9_30_2024_us-gaap_StatementBusinessSegmentsAxis_fix_ServiceCallsMaintenanceAndMonitoringMember_nRP3Zz-B5UeD5mhLWvsftg">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">fix:ServiceCallsMaintenanceAndMonitoringMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-07-01</startDate>
            <endDate>2024-09-30</endDate>
        </period>
    </context>
    <context id="Duration_7_1_2024_To_9_30_2024_srt_MajorCustomersAxis_fix_RetailRestaurantsAndEntertainmentMember_FdEm-EcqqEOqEpuOJGXGqQ">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">fix:RetailRestaurantsAndEntertainmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-07-01</startDate>
            <endDate>2024-09-30</endDate>
        </period>
    </context>
    <context id="Duration_7_1_2024_To_9_30_2024_srt_MajorCustomersAxis_fix_OfficeBuildingCustomerMember_jctX_m442UmvBsXqlaT9Yg">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">fix:OfficeBuildingCustomerMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-07-01</startDate>
            <endDate>2024-09-30</endDate>
        </period>
    </context>
    <context id="Duration_7_1_2024_To_9_30_2024_us-gaap_StatementBusinessSegmentsAxis_fix_NewConstructionMember_TPRoRp0_rkeI19wbVGoUiw">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">fix:NewConstructionMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-07-01</startDate>
            <endDate>2024-09-30</endDate>
        </period>
    </context>
    <context id="Duration_7_1_2024_To_9_30_2024_srt_MajorCustomersAxis_fix_MultiFamilyAndResidentialMember_yHQoZtxDMUS7uq8YgHlu8g">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">fix:MultiFamilyAndResidentialMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-07-01</startDate>
            <endDate>2024-09-30</endDate>
        </period>
    </context>
    <context id="Duration_7_1_2024_To_9_30_2024_srt_ProductOrServiceAxis_fix_MechanicalSegmentMember_zSjBPjtYwUi_X1HFKHPBRA">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">fix:MechanicalSegmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-07-01</startDate>
            <endDate>2024-09-30</endDate>
        </period>
    </context>
    <context id="Duration_7_1_2024_To_9_30_2024_srt_MajorCustomersAxis_fix_ManufacturingCustomerMember_DlSkW78ckESme-WbVK0ifw">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">fix:ManufacturingCustomerMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-07-01</startDate>
            <endDate>2024-09-30</endDate>
        </period>
    </context>
    <context id="Duration_7_1_2024_To_9_30_2024_srt_MajorCustomersAxis_fix_HealthcareSectorCustomerMember_iM7xuXrB1UGGGYT2NTTnKw">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">fix:HealthcareSectorCustomerMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-07-01</startDate>
            <endDate>2024-09-30</endDate>
        </period>
    </context>
    <context id="Duration_7_1_2024_To_9_30_2024_srt_MajorCustomersAxis_fix_GovernmentCustomerMember_6rJ0v9NfEkehmj1jbsxjTA">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">fix:GovernmentCustomerMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-07-01</startDate>
            <endDate>2024-09-30</endDate>
        </period>
    </context>
    <context id="Duration_7_1_2024_To_9_30_2024_us-gaap_StatementBusinessSegmentsAxis_fix_ExistingBuildingConstructionMember_xsHcU1o_pk6S278XapX_zw">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">fix:ExistingBuildingConstructionMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-07-01</startDate>
            <endDate>2024-09-30</endDate>
        </period>
    </context>
    <context id="Duration_7_1_2024_To_9_30_2024_srt_ProductOrServiceAxis_fix_ElectricalSegmentMember_x3CnBCq-ukmmkcOLyaXSzw">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">fix:ElectricalSegmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-07-01</startDate>
            <endDate>2024-09-30</endDate>
        </period>
    </context>
    <context id="Duration_7_1_2024_To_9_30_2024_srt_MajorCustomersAxis_fix_EducationMember_3s_WeWJeO02h2rX6ci5CYA">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">fix:EducationMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-07-01</startDate>
            <endDate>2024-09-30</endDate>
        </period>
    </context>
    <context id="Duration_1_1_2024_To_9_30_2024_srt_MajorCustomersAxis_us-gaap_OtherCustomerMember_3oz8P6zHak-9HhcCONsscQ">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">us-gaap:OtherCustomerMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-09-30</endDate>
        </period>
    </context>
    <context id="Duration_1_1_2024_To_9_30_2024_srt_MajorCustomersAxis_fix_TechnologyMember_8Ha7PafjlUqeoARzwkE3eg">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">fix:TechnologyMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-09-30</endDate>
        </period>
    </context>
    <context id="Duration_1_1_2024_To_9_30_2024_us-gaap_StatementBusinessSegmentsAxis_fix_ServiceProjectsMember_UXRSMj4jZEaQfly5_6v8FA">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">fix:ServiceProjectsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-09-30</endDate>
        </period>
    </context>
    <context id="Duration_1_1_2024_To_9_30_2024_us-gaap_StatementBusinessSegmentsAxis_fix_ServiceCallsMaintenanceAndMonitoringMember_g7dgBZVClUiBSjvSBcXJLA">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">fix:ServiceCallsMaintenanceAndMonitoringMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-09-30</endDate>
        </period>
    </context>
    <context id="Duration_1_1_2024_To_9_30_2024_srt_MajorCustomersAxis_fix_RetailRestaurantsAndEntertainmentMember_mSxxcWu0iEGriS1GvinPXg">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">fix:RetailRestaurantsAndEntertainmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-09-30</endDate>
        </period>
    </context>
    <context id="Duration_1_1_2024_To_9_30_2024_srt_MajorCustomersAxis_fix_OfficeBuildingCustomerMember_BcP-IXTgNUGzTH6kcfg3Zw">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">fix:OfficeBuildingCustomerMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-09-30</endDate>
        </period>
    </context>
    <context id="Duration_1_1_2024_To_9_30_2024_us-gaap_StatementBusinessSegmentsAxis_fix_NewConstructionMember_1OFwKv6p1E-T4eLsC_JEsg">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">fix:NewConstructionMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-09-30</endDate>
        </period>
    </context>
    <context id="Duration_1_1_2024_To_9_30_2024_srt_MajorCustomersAxis_fix_MultiFamilyAndResidentialMember__QFzND4WM0qZXRCC48RVPg">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">fix:MultiFamilyAndResidentialMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-09-30</endDate>
        </period>
    </context>
    <context id="Duration_1_1_2024_To_9_30_2024_srt_ProductOrServiceAxis_fix_MechanicalSegmentMember_dvUOkdhSUkekmtE7VK9W8Q">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">fix:MechanicalSegmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-09-30</endDate>
        </period>
    </context>
    <context id="Duration_1_1_2024_To_9_30_2024_srt_MajorCustomersAxis_fix_ManufacturingCustomerMember_at5IYry25U-KfN2L9AzS_Q">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">fix:ManufacturingCustomerMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-09-30</endDate>
        </period>
    </context>
    <context id="Duration_1_1_2024_To_9_30_2024_srt_MajorCustomersAxis_fix_HealthcareSectorCustomerMember_qD7fXzmzKkm_9Q_7qkwq4A">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">fix:HealthcareSectorCustomerMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-09-30</endDate>
        </period>
    </context>
    <context id="Duration_1_1_2024_To_9_30_2024_srt_MajorCustomersAxis_fix_GovernmentCustomerMember_Bn5B0HvRvkyNvOiVoQwe-A">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">fix:GovernmentCustomerMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-09-30</endDate>
        </period>
    </context>
    <context id="Duration_1_1_2024_To_9_30_2024_us-gaap_StatementBusinessSegmentsAxis_fix_ExistingBuildingConstructionMember_kFgT68z3yEm6YFsca1c4sQ">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">fix:ExistingBuildingConstructionMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-09-30</endDate>
        </period>
    </context>
    <context id="Duration_1_1_2024_To_9_30_2024_srt_ProductOrServiceAxis_fix_ElectricalSegmentMember_o0t0pUlXiUyaiEyLXjNLqg">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">fix:ElectricalSegmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-09-30</endDate>
        </period>
    </context>
    <context id="Duration_1_1_2024_To_9_30_2024_srt_MajorCustomersAxis_fix_EducationMember_7MnM8jwS_Umjv2UlYVMfxQ">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">fix:EducationMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-09-30</endDate>
        </period>
    </context>
    <context id="Duration_7_1_2023_To_9_30_2023_srt_MajorCustomersAxis_us-gaap_OtherCustomerMember_VGlfj-1TzEmnVzKTrmKWiQ">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">us-gaap:OtherCustomerMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-07-01</startDate>
            <endDate>2023-09-30</endDate>
        </period>
    </context>
    <context id="Duration_7_1_2023_To_9_30_2023_srt_MajorCustomersAxis_fix_TechnologyMember_f_AWks4nDUO_PVuPOxT2Ug">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">fix:TechnologyMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-07-01</startDate>
            <endDate>2023-09-30</endDate>
        </period>
    </context>
    <context id="Duration_7_1_2023_To_9_30_2023_us-gaap_StatementBusinessSegmentsAxis_fix_ServiceProjectsMember_BIAAdohKR0KkRoxqv355pQ">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">fix:ServiceProjectsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-07-01</startDate>
            <endDate>2023-09-30</endDate>
        </period>
    </context>
    <context id="Duration_7_1_2023_To_9_30_2023_us-gaap_StatementBusinessSegmentsAxis_fix_ServiceCallsMaintenanceAndMonitoringMember_NQSFRlXpkEGM1kjrMGGdkg">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">fix:ServiceCallsMaintenanceAndMonitoringMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-07-01</startDate>
            <endDate>2023-09-30</endDate>
        </period>
    </context>
    <context id="Duration_7_1_2023_To_9_30_2023_srt_MajorCustomersAxis_fix_RetailRestaurantsAndEntertainmentMember_jGe7tXzCSUazhQentwBi6g">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">fix:RetailRestaurantsAndEntertainmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-07-01</startDate>
            <endDate>2023-09-30</endDate>
        </period>
    </context>
    <context id="Duration_7_1_2023_To_9_30_2023_srt_MajorCustomersAxis_fix_OfficeBuildingCustomerMember_pHSah2Q_ZkafnHa1Q7RhOg">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">fix:OfficeBuildingCustomerMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-07-01</startDate>
            <endDate>2023-09-30</endDate>
        </period>
    </context>
    <context id="Duration_7_1_2023_To_9_30_2023_us-gaap_StatementBusinessSegmentsAxis_fix_NewConstructionMember_X-8Qi_Gr-EqavravxT4Tmw">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">fix:NewConstructionMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-07-01</startDate>
            <endDate>2023-09-30</endDate>
        </period>
    </context>
    <context id="Duration_7_1_2023_To_9_30_2023_srt_MajorCustomersAxis_fix_MultiFamilyAndResidentialMember_lXNLSArRmEWGe3DLspPuEQ">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">fix:MultiFamilyAndResidentialMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-07-01</startDate>
            <endDate>2023-09-30</endDate>
        </period>
    </context>
    <context id="Duration_7_1_2023_To_9_30_2023_srt_ProductOrServiceAxis_fix_MechanicalSegmentMember_ERE56cXrDkqqTstR-ZqOmw">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">fix:MechanicalSegmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-07-01</startDate>
            <endDate>2023-09-30</endDate>
        </period>
    </context>
    <context id="Duration_7_1_2023_To_9_30_2023_srt_MajorCustomersAxis_fix_ManufacturingCustomerMember_d8LstyS2_0eYmjU47uflpA">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">fix:ManufacturingCustomerMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-07-01</startDate>
            <endDate>2023-09-30</endDate>
        </period>
    </context>
    <context id="Duration_7_1_2023_To_9_30_2023_srt_MajorCustomersAxis_fix_HealthcareSectorCustomerMember_98MrGE2fNEW16lWzpetk6A">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">fix:HealthcareSectorCustomerMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-07-01</startDate>
            <endDate>2023-09-30</endDate>
        </period>
    </context>
    <context id="Duration_7_1_2023_To_9_30_2023_srt_MajorCustomersAxis_fix_GovernmentCustomerMember_lu4XhCrd50S4x-cEsGLwMA">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">fix:GovernmentCustomerMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-07-01</startDate>
            <endDate>2023-09-30</endDate>
        </period>
    </context>
    <context id="Duration_7_1_2023_To_9_30_2023_us-gaap_StatementBusinessSegmentsAxis_fix_ExistingBuildingConstructionMember_FXRjqCbVgEKB2tybWB0X-g">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">fix:ExistingBuildingConstructionMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-07-01</startDate>
            <endDate>2023-09-30</endDate>
        </period>
    </context>
    <context id="Duration_7_1_2023_To_9_30_2023_srt_ProductOrServiceAxis_fix_ElectricalSegmentMember_EhM9QnB9q0KvmMWYVDF6Zg">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">fix:ElectricalSegmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-07-01</startDate>
            <endDate>2023-09-30</endDate>
        </period>
    </context>
    <context id="Duration_7_1_2023_To_9_30_2023_srt_MajorCustomersAxis_fix_EducationMember_IXPI4j2t1EuVO_835l-ROg">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">fix:EducationMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-07-01</startDate>
            <endDate>2023-09-30</endDate>
        </period>
    </context>
    <context id="Duration_1_1_2023_To_9_30_2023_srt_MajorCustomersAxis_us-gaap_OtherCustomerMember_1dZZBF2VrkuIAaJtkjLDMw">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">us-gaap:OtherCustomerMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-09-30</endDate>
        </period>
    </context>
    <context id="Duration_1_1_2023_To_9_30_2023_srt_MajorCustomersAxis_fix_TechnologyMember_gsMI6hHvYEeyed_Plm-HmA">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">fix:TechnologyMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-09-30</endDate>
        </period>
    </context>
    <context id="Duration_1_1_2023_To_9_30_2023_us-gaap_StatementBusinessSegmentsAxis_fix_ServiceProjectsMember_haGwYoQcvUCiGoQWZ1VG1w">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">fix:ServiceProjectsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-09-30</endDate>
        </period>
    </context>
    <context id="Duration_1_1_2023_To_9_30_2023_us-gaap_StatementBusinessSegmentsAxis_fix_ServiceCallsMaintenanceAndMonitoringMember_8McghxnrdUmSrStHl4sMXQ">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">fix:ServiceCallsMaintenanceAndMonitoringMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-09-30</endDate>
        </period>
    </context>
    <context id="Duration_1_1_2023_To_9_30_2023_srt_MajorCustomersAxis_fix_RetailRestaurantsAndEntertainmentMember_iRcGOwE8BkqMimheyifr0Q">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">fix:RetailRestaurantsAndEntertainmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-09-30</endDate>
        </period>
    </context>
    <context id="Duration_1_1_2023_To_9_30_2023_srt_MajorCustomersAxis_fix_OfficeBuildingCustomerMember_5ck-_ey1iEmhLHtML0T7Qw">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">fix:OfficeBuildingCustomerMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-09-30</endDate>
        </period>
    </context>
    <context id="Duration_1_1_2023_To_9_30_2023_us-gaap_StatementBusinessSegmentsAxis_fix_NewConstructionMember_vZyk2ScSaUWum8ZsO7KiAw">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">fix:NewConstructionMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-09-30</endDate>
        </period>
    </context>
    <context id="Duration_1_1_2023_To_9_30_2023_srt_MajorCustomersAxis_fix_MultiFamilyAndResidentialMember_gt6wgJzRZEayKVY24Ip8yQ">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">fix:MultiFamilyAndResidentialMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-09-30</endDate>
        </period>
    </context>
    <context id="Duration_1_1_2023_To_9_30_2023_srt_ProductOrServiceAxis_fix_MechanicalSegmentMember_5Zvwx1aGcUmEmUz8Y0iq0g">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">fix:MechanicalSegmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-09-30</endDate>
        </period>
    </context>
    <context id="Duration_1_1_2023_To_9_30_2023_srt_MajorCustomersAxis_fix_ManufacturingCustomerMember_1ntFAqiRBU-LgOlfAwP-XQ">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">fix:ManufacturingCustomerMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-09-30</endDate>
        </period>
    </context>
    <context id="Duration_1_1_2023_To_9_30_2023_srt_MajorCustomersAxis_fix_HealthcareSectorCustomerMember_DQuFCD0170O_Pg1jeSAQdQ">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">fix:HealthcareSectorCustomerMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-09-30</endDate>
        </period>
    </context>
    <context id="Duration_1_1_2023_To_9_30_2023_srt_MajorCustomersAxis_fix_GovernmentCustomerMember_KZybkavxEES6_Y1Ef66T9w">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">fix:GovernmentCustomerMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-09-30</endDate>
        </period>
    </context>
    <context id="Duration_1_1_2023_To_9_30_2023_us-gaap_StatementBusinessSegmentsAxis_fix_ExistingBuildingConstructionMember_n_MbMVArkEyX3wbyy5U5Rw">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">fix:ExistingBuildingConstructionMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-09-30</endDate>
        </period>
    </context>
    <context id="Duration_1_1_2023_To_9_30_2023_srt_ProductOrServiceAxis_fix_ElectricalSegmentMember_2uWX4c1lfk6w485DVAhWOQ">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">fix:ElectricalSegmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-09-30</endDate>
        </period>
    </context>
    <context id="Duration_1_1_2023_To_9_30_2023_srt_MajorCustomersAxis_fix_EducationMember_RzrHrhvZOEqM88oaj1mOWw">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">fix:EducationMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-09-30</endDate>
        </period>
    </context>
    <context id="Duration_1_1_2024_To_9_30_2024_srt_RangeAxis_srt_MinimumMember_us-gaap_LossContingenciesByNatureOfContingencyAxis_us-gaap_SuretyBondMember_u-DTSuPKZ0yIEXxgdm3JPA">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:LossContingenciesByNatureOfContingencyAxis">us-gaap:SuretyBondMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-09-30</endDate>
        </period>
    </context>
    <context id="Duration_1_1_2024_To_9_30_2024_srt_RangeAxis_srt_MaximumMember_us-gaap_LossContingenciesByNatureOfContingencyAxis_us-gaap_SuretyBondMember_vo8hvaWZp0aEPxrNNFY3Dw">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:LossContingenciesByNatureOfContingencyAxis">us-gaap:SuretyBondMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-09-30</endDate>
        </period>
    </context>
    <context id="Duration_1_1_2024_To_9_30_2024_srt_RangeAxis_srt_MinimumMember_3wO7ciKypUqVRHiqsG5ULA">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-09-30</endDate>
        </period>
    </context>
    <context id="As_Of_9_30_2023_Cz0YiFrEwkyvL950Hk4Vxw">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
        </entity>
        <period>
            <instant>2023-09-30</instant>
        </period>
    </context>
    <context id="As_Of_9_30_2024_srt_RangeAxis_srt_MaximumMember_us-gaap_CreditFacilityAxis_us-gaap_RevolvingCreditFacilityMember_us-gaap_DebtInstrumentAxis_fix_SeniorRevolvingCreditFacilityMember_Vx-A-TxtU06VSg1tAhtGXA">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:CreditFacilityAxis">us-gaap:RevolvingCreditFacilityMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">fix:SeniorRevolvingCreditFacilityMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-09-30</instant>
        </period>
    </context>
    <context id="As_Of_12_31_2023_X7eqeHRTF0mRLJW7InVDdA">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="As_Of_9_30_2024_um13j0l3zk2ITGaiED1DFA">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
        </entity>
        <period>
            <instant>2024-09-30</instant>
        </period>
    </context>
    <context id="As_Of_9_30_2024_us-gaap_DebtInstrumentAxis_fix_SubordinateDebtAndPromissoryNoteMember_XSQD6UqffkiEduCjJs-FPQ">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">fix:SubordinateDebtAndPromissoryNoteMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-09-30</instant>
        </period>
    </context>
    <context id="Duration_7_1_2023_To_9_30_2023_S4fUa5HYuk6ZPxhUrn5m5w">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
        </entity>
        <period>
            <startDate>2023-07-01</startDate>
            <endDate>2023-09-30</endDate>
        </period>
    </context>
    <context id="Duration_1_1_2023_To_9_30_2023_0vpBpKZIxEC_KY5z5G8rKA">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-09-30</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2024_To_2_1_2024_srt_RangeAxis_srt_MinimumMember_us-gaap_BusinessAcquisitionAxis_fix_SummitIndustrialConstructionLlcMember_us-gaap_FairValueByLiabilityClassAxis_fix_ContingentConsiderationObligationsMember_us-gaap_MeasurementInputTypeAxis_us-gaap_MeasurementInputInceptionDiscountRateMember_omOpY3LNbk21p0z2y9Cidw">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">fix:SummitIndustrialConstructionLlcMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByLiabilityClassAxis">fix:ContingentConsiderationObligationsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:MeasurementInputTypeAxis">us-gaap:MeasurementInputInceptionDiscountRateMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-02-01</startDate>
            <endDate>2024-02-01</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2024_To_2_1_2024_srt_RangeAxis_srt_MinimumMember_us-gaap_BusinessAcquisitionAxis_fix_JSMechanicalContractorsIncMember_us-gaap_FairValueByLiabilityClassAxis_fix_ContingentConsiderationObligationsMember_us-gaap_MeasurementInputTypeAxis_us-gaap_MeasurementInputInceptionDiscountRateMember_Z4PzYqr85UuHGkurckYlsA">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">fix:JSMechanicalContractorsIncMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByLiabilityClassAxis">fix:ContingentConsiderationObligationsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:MeasurementInputTypeAxis">us-gaap:MeasurementInputInceptionDiscountRateMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-02-01</startDate>
            <endDate>2024-02-01</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2024_To_2_1_2024_srt_RangeAxis_srt_MaximumMember_us-gaap_BusinessAcquisitionAxis_fix_SummitIndustrialConstructionLlcMember_us-gaap_FairValueByLiabilityClassAxis_fix_ContingentConsiderationObligationsMember_us-gaap_MeasurementInputTypeAxis_us-gaap_MeasurementInputInceptionDiscountRateMember_dhJ80I6zTE-y2GJjn5aLWQ">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">fix:SummitIndustrialConstructionLlcMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByLiabilityClassAxis">fix:ContingentConsiderationObligationsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:MeasurementInputTypeAxis">us-gaap:MeasurementInputInceptionDiscountRateMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-02-01</startDate>
            <endDate>2024-02-01</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2024_To_2_1_2024_srt_RangeAxis_srt_MaximumMember_us-gaap_BusinessAcquisitionAxis_fix_JSMechanicalContractorsIncMember_us-gaap_FairValueByLiabilityClassAxis_fix_ContingentConsiderationObligationsMember_us-gaap_MeasurementInputTypeAxis_us-gaap_MeasurementInputInceptionDiscountRateMember_1iGhRmFgn0SNe3F9sRA-Hw">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">fix:JSMechanicalContractorsIncMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByLiabilityClassAxis">fix:ContingentConsiderationObligationsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:MeasurementInputTypeAxis">us-gaap:MeasurementInputInceptionDiscountRateMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-02-01</startDate>
            <endDate>2024-02-01</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2024_To_2_1_2024_srt_RangeAxis_srt_MinimumMember_us-gaap_BusinessAcquisitionAxis_fix_SummitIndustrialConstructionLlcMember_us-gaap_MeasurementInputTypeAxis_us-gaap_MeasurementInputInceptionDiscountRateMember_jsSEzNLlEE-Ex4s5gpzSkA">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">fix:SummitIndustrialConstructionLlcMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:MeasurementInputTypeAxis">us-gaap:MeasurementInputInceptionDiscountRateMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-02-01</startDate>
            <endDate>2024-02-01</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2024_To_2_1_2024_srt_RangeAxis_srt_MinimumMember_us-gaap_BusinessAcquisitionAxis_fix_JSMechanicalContractorsIncMember_us-gaap_MeasurementInputTypeAxis_us-gaap_MeasurementInputInceptionDiscountRateMember_E08FgkC7SU-_6ToMlCXhxQ">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">fix:JSMechanicalContractorsIncMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:MeasurementInputTypeAxis">us-gaap:MeasurementInputInceptionDiscountRateMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-02-01</startDate>
            <endDate>2024-02-01</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2024_To_2_1_2024_srt_RangeAxis_srt_MaximumMember_us-gaap_BusinessAcquisitionAxis_fix_SummitIndustrialConstructionLlcMember_us-gaap_MeasurementInputTypeAxis_us-gaap_MeasurementInputInceptionDiscountRateMember_9jhFskDynU-Bp3RZFmcmmg">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">fix:SummitIndustrialConstructionLlcMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:MeasurementInputTypeAxis">us-gaap:MeasurementInputInceptionDiscountRateMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-02-01</startDate>
            <endDate>2024-02-01</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2024_To_2_1_2024_srt_RangeAxis_srt_MaximumMember_us-gaap_BusinessAcquisitionAxis_fix_JSMechanicalContractorsIncMember_us-gaap_MeasurementInputTypeAxis_us-gaap_MeasurementInputInceptionDiscountRateMember_3_7veEW0vUGYAhsysIAMDg">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">fix:JSMechanicalContractorsIncMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:MeasurementInputTypeAxis">us-gaap:MeasurementInputInceptionDiscountRateMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-02-01</startDate>
            <endDate>2024-02-01</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2024_To_2_1_2024_us-gaap_BusinessAcquisitionAxis_fix_SummitIndustrialConstructionLlcMember_us-gaap_FairValueByLiabilityClassAxis_fix_ContingentConsiderationObligationsMember_f8tsuUPK4kqkQgJ0yrrqjA">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">fix:SummitIndustrialConstructionLlcMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByLiabilityClassAxis">fix:ContingentConsiderationObligationsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-02-01</startDate>
            <endDate>2024-02-01</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2024_To_2_1_2024_us-gaap_BusinessAcquisitionAxis_fix_JSMechanicalContractorsIncMember_us-gaap_FairValueByLiabilityClassAxis_fix_ContingentConsiderationObligationsMember_6ZRDO1yLaUmIrGvOOt3b2Q">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">fix:JSMechanicalContractorsIncMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByLiabilityClassAxis">fix:ContingentConsiderationObligationsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-02-01</startDate>
            <endDate>2024-02-01</endDate>
        </period>
    </context>
    <context id="As_Of_2_1_2024_us-gaap_BusinessAcquisitionAxis_fix_SummitIndustrialConstructionLlcMember_4nZLiHoQek-94UQ4yBtSSQ">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">fix:SummitIndustrialConstructionLlcMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-02-01</instant>
        </period>
    </context>
    <context id="As_Of_2_1_2024_us-gaap_BusinessAcquisitionAxis_fix_JSMechanicalContractorsIncMember_-UFNMak94EiLKWp3uwuxKA">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">fix:JSMechanicalContractorsIncMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-02-01</instant>
        </period>
    </context>
    <context id="As_Of_2_1_2024_us-gaap_BusinessAcquisitionAxis_fix_SummitIndustrialConstructionLlcMember_us-gaap_FairValueByLiabilityClassAxis_fix_ContingentConsiderationObligationsMember_6iSMnKlf-ESVMUiNLAe0RQ">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">fix:SummitIndustrialConstructionLlcMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByLiabilityClassAxis">fix:ContingentConsiderationObligationsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-02-01</instant>
        </period>
    </context>
    <context id="As_Of_2_1_2024_us-gaap_BusinessAcquisitionAxis_fix_JSMechanicalContractorsIncMember_us-gaap_FairValueByLiabilityClassAxis_fix_ContingentConsiderationObligationsMember_elY5K7I58U6YVrlQHSZljw">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">fix:JSMechanicalContractorsIncMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByLiabilityClassAxis">fix:ContingentConsiderationObligationsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-02-01</instant>
        </period>
    </context>
    <context id="Duration_2_1_2024_To_2_1_2024_us-gaap_BusinessAcquisitionAxis_fix_SummitIndustrialConstructionLlcMember_S5n0ZNTvS0KLqs4fzBJX1A">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">fix:SummitIndustrialConstructionLlcMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-02-01</startDate>
            <endDate>2024-02-01</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2024_To_2_1_2024_us-gaap_BusinessAcquisitionAxis_fix_JSMechanicalContractorsIncMember_vbpAmjpzQ0i17zj1l6LoZQ">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">fix:JSMechanicalContractorsIncMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-02-01</startDate>
            <endDate>2024-02-01</endDate>
        </period>
    </context>
    <context id="Duration_7_1_2024_To_9_30_2024_XquWrHsdeEmkK9F8qXf6qA">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
        </entity>
        <period>
            <startDate>2024-07-01</startDate>
            <endDate>2024-09-30</endDate>
        </period>
    </context>
    <context id="As_Of_10_18_2024_efSZE3afwUWQ72isHwphYg">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
        </entity>
        <period>
            <instant>2024-10-18</instant>
        </period>
    </context>
    <context id="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-09-30</endDate>
        </period>
    </context>
    <unit id="Unit_Standard_segment_3_qs4qRnNUKHCam52rVs-g">
        <measure>fix:segment</measure>
    </unit>
    <unit id="Unit_Standard_shares_YK1c03HsOkOiDLLsAeYHoA">
        <measure>shares</measure>
    </unit>
    <unit id="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">
        <measure>iso4217:USD</measure>
    </unit>
    <unit id="Unit_Standard_Milestone_OLalA_yQ5Um-7AHW7XVHqw">
        <measure>fix:Milestone</measure>
    </unit>
    <unit id="Unit_Standard_pure_0GIr2wv4rk-T38a8Lz0A5w">
        <measure>pure</measure>
    </unit>
    <unit id="Unit_Standard_item_PbUC2ubErUqwW8N_vj70-g">
        <measure>fix:item</measure>
    </unit>
    <unit id="Unit_Standard_employee_4_T_xVXJeUGRyiTsD-I_ag">
        <measure>fix:employee</measure>
    </unit>
    <unit id="Unit_Standard_lease_U5sIX0HP0UOmAQUpJ4dJYg">
        <measure>fix:lease</measure>
    </unit>
    <unit id="Unit_Standard_Option_qbxE96-DSUeFUvu6RD_SkA">
        <measure>fix:Option</measure>
    </unit>
    <unit id="Unit_Divide_USD_shares_0ZfRDiWNfk6kp61F6IdjQA">
        <divide>
            <unitNumerator>
                <measure>iso4217:USD</measure>
            </unitNumerator>
            <unitDenominator>
                <measure>shares</measure>
            </unitDenominator>
        </divide>
    </unit>
    <us-gaap:CommitmentsAndContingencies
      contextRef="As_Of_9_30_2024_um13j0l3zk2ITGaiED1DFA"
      id="Hidden_332C-31j8kO5D6fSkU_OTw"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ"
      xsi:nil="true"/>
    <us-gaap:CommitmentsAndContingencies
      contextRef="As_Of_12_31_2023_X7eqeHRTF0mRLJW7InVDdA"
      id="Hidden_jW1TaqGstEyp0JeIfuHg3g"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ"
      xsi:nil="true"/>
    <us-gaap:PreferredStockSharesOutstanding
      contextRef="As_Of_9_30_2024_um13j0l3zk2ITGaiED1DFA"
      decimals="INF"
      id="Hidden_4nu7i7cSPUe6s0kwWofluw"
      unitRef="Unit_Standard_shares_YK1c03HsOkOiDLLsAeYHoA">0</us-gaap:PreferredStockSharesOutstanding>
    <us-gaap:PreferredStockSharesOutstanding
      contextRef="As_Of_12_31_2023_X7eqeHRTF0mRLJW7InVDdA"
      decimals="INF"
      id="Hidden_OqEbtRsdjk6_e80fj_R3Og"
      unitRef="Unit_Standard_shares_YK1c03HsOkOiDLLsAeYHoA">0</us-gaap:PreferredStockSharesOutstanding>
    <us-gaap:OperatingLeaseLiabilityCurrentStatementOfFinancialPositionExtensibleList
      contextRef="As_Of_12_31_2023_X7eqeHRTF0mRLJW7InVDdA"
      id="Hidden_4Wn2EZmiNUmCOaimsxddTA">http://fasb.org/us-gaap/2024#OtherLiabilitiesCurrent</us-gaap:OperatingLeaseLiabilityCurrentStatementOfFinancialPositionExtensibleList>
    <dei:EntityCentralIndexKey
      contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ"
      id="Tc_fIrUagexR0yoLWC8NdZtAg_2_1">0001035983</dei:EntityCentralIndexKey>
    <dei:CurrentFiscalYearEndDate
      contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ"
      id="Tc_Pe-DaxttVEu0YqGK0IjiVw_3_1">--12-31</dei:CurrentFiscalYearEndDate>
    <dei:DocumentFiscalYearFocus
      contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ"
      id="Tc_t4wbx6Q_VEuPpce2OdtAsQ_4_1">2024</dei:DocumentFiscalYearFocus>
    <dei:DocumentFiscalPeriodFocus
      contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ"
      id="Tc_5EJbe856FUO4F-ac7xUxDg_5_1">Q3</dei:DocumentFiscalPeriodFocus>
    <dei:AmendmentFlag
      contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ"
      id="Tc_u4HYAg8u306OOjSvY7btWw_6_1">false</dei:AmendmentFlag>
    <us-gaap:PreferredStockValue
      contextRef="As_Of_9_30_2024_um13j0l3zk2ITGaiED1DFA"
      id="Hidden_dBE1Ix-ZG0Ouzf6-oQIFZQ"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ"
      xsi:nil="true"/>
    <us-gaap:PreferredStockValue
      contextRef="As_Of_12_31_2023_X7eqeHRTF0mRLJW7InVDdA"
      id="Hidden_NgV-IprYaEKY9cJKBMN6Sg"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ"
      xsi:nil="true"/>
    <fix:BusinessCombinationTermOfEarningsMilestones
      contextRef="Duration_2_1_2024_To_2_1_2024_us-gaap_BusinessAcquisitionAxis_fix_SummitIndustrialConstructionLlcMember_us-gaap_FairValueByLiabilityClassAxis_fix_ContingentConsiderationObligationsMember_f8tsuUPK4kqkQgJ0yrrqjA"
      id="Hidden_D6Z90bw5WUGuPqOyL_t0uw">P47M</fix:BusinessCombinationTermOfEarningsMilestones>
    <fix:BusinessCombinationTermOfEarningsMilestones
      contextRef="Duration_2_1_2024_To_2_1_2024_us-gaap_BusinessAcquisitionAxis_fix_JSMechanicalContractorsIncMember_us-gaap_FairValueByLiabilityClassAxis_fix_ContingentConsiderationObligationsMember_6ZRDO1yLaUmIrGvOOt3b2Q"
      id="Hidden_7S33M40-vka_9FZRu5HBlg">P35M</fix:BusinessCombinationTermOfEarningsMilestones>
    <us-gaap:LesseeOperatingLeaseTermOfContract
      contextRef="As_Of_9_30_2024_srt_RangeAxis_srt_MinimumMember_ClTBeXmHB06p7bDY9nYFkA"
      id="Hidden_ObkJycMSt02VXygggL-EOg">P3Y</us-gaap:LesseeOperatingLeaseTermOfContract>
    <us-gaap:OperatingLeaseLiabilityCurrentStatementOfFinancialPositionExtensibleList
      contextRef="As_Of_9_30_2024_um13j0l3zk2ITGaiED1DFA"
      id="Hidden_CXTdk2oMZES1sCPvqd8w5w">http://fasb.org/us-gaap/2024#OtherLiabilitiesCurrent</us-gaap:OperatingLeaseLiabilityCurrentStatementOfFinancialPositionExtensibleList>
    <dei:DocumentType
      contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ"
      id="Narr_hbDeE2seY02npXhfP-C3iw">10-Q</dei:DocumentType>
    <dei:DocumentQuarterlyReport
      contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ"
      id="Tc_bW3nZixqMEiZrEK5rImMLQ_2_0">true</dei:DocumentQuarterlyReport>
    <dei:DocumentPeriodEndDate
      contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ"
      id="Narr_sy_VR4u0Xk-kCt_8Ug9n8Q">2024-09-30</dei:DocumentPeriodEndDate>
    <dei:DocumentTransitionReport
      contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ"
      id="Tc_ghC5n0w9KUObbgamgA--Qg_1_0">false</dei:DocumentTransitionReport>
    <dei:EntityFileNumber
      contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ"
      id="Narr_b3_6kNnnokaqhUw8SQn4_A">1-13011</dei:EntityFileNumber>
    <dei:EntityRegistrantName
      contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ"
      id="Narr_3saosc9bNEqOtzq32Nng8w">COMFORT SYSTEMS USA,&#160;INC.</dei:EntityRegistrantName>
    <dei:EntityIncorporationStateCountryCode
      contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ"
      id="Narr_FnpdTJIxqkKy7VQBTQ0mkg">DE</dei:EntityIncorporationStateCountryCode>
    <dei:EntityTaxIdentificationNumber
      contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ"
      id="Narr_t7UKFZ6VSEek8lOCU0TeSw">76-0526487</dei:EntityTaxIdentificationNumber>
    <dei:EntityAddressAddressLine1
      contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ"
      id="Narr_UPyA7bszbU6sdM25gUDHLw">675 Bering Drive</dei:EntityAddressAddressLine1>
    <dei:EntityAddressAddressLine2
      contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ"
      id="Narr_aesAkmGTL0ih6tw2nsoeGw">Suite&#160;400</dei:EntityAddressAddressLine2>
    <dei:EntityAddressCityOrTown
      contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ"
      id="Narr_NN4N0ALM1kWRr1SneD4-xA">Houston</dei:EntityAddressCityOrTown>
    <dei:EntityAddressStateOrProvince
      contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ"
      id="Narr_kZ-gIAM5vEKgqAGM3U5CxA">TX</dei:EntityAddressStateOrProvince>
    <dei:EntityAddressPostalZipCode
      contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ"
      id="Narr_3fmMZ5DxvEOld76z1H0ZHA">77057</dei:EntityAddressPostalZipCode>
    <dei:CityAreaCode
      contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ"
      id="Narr_h1Xj6wOR1E2M2sUNJGoonw">713</dei:CityAreaCode>
    <dei:LocalPhoneNumber
      contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ"
      id="Narr_HLh1xsBX8UumvVn-XyiH3A">830-9600</dei:LocalPhoneNumber>
    <dei:Security12bTitle
      contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ"
      id="Tc_SDd532gi-kSJLyNnAQRwSA_2_0">Common Stock, $0.01 par value</dei:Security12bTitle>
    <dei:TradingSymbol
      contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ"
      id="Tc_oGEBvoMbp0WioJkk0tKqeA_2_1">FIX</dei:TradingSymbol>
    <dei:SecurityExchangeName
      contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ"
      id="Tc_i9ttUrDnSEq5PFK_SofAHA_2_2">NYSE</dei:SecurityExchangeName>
    <dei:EntityCurrentReportingStatus
      contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ"
      id="Narr_eZmk-nGY702HETuP-UehEw">Yes</dei:EntityCurrentReportingStatus>
    <dei:EntityInteractiveDataCurrent
      contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ"
      id="Narr_0oQlBw-tBUOJEzEDTeqjZw">Yes</dei:EntityInteractiveDataCurrent>
    <dei:EntityFilerCategory
      contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ"
      id="Narr_02Szcr2JeEa2K5lw2u_5XA">Large Accelerated Filer</dei:EntityFilerCategory>
    <dei:EntitySmallBusiness
      contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ"
      id="Narr_gE0F0m0c5EKE0gvCa1GXbQ">false</dei:EntitySmallBusiness>
    <dei:EntityEmergingGrowthCompany
      contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ"
      id="Narr_FMRj-RPxYUWwFqqqU3EZvQ">false</dei:EntityEmergingGrowthCompany>
    <dei:EntityShellCompany
      contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ"
      id="Narr_538edh0BOUK2AORenED-YA">false</dei:EntityShellCompany>
    <dei:EntityCommonStockSharesOutstanding
      contextRef="As_Of_10_18_2024_efSZE3afwUWQ72isHwphYg"
      decimals="INF"
      id="Narr_Ls4OdFV9UkafpDWjhWr41g"
      unitRef="Unit_Standard_shares_YK1c03HsOkOiDLLsAeYHoA">35592558</dei:EntityCommonStockSharesOutstanding>
    <us-gaap:CashAndCashEquivalentsAtCarryingValue
      contextRef="As_Of_9_30_2024_um13j0l3zk2ITGaiED1DFA"
      decimals="-3"
      id="Tc_qRQFVfXqSEeA571mewIZkA_6_3"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">415583000</us-gaap:CashAndCashEquivalentsAtCarryingValue>
    <us-gaap:CashAndCashEquivalentsAtCarryingValue
      contextRef="As_Of_12_31_2023_X7eqeHRTF0mRLJW7InVDdA"
      decimals="-3"
      id="Tc_jKdRiCata0un_vL4IiHSsQ_6_6"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">205150000</us-gaap:CashAndCashEquivalentsAtCarryingValue>
    <us-gaap:AllowanceForDoubtfulAccountsReceivableCurrent
      contextRef="As_Of_9_30_2024_um13j0l3zk2ITGaiED1DFA"
      decimals="-3"
      id="Narr_AyKsat11V0KiTvH93YdXbg"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">15280000</us-gaap:AllowanceForDoubtfulAccountsReceivableCurrent>
    <us-gaap:AllowanceForDoubtfulAccountsReceivableCurrent
      contextRef="As_Of_12_31_2023_X7eqeHRTF0mRLJW7InVDdA"
      decimals="-3"
      id="Narr_4rf--LH2O0yfidT5Ej0kqQ"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">11926000</us-gaap:AllowanceForDoubtfulAccountsReceivableCurrent>
    <us-gaap:BilledContractReceivables
      contextRef="As_Of_9_30_2024_um13j0l3zk2ITGaiED1DFA"
      decimals="-3"
      id="Tc_VqlfYR-mM0GYJiX5qqz86Q_7_3"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">1730960000</us-gaap:BilledContractReceivables>
    <us-gaap:BilledContractReceivables
      contextRef="As_Of_12_31_2023_X7eqeHRTF0mRLJW7InVDdA"
      decimals="-3"
      id="Tc_x5dNKp3mE06bKEMzPh0wbw_7_6"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">1318926000</us-gaap:BilledContractReceivables>
    <fix:UnbilledAccountsReceivableAllowanceForCreditLoss
      contextRef="As_Of_9_30_2024_um13j0l3zk2ITGaiED1DFA"
      decimals="-3"
      id="Narr_AayZu5EZjkilrep8zkIJYg"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">953000</fix:UnbilledAccountsReceivableAllowanceForCreditLoss>
    <fix:UnbilledAccountsReceivableAllowanceForCreditLoss
      contextRef="As_Of_12_31_2023_X7eqeHRTF0mRLJW7InVDdA"
      decimals="-3"
      id="Narr_b2_t6sKtRkiGReqQIUDsKg"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">850000</fix:UnbilledAccountsReceivableAllowanceForCreditLoss>
    <us-gaap:UnbilledContractsReceivable
      contextRef="As_Of_9_30_2024_um13j0l3zk2ITGaiED1DFA"
      decimals="-3"
      id="Tc_LE0Zf-ZD8UiskkO-L6F9LA_8_3"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">89332000</us-gaap:UnbilledContractsReceivable>
    <us-gaap:UnbilledContractsReceivable
      contextRef="As_Of_12_31_2023_X7eqeHRTF0mRLJW7InVDdA"
      decimals="-3"
      id="Tc_7bPdyd_Jv0u_YSMX6ijGhw_8_6"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">72774000</us-gaap:UnbilledContractsReceivable>
    <us-gaap:AllowanceForDoubtfulOtherReceivablesCurrent
      contextRef="As_Of_9_30_2024_um13j0l3zk2ITGaiED1DFA"
      decimals="-3"
      id="Narr_ZWB623gd_kuw-3Ot6j3qJQ"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">515000</us-gaap:AllowanceForDoubtfulOtherReceivablesCurrent>
    <us-gaap:AllowanceForDoubtfulOtherReceivablesCurrent
      contextRef="As_Of_12_31_2023_X7eqeHRTF0mRLJW7InVDdA"
      decimals="-3"
      id="Narr_L_9ODhwHTEyFH2VGyzusUQ"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">522000</us-gaap:AllowanceForDoubtfulOtherReceivablesCurrent>
    <us-gaap:NontradeReceivablesCurrent
      contextRef="As_Of_9_30_2024_um13j0l3zk2ITGaiED1DFA"
      decimals="-3"
      id="Tc_OBEnjlV0_EKHhS-_aElmfQ_9_3"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">135323000</us-gaap:NontradeReceivablesCurrent>
    <us-gaap:NontradeReceivablesCurrent
      contextRef="As_Of_12_31_2023_X7eqeHRTF0mRLJW7InVDdA"
      decimals="-3"
      id="Tc_yOHO8-cs_0SgOEcnrenDAA_9_6"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">166319000</us-gaap:NontradeReceivablesCurrent>
    <us-gaap:InventoryNet
      contextRef="As_Of_9_30_2024_um13j0l3zk2ITGaiED1DFA"
      decimals="-3"
      id="Tc_JdFUII14Z0OEZPbxhc8HPg_10_3"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">55680000</us-gaap:InventoryNet>
    <us-gaap:InventoryNet
      contextRef="As_Of_12_31_2023_X7eqeHRTF0mRLJW7InVDdA"
      decimals="-3"
      id="Tc_Ddz3oFdPi0iS7G-N95vJaQ_10_6"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">65538000</us-gaap:InventoryNet>
    <us-gaap:PrepaidExpenseAndOtherAssetsCurrent
      contextRef="As_Of_9_30_2024_um13j0l3zk2ITGaiED1DFA"
      decimals="-3"
      id="Tc_XktR5Ih19kKhSSKwgRqUuQ_11_3"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">36087000</us-gaap:PrepaidExpenseAndOtherAssetsCurrent>
    <us-gaap:PrepaidExpenseAndOtherAssetsCurrent
      contextRef="As_Of_12_31_2023_X7eqeHRTF0mRLJW7InVDdA"
      decimals="-3"
      id="Tc_N4APSQRfpESPcI0fyJBx5A_11_6"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">54309000</us-gaap:PrepaidExpenseAndOtherAssetsCurrent>
    <us-gaap:ContractWithCustomerAssetAccumulatedAllowanceForCreditLossCurrent
      contextRef="As_Of_9_30_2024_um13j0l3zk2ITGaiED1DFA"
      decimals="-3"
      id="Narr_Mk5Af-zHMEORr-D-JTzGHQ"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">200000</us-gaap:ContractWithCustomerAssetAccumulatedAllowanceForCreditLossCurrent>
    <us-gaap:ContractWithCustomerAssetAccumulatedAllowanceForCreditLossCurrent
      contextRef="As_Of_12_31_2023_X7eqeHRTF0mRLJW7InVDdA"
      decimals="-3"
      id="Narr_Rg1YmbA-K0mW0U2I9WZlYA"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">79000</us-gaap:ContractWithCustomerAssetAccumulatedAllowanceForCreditLossCurrent>
    <us-gaap:ContractWithCustomerAssetNetCurrent
      contextRef="As_Of_9_30_2024_um13j0l3zk2ITGaiED1DFA"
      decimals="-3"
      id="Tc_Or05twPqhk-Q5WdS2TyFhw_12_3"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">73934000</us-gaap:ContractWithCustomerAssetNetCurrent>
    <us-gaap:ContractWithCustomerAssetNetCurrent
      contextRef="As_Of_12_31_2023_X7eqeHRTF0mRLJW7InVDdA"
      decimals="-3"
      id="Tc_HJ9WXaXm7EietZTEuHHsPg_12_6"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">28084000</us-gaap:ContractWithCustomerAssetNetCurrent>
    <us-gaap:AssetsCurrent
      contextRef="As_Of_9_30_2024_um13j0l3zk2ITGaiED1DFA"
      decimals="-3"
      id="Tc_HVWcKATbTUeYVUzvyQZXDg_13_3"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">2536899000</us-gaap:AssetsCurrent>
    <us-gaap:AssetsCurrent
      contextRef="As_Of_12_31_2023_X7eqeHRTF0mRLJW7InVDdA"
      decimals="-3"
      id="Tc_jxHJ3Hev9km0DkJeSaOvgA_13_6"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">1911100000</us-gaap:AssetsCurrent>
    <us-gaap:PropertyPlantAndEquipmentNet
      contextRef="As_Of_9_30_2024_um13j0l3zk2ITGaiED1DFA"
      decimals="-3"
      id="Tc_Zkj6kNbVxUuyn_Zq2CzqKg_14_3"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">250150000</us-gaap:PropertyPlantAndEquipmentNet>
    <us-gaap:PropertyPlantAndEquipmentNet
      contextRef="As_Of_12_31_2023_X7eqeHRTF0mRLJW7InVDdA"
      decimals="-3"
      id="Tc_oBtNKYl6NEWMaiGARvzACA_14_6"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">208568000</us-gaap:PropertyPlantAndEquipmentNet>
    <us-gaap:OperatingLeaseRightOfUseAsset
      contextRef="As_Of_9_30_2024_um13j0l3zk2ITGaiED1DFA"
      decimals="-3"
      id="Tc_qT-ThHBcEUSVOLBgA9s8pQ_15_3"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">225301000</us-gaap:OperatingLeaseRightOfUseAsset>
    <us-gaap:OperatingLeaseRightOfUseAsset
      contextRef="As_Of_12_31_2023_X7eqeHRTF0mRLJW7InVDdA"
      decimals="-3"
      id="Tc_6GadePNGr0Crb0RwhLn1TA_15_6"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">205712000</us-gaap:OperatingLeaseRightOfUseAsset>
    <us-gaap:Goodwill
      contextRef="As_Of_9_30_2024_um13j0l3zk2ITGaiED1DFA"
      decimals="-3"
      id="Tc_Qz9dUHJUOE6ad-tjQiDF1A_16_3"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">875193000</us-gaap:Goodwill>
    <us-gaap:Goodwill
      contextRef="As_Of_12_31_2023_X7eqeHRTF0mRLJW7InVDdA"
      decimals="-3"
      id="Tc_dEd6W9K4mEK_6VT44u1Gbg_16_6"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">666834000</us-gaap:Goodwill>
    <us-gaap:IntangibleAssetsNetExcludingGoodwill
      contextRef="As_Of_9_30_2024_um13j0l3zk2ITGaiED1DFA"
      decimals="-3"
      id="Tc_fSvpawpEfkG3h7xTjqOIaw_17_3"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">456459000</us-gaap:IntangibleAssetsNetExcludingGoodwill>
    <us-gaap:IntangibleAssetsNetExcludingGoodwill
      contextRef="As_Of_12_31_2023_X7eqeHRTF0mRLJW7InVDdA"
      decimals="-3"
      id="Tc_o8YmZ4VD1UKB2KxSUp1e5Q_17_6"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">280397000</us-gaap:IntangibleAssetsNetExcludingGoodwill>
    <us-gaap:DeferredIncomeTaxAssetsNet
      contextRef="As_Of_9_30_2024_um13j0l3zk2ITGaiED1DFA"
      decimals="-3"
      id="Tc_OD2E2KRPjUOUb-gSY63-WQ_18_3"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">50234000</us-gaap:DeferredIncomeTaxAssetsNet>
    <us-gaap:DeferredIncomeTaxAssetsNet
      contextRef="As_Of_12_31_2023_X7eqeHRTF0mRLJW7InVDdA"
      decimals="-3"
      id="Tc_Rv3xkr1lMUacYIzGp0E8iQ_18_6"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">17723000</us-gaap:DeferredIncomeTaxAssetsNet>
    <us-gaap:OtherAssetsNoncurrent
      contextRef="As_Of_9_30_2024_um13j0l3zk2ITGaiED1DFA"
      decimals="-3"
      id="Tc_pQpTxjVZhUeOpWp-04fn5w_19_3"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">18529000</us-gaap:OtherAssetsNoncurrent>
    <us-gaap:OtherAssetsNoncurrent
      contextRef="As_Of_12_31_2023_X7eqeHRTF0mRLJW7InVDdA"
      decimals="-3"
      id="Tc_kbimVpyw9UGDhQnnwNnUZg_19_6"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">15245000</us-gaap:OtherAssetsNoncurrent>
    <us-gaap:Assets
      contextRef="As_Of_9_30_2024_um13j0l3zk2ITGaiED1DFA"
      decimals="-3"
      id="Tc_Nb35sOwNQkmF3s1uSnkwPw_20_3"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">4412765000</us-gaap:Assets>
    <us-gaap:Assets
      contextRef="As_Of_12_31_2023_X7eqeHRTF0mRLJW7InVDdA"
      decimals="-3"
      id="Tc_8xxWxH7iakStZQFtM0wu7g_20_6"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">3305579000</us-gaap:Assets>
    <us-gaap:LongTermDebtCurrent
      contextRef="As_Of_9_30_2024_um13j0l3zk2ITGaiED1DFA"
      decimals="-3"
      id="Tc_hmPDUtw2J0utL8RAqlzK_A_23_3"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">6046000</us-gaap:LongTermDebtCurrent>
    <us-gaap:LongTermDebtCurrent
      contextRef="As_Of_12_31_2023_X7eqeHRTF0mRLJW7InVDdA"
      decimals="-3"
      id="Tc_h1DuT72ujUGuIaYFmtfhCQ_23_6"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">4867000</us-gaap:LongTermDebtCurrent>
    <us-gaap:AccountsPayableCurrent
      contextRef="As_Of_9_30_2024_um13j0l3zk2ITGaiED1DFA"
      decimals="-3"
      id="Tc_2RG-AJHIGkOjLAmYD7R_cA_24_3"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">603546000</us-gaap:AccountsPayableCurrent>
    <us-gaap:AccountsPayableCurrent
      contextRef="As_Of_12_31_2023_X7eqeHRTF0mRLJW7InVDdA"
      decimals="-3"
      id="Tc_am4p2lbLikqWFyUUCzO1eQ_24_6"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">419962000</us-gaap:AccountsPayableCurrent>
    <us-gaap:EmployeeRelatedLiabilitiesCurrent
      contextRef="As_Of_9_30_2024_um13j0l3zk2ITGaiED1DFA"
      decimals="-3"
      id="Tc_WtogoJ1jvECS_lmZcHHAwg_25_3"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">258174000</us-gaap:EmployeeRelatedLiabilitiesCurrent>
    <us-gaap:EmployeeRelatedLiabilitiesCurrent
      contextRef="As_Of_12_31_2023_X7eqeHRTF0mRLJW7InVDdA"
      decimals="-3"
      id="Tc_1naCcq_Iq0SZzTryewdRKQ_25_6"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">169136000</us-gaap:EmployeeRelatedLiabilitiesCurrent>
    <us-gaap:ContractWithCustomerLiabilityCurrent
      contextRef="As_Of_9_30_2024_um13j0l3zk2ITGaiED1DFA"
      decimals="-3"
      id="Tc_HgKTXWyETUyfM-qtMS6VIA_26_3"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">1197532000</us-gaap:ContractWithCustomerLiabilityCurrent>
    <us-gaap:ContractWithCustomerLiabilityCurrent
      contextRef="As_Of_12_31_2023_X7eqeHRTF0mRLJW7InVDdA"
      decimals="-3"
      id="Tc_tUWdSIsTr0SIu2mt_ewCUA_26_6"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">909538000</us-gaap:ContractWithCustomerLiabilityCurrent>
    <us-gaap:SelfInsuranceReserveCurrent
      contextRef="As_Of_9_30_2024_um13j0l3zk2ITGaiED1DFA"
      decimals="-3"
      id="Tc_O7ptFaO-GEaxqwitaUOikg_27_3"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">36924000</us-gaap:SelfInsuranceReserveCurrent>
    <us-gaap:SelfInsuranceReserveCurrent
      contextRef="As_Of_12_31_2023_X7eqeHRTF0mRLJW7InVDdA"
      decimals="-3"
      id="Tc_WHu1FE8Rfk6Lc58KzRvw5Q_27_6"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">27774000</us-gaap:SelfInsuranceReserveCurrent>
    <us-gaap:OtherLiabilitiesCurrent
      contextRef="As_Of_9_30_2024_um13j0l3zk2ITGaiED1DFA"
      decimals="-3"
      id="Tc_hWjX-Dqmmk6FxQx_V8XKog_28_3"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">326921000</us-gaap:OtherLiabilitiesCurrent>
    <us-gaap:OtherLiabilitiesCurrent
      contextRef="As_Of_12_31_2023_X7eqeHRTF0mRLJW7InVDdA"
      decimals="-3"
      id="Tc_YO6UkLRb2kaLJAxteQ2ZXQ_28_6"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">189928000</us-gaap:OtherLiabilitiesCurrent>
    <us-gaap:LiabilitiesCurrent
      contextRef="As_Of_9_30_2024_um13j0l3zk2ITGaiED1DFA"
      decimals="-3"
      id="Tc_OmjOhdhus0uIorPCeNs3aw_29_3"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">2429143000</us-gaap:LiabilitiesCurrent>
    <us-gaap:LiabilitiesCurrent
      contextRef="As_Of_12_31_2023_X7eqeHRTF0mRLJW7InVDdA"
      decimals="-3"
      id="Tc_Vj071CWRo0i-ITEUq9ArVg_29_6"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">1721205000</us-gaap:LiabilitiesCurrent>
    <us-gaap:LongTermDebtNoncurrent
      contextRef="As_Of_9_30_2024_um13j0l3zk2ITGaiED1DFA"
      decimals="-3"
      id="Tc_Qo6Qlxbax0qZvEruUBHNMA_30_3"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">62315000</us-gaap:LongTermDebtNoncurrent>
    <us-gaap:LongTermDebtNoncurrent
      contextRef="As_Of_12_31_2023_X7eqeHRTF0mRLJW7InVDdA"
      decimals="-3"
      id="Tc_jmrO_-dYxkOE9feyNnMaIA_30_6"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">39345000</us-gaap:LongTermDebtNoncurrent>
    <us-gaap:OperatingLeaseLiabilityNoncurrent
      contextRef="As_Of_9_30_2024_um13j0l3zk2ITGaiED1DFA"
      decimals="-3"
      id="Tc_XPCxNtVGuU-64Bw-2wZZ7g_31_3"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">208268000</us-gaap:OperatingLeaseLiabilityNoncurrent>
    <us-gaap:OperatingLeaseLiabilityNoncurrent
      contextRef="As_Of_12_31_2023_X7eqeHRTF0mRLJW7InVDdA"
      decimals="-3"
      id="Tc_ofTPe0-VGE6Bkji3feQSzg_31_6"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">188136000</us-gaap:OperatingLeaseLiabilityNoncurrent>
    <us-gaap:DeferredIncomeTaxLiabilitiesNet
      contextRef="As_Of_9_30_2024_um13j0l3zk2ITGaiED1DFA"
      decimals="-3"
      id="Tc_8ll4olHGLUyvW7ThNGimqw_32_3"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">1120000</us-gaap:DeferredIncomeTaxLiabilitiesNet>
    <us-gaap:DeferredIncomeTaxLiabilitiesNet
      contextRef="As_Of_12_31_2023_X7eqeHRTF0mRLJW7InVDdA"
      decimals="-3"
      id="Tc_GwqWSTKZUE24e92cz5xOMg_32_6"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">1120000</us-gaap:DeferredIncomeTaxLiabilitiesNet>
    <us-gaap:OtherLiabilitiesNoncurrent
      contextRef="As_Of_9_30_2024_um13j0l3zk2ITGaiED1DFA"
      decimals="-3"
      id="Tc_LTJjXVmP8U-4Hz54iLC7xg_33_3"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">124197000</us-gaap:OtherLiabilitiesNoncurrent>
    <us-gaap:OtherLiabilitiesNoncurrent
      contextRef="As_Of_12_31_2023_X7eqeHRTF0mRLJW7InVDdA"
      decimals="-3"
      id="Tc_wXouJtBFOUyLShq1BU_8ZA_33_6"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">77944000</us-gaap:OtherLiabilitiesNoncurrent>
    <us-gaap:Liabilities
      contextRef="As_Of_9_30_2024_um13j0l3zk2ITGaiED1DFA"
      decimals="-3"
      id="Tc_HWrsSQ8kBEeMTxi8NYgUEw_34_3"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">2825043000</us-gaap:Liabilities>
    <us-gaap:Liabilities
      contextRef="As_Of_12_31_2023_X7eqeHRTF0mRLJW7InVDdA"
      decimals="-3"
      id="Tc_9evTBq4jqku3PnR-6hFOEQ_34_6"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">2027750000</us-gaap:Liabilities>
    <us-gaap:PreferredStockParOrStatedValuePerShare
      contextRef="As_Of_9_30_2024_um13j0l3zk2ITGaiED1DFA"
      decimals="2"
      id="Narr_acNGdClI90SLmrUmZm8pGQ"
      unitRef="Unit_Divide_USD_shares_0ZfRDiWNfk6kp61F6IdjQA">0.01</us-gaap:PreferredStockParOrStatedValuePerShare>
    <us-gaap:PreferredStockParOrStatedValuePerShare
      contextRef="As_Of_12_31_2023_X7eqeHRTF0mRLJW7InVDdA"
      decimals="2"
      id="Narr_KFZeZ7ITXU2YIF6KscePGQ"
      unitRef="Unit_Divide_USD_shares_0ZfRDiWNfk6kp61F6IdjQA">0.01</us-gaap:PreferredStockParOrStatedValuePerShare>
    <us-gaap:PreferredStockSharesAuthorized
      contextRef="As_Of_9_30_2024_um13j0l3zk2ITGaiED1DFA"
      decimals="INF"
      id="Narr_vDVxXgDXqkqLlqvxiGzalw"
      unitRef="Unit_Standard_shares_YK1c03HsOkOiDLLsAeYHoA">5000000</us-gaap:PreferredStockSharesAuthorized>
    <us-gaap:PreferredStockSharesAuthorized
      contextRef="As_Of_12_31_2023_X7eqeHRTF0mRLJW7InVDdA"
      decimals="INF"
      id="Narr_uDVSs4pBg0e6a9mkHmVd_w"
      unitRef="Unit_Standard_shares_YK1c03HsOkOiDLLsAeYHoA">5000000</us-gaap:PreferredStockSharesAuthorized>
    <us-gaap:PreferredStockSharesIssued
      contextRef="As_Of_9_30_2024_um13j0l3zk2ITGaiED1DFA"
      decimals="INF"
      id="Narr_vXl45j0kUUK9jauBTsefug"
      unitRef="Unit_Standard_shares_YK1c03HsOkOiDLLsAeYHoA">0</us-gaap:PreferredStockSharesIssued>
    <us-gaap:PreferredStockSharesIssued
      contextRef="As_Of_12_31_2023_X7eqeHRTF0mRLJW7InVDdA"
      decimals="INF"
      id="Narr_aZLwPT-05kSfxUb2HP_PLw"
      unitRef="Unit_Standard_shares_YK1c03HsOkOiDLLsAeYHoA">0</us-gaap:PreferredStockSharesIssued>
    <us-gaap:CommonStockParOrStatedValuePerShare
      contextRef="As_Of_9_30_2024_um13j0l3zk2ITGaiED1DFA"
      decimals="2"
      id="Narr_Yrnqe-VVyEenWesS-ta0Hg"
      unitRef="Unit_Divide_USD_shares_0ZfRDiWNfk6kp61F6IdjQA">0.01</us-gaap:CommonStockParOrStatedValuePerShare>
    <us-gaap:CommonStockParOrStatedValuePerShare
      contextRef="As_Of_12_31_2023_X7eqeHRTF0mRLJW7InVDdA"
      decimals="2"
      id="Narr_KRkm4AQivkGh-Ym7xKE1eA"
      unitRef="Unit_Divide_USD_shares_0ZfRDiWNfk6kp61F6IdjQA">0.01</us-gaap:CommonStockParOrStatedValuePerShare>
    <us-gaap:CommonStockSharesAuthorized
      contextRef="As_Of_9_30_2024_um13j0l3zk2ITGaiED1DFA"
      decimals="INF"
      id="Narr_1WpXL97hGk6PmXSQf5HxNA"
      unitRef="Unit_Standard_shares_YK1c03HsOkOiDLLsAeYHoA">102969912</us-gaap:CommonStockSharesAuthorized>
    <us-gaap:CommonStockSharesAuthorized
      contextRef="As_Of_12_31_2023_X7eqeHRTF0mRLJW7InVDdA"
      decimals="INF"
      id="Narr_vjPu1pcswEaWMaWvDeFa8Q"
      unitRef="Unit_Standard_shares_YK1c03HsOkOiDLLsAeYHoA">102969912</us-gaap:CommonStockSharesAuthorized>
    <us-gaap:CommonStockSharesIssued
      contextRef="As_Of_9_30_2024_um13j0l3zk2ITGaiED1DFA"
      decimals="INF"
      id="Narr_kYtYU3yuikaO6Sz6jJo2_w"
      unitRef="Unit_Standard_shares_YK1c03HsOkOiDLLsAeYHoA">41123365</us-gaap:CommonStockSharesIssued>
    <us-gaap:CommonStockSharesIssued
      contextRef="As_Of_12_31_2023_X7eqeHRTF0mRLJW7InVDdA"
      decimals="INF"
      id="Narr_a0n2t8b3KEqGF5qbQrjJQw"
      unitRef="Unit_Standard_shares_YK1c03HsOkOiDLLsAeYHoA">41123365</us-gaap:CommonStockSharesIssued>
    <us-gaap:CommonStockValue
      contextRef="As_Of_9_30_2024_um13j0l3zk2ITGaiED1DFA"
      decimals="-3"
      id="Tc_1njD9sxl0k2eOsRfTBFPXA_38_3"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">411000</us-gaap:CommonStockValue>
    <us-gaap:CommonStockValue
      contextRef="As_Of_12_31_2023_X7eqeHRTF0mRLJW7InVDdA"
      decimals="-3"
      id="Tc_wjWfftf_QkG78QxBF-xmpw_38_6"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">411000</us-gaap:CommonStockValue>
    <us-gaap:TreasuryStockCommonShares
      contextRef="As_Of_9_30_2024_um13j0l3zk2ITGaiED1DFA"
      decimals="INF"
      id="Narr_Z0Ya4RQZiEKTR-V3ocs5HQ"
      unitRef="Unit_Standard_shares_YK1c03HsOkOiDLLsAeYHoA">5530807</us-gaap:TreasuryStockCommonShares>
    <us-gaap:TreasuryStockCommonShares
      contextRef="As_Of_12_31_2023_X7eqeHRTF0mRLJW7InVDdA"
      decimals="INF"
      id="Narr_asHC-AGRNESYgHH5xBla7Q"
      unitRef="Unit_Standard_shares_YK1c03HsOkOiDLLsAeYHoA">5438625</us-gaap:TreasuryStockCommonShares>
    <us-gaap:TreasuryStockValue
      contextRef="As_Of_9_30_2024_um13j0l3zk2ITGaiED1DFA"
      decimals="-3"
      id="Tc_tO0FFXA8jkGoWQKtPs74Ng_39_3"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">256775000</us-gaap:TreasuryStockValue>
    <us-gaap:TreasuryStockValue
      contextRef="As_Of_12_31_2023_X7eqeHRTF0mRLJW7InVDdA"
      decimals="-3"
      id="Tc_nH6sAiweTEe_7c7wUNIsfg_39_6"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">209807000</us-gaap:TreasuryStockValue>
    <us-gaap:AdditionalPaidInCapitalCommonStock
      contextRef="As_Of_9_30_2024_um13j0l3zk2ITGaiED1DFA"
      decimals="-3"
      id="Tc_MJ2yPf8OOUOVfjpb2Qfjng_40_3"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">350182000</us-gaap:AdditionalPaidInCapitalCommonStock>
    <us-gaap:AdditionalPaidInCapitalCommonStock
      contextRef="As_Of_12_31_2023_X7eqeHRTF0mRLJW7InVDdA"
      decimals="-3"
      id="Tc_1IgcVF-um0iaRhE2xL76Cw_40_6"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">339562000</us-gaap:AdditionalPaidInCapitalCommonStock>
    <us-gaap:RetainedEarningsAccumulatedDeficit
      contextRef="As_Of_9_30_2024_um13j0l3zk2ITGaiED1DFA"
      decimals="-3"
      id="Tc_uWnpZy8TWEmcro4PV1Z55A_41_3"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">1493904000</us-gaap:RetainedEarningsAccumulatedDeficit>
    <us-gaap:RetainedEarningsAccumulatedDeficit
      contextRef="As_Of_12_31_2023_X7eqeHRTF0mRLJW7InVDdA"
      decimals="-3"
      id="Tc_3EOgUOvgbEGVhTDmNo8yZg_41_6"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">1147663000</us-gaap:RetainedEarningsAccumulatedDeficit>
    <us-gaap:StockholdersEquity
      contextRef="As_Of_9_30_2024_um13j0l3zk2ITGaiED1DFA"
      decimals="-3"
      id="Tc_9vvOeq6_skOEHAeYjsv5fA_42_3"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">1587722000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="As_Of_12_31_2023_X7eqeHRTF0mRLJW7InVDdA"
      decimals="-3"
      id="Tc_eG3QFYwnuUuThCRu42p63A_42_6"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">1277829000</us-gaap:StockholdersEquity>
    <us-gaap:LiabilitiesAndStockholdersEquity
      contextRef="As_Of_9_30_2024_um13j0l3zk2ITGaiED1DFA"
      decimals="-3"
      id="Tc_4Yyc_zUTmkCUgeajyk4QhQ_43_3"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">4412765000</us-gaap:LiabilitiesAndStockholdersEquity>
    <us-gaap:LiabilitiesAndStockholdersEquity
      contextRef="As_Of_12_31_2023_X7eqeHRTF0mRLJW7InVDdA"
      decimals="-3"
      id="Tc_y-zwHYa_OkiIu-_QtZlwfg_43_6"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">3305579000</us-gaap:LiabilitiesAndStockholdersEquity>
    <us-gaap:Revenues
      contextRef="Duration_7_1_2024_To_9_30_2024_XquWrHsdeEmkK9F8qXf6qA"
      decimals="-3"
      id="Tc_NV0M0Z4DkUyo1_C6JJ1_1A_4_3"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">1812366000</us-gaap:Revenues>
    <us-gaap:Revenues
      contextRef="Duration_7_1_2023_To_9_30_2023_S4fUa5HYuk6ZPxhUrn5m5w"
      decimals="-3"
      id="Tc_rieRTCG1lEOecoxTc06IfA_4_6"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">1378124000</us-gaap:Revenues>
    <us-gaap:Revenues
      contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ"
      decimals="-3"
      id="Tc_C2HDdIJydEaGyiM29PrgZQ_4_9"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">5159672000</us-gaap:Revenues>
    <us-gaap:Revenues
      contextRef="Duration_1_1_2023_To_9_30_2023_0vpBpKZIxEC_KY5z5G8rKA"
      decimals="-3"
      id="Tc_rn1lZYsjcUCDs-gFwMwaMQ_4_12"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">3849194000</us-gaap:Revenues>
    <us-gaap:CostOfRevenue
      contextRef="Duration_7_1_2024_To_9_30_2024_XquWrHsdeEmkK9F8qXf6qA"
      decimals="-3"
      id="Tc_GDrknSuiV0yAUQGoHKkn-w_5_3"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">1430652000</us-gaap:CostOfRevenue>
    <us-gaap:CostOfRevenue
      contextRef="Duration_7_1_2023_To_9_30_2023_S4fUa5HYuk6ZPxhUrn5m5w"
      decimals="-3"
      id="Tc_1McyMGudZUW0XgIFb-4Vow_5_6"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">1100625000</us-gaap:CostOfRevenue>
    <us-gaap:CostOfRevenue
      contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ"
      decimals="-3"
      id="Tc_YqLw5JROHEGuvkBW-7zBGw_5_9"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">4116999000</us-gaap:CostOfRevenue>
    <us-gaap:CostOfRevenue
      contextRef="Duration_1_1_2023_To_9_30_2023_0vpBpKZIxEC_KY5z5G8rKA"
      decimals="-3"
      id="Tc_iMAAJWpxeUiydoCh6ijyHQ_5_12"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">3138370000</us-gaap:CostOfRevenue>
    <us-gaap:GrossProfit
      contextRef="Duration_7_1_2024_To_9_30_2024_XquWrHsdeEmkK9F8qXf6qA"
      decimals="-3"
      id="Tc_XL6odu_4OUWrBebS5k_dwQ_6_3"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">381714000</us-gaap:GrossProfit>
    <us-gaap:GrossProfit
      contextRef="Duration_7_1_2023_To_9_30_2023_S4fUa5HYuk6ZPxhUrn5m5w"
      decimals="-3"
      id="Tc_Jymo5g0DMEeo3bNyg2zJdA_6_6"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">277499000</us-gaap:GrossProfit>
    <us-gaap:GrossProfit
      contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ"
      decimals="-3"
      id="Tc_xkeuazQQYkOCEYlrpVMBug_6_9"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">1042673000</us-gaap:GrossProfit>
    <us-gaap:GrossProfit
      contextRef="Duration_1_1_2023_To_9_30_2023_0vpBpKZIxEC_KY5z5G8rKA"
      decimals="-3"
      id="Tc_-qRWLdPjZU61Z7oByFRJBQ_6_12"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">710824000</us-gaap:GrossProfit>
    <us-gaap:SellingGeneralAndAdministrativeExpense
      contextRef="Duration_7_1_2024_To_9_30_2024_XquWrHsdeEmkK9F8qXf6qA"
      decimals="-3"
      id="Tc_x_D991sdoUW3stgJJgQr9A_7_3"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">180177000</us-gaap:SellingGeneralAndAdministrativeExpense>
    <us-gaap:SellingGeneralAndAdministrativeExpense
      contextRef="Duration_7_1_2023_To_9_30_2023_S4fUa5HYuk6ZPxhUrn5m5w"
      decimals="-3"
      id="Tc_b9RWeRQZlE-xTrV4Q-qaVw_7_6"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">142935000</us-gaap:SellingGeneralAndAdministrativeExpense>
    <us-gaap:SellingGeneralAndAdministrativeExpense
      contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ"
      decimals="-3"
      id="Tc_O7lGQ7kFA0izpHfnhCfmGw_7_9"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">522437000</us-gaap:SellingGeneralAndAdministrativeExpense>
    <us-gaap:SellingGeneralAndAdministrativeExpense
      contextRef="Duration_1_1_2023_To_9_30_2023_0vpBpKZIxEC_KY5z5G8rKA"
      decimals="-3"
      id="Tc_TIqwk3VQ20aIeKbeueTFWw_7_12"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">414397000</us-gaap:SellingGeneralAndAdministrativeExpense>
    <us-gaap:GainLossOnDispositionOfAssets
      contextRef="Duration_7_1_2024_To_9_30_2024_XquWrHsdeEmkK9F8qXf6qA"
      decimals="-3"
      id="Tc_KHjhozZHdkqZbfbkm7zApQ_8_3"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">1347000</us-gaap:GainLossOnDispositionOfAssets>
    <us-gaap:GainLossOnDispositionOfAssets
      contextRef="Duration_7_1_2023_To_9_30_2023_S4fUa5HYuk6ZPxhUrn5m5w"
      decimals="-3"
      id="Tc_lSKXq_0AD0eNzt_VAuxgBg_8_6"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">579000</us-gaap:GainLossOnDispositionOfAssets>
    <us-gaap:GainLossOnDispositionOfAssets
      contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ"
      decimals="-3"
      id="Tc_xhXwHcoKLkyrvUQZ1eDUng_8_9"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">2778000</us-gaap:GainLossOnDispositionOfAssets>
    <us-gaap:GainLossOnDispositionOfAssets
      contextRef="Duration_1_1_2023_To_9_30_2023_0vpBpKZIxEC_KY5z5G8rKA"
      decimals="-3"
      id="Tc_iM668JMPn0i4kH4ACXdSwg_8_12"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">1683000</us-gaap:GainLossOnDispositionOfAssets>
    <us-gaap:OperatingIncomeLoss
      contextRef="Duration_7_1_2024_To_9_30_2024_XquWrHsdeEmkK9F8qXf6qA"
      decimals="-3"
      id="Tc_1eAIKcuIVESbL-iGvO0y7g_9_3"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">202884000</us-gaap:OperatingIncomeLoss>
    <us-gaap:OperatingIncomeLoss
      contextRef="Duration_7_1_2023_To_9_30_2023_S4fUa5HYuk6ZPxhUrn5m5w"
      decimals="-3"
      id="Tc_M8o7b3w58U-igqJJMqWnTQ_9_6"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">135143000</us-gaap:OperatingIncomeLoss>
    <us-gaap:OperatingIncomeLoss
      contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ"
      decimals="-3"
      id="Tc_1gHE1Xexjkax1gUP6IlT0w_9_9"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">523014000</us-gaap:OperatingIncomeLoss>
    <us-gaap:OperatingIncomeLoss
      contextRef="Duration_1_1_2023_To_9_30_2023_0vpBpKZIxEC_KY5z5G8rKA"
      decimals="-3"
      id="Tc_qH2b2FtUW02ZQqi3ImA-xA_9_12"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">298110000</us-gaap:OperatingIncomeLoss>
    <us-gaap:InvestmentIncomeInterest
      contextRef="Duration_7_1_2024_To_9_30_2024_XquWrHsdeEmkK9F8qXf6qA"
      decimals="-3"
      id="Tc_T5vjWPazVUO7Dn6lJ79uWA_11_3"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">3825000</us-gaap:InvestmentIncomeInterest>
    <us-gaap:InvestmentIncomeInterest
      contextRef="Duration_7_1_2023_To_9_30_2023_S4fUa5HYuk6ZPxhUrn5m5w"
      decimals="-3"
      id="Tc_r984KhknAEaL5xfD_A0wCQ_11_6"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">952000</us-gaap:InvestmentIncomeInterest>
    <us-gaap:InvestmentIncomeInterest
      contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ"
      decimals="-3"
      id="Tc_okrnqVd0T02Qd7K2mVOAag_11_9"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">6692000</us-gaap:InvestmentIncomeInterest>
    <us-gaap:InvestmentIncomeInterest
      contextRef="Duration_1_1_2023_To_9_30_2023_0vpBpKZIxEC_KY5z5G8rKA"
      decimals="-3"
      id="Tc_waMHpujEIUyYzLmPNP-A1Q_11_12"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">2441000</us-gaap:InvestmentIncomeInterest>
    <us-gaap:InterestExpenseNonoperating
      contextRef="Duration_7_1_2024_To_9_30_2024_XquWrHsdeEmkK9F8qXf6qA"
      decimals="-3"
      id="Tc_SmVMFTgCs0CJebGUw_ttnQ_12_3"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">1730000</us-gaap:InterestExpenseNonoperating>
    <us-gaap:InterestExpenseNonoperating
      contextRef="Duration_7_1_2023_To_9_30_2023_S4fUa5HYuk6ZPxhUrn5m5w"
      decimals="-3"
      id="Tc_VaiIWS-ca0SuY5dOyFoe1g_12_6"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">1886000</us-gaap:InterestExpenseNonoperating>
    <us-gaap:InterestExpenseNonoperating
      contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ"
      decimals="-3"
      id="Tc_S9sdFQnCykyFS2VWO_QGJg_12_9"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">5072000</us-gaap:InterestExpenseNonoperating>
    <us-gaap:InterestExpenseNonoperating
      contextRef="Duration_1_1_2023_To_9_30_2023_0vpBpKZIxEC_KY5z5G8rKA"
      decimals="-3"
      id="Tc_y-XYesj6V0KzjalbMhglFg_12_12"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">9880000</us-gaap:InterestExpenseNonoperating>
    <us-gaap:BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1
      contextRef="Duration_7_1_2024_To_9_30_2024_XquWrHsdeEmkK9F8qXf6qA"
      decimals="-3"
      id="Tc_MPl9_X4bCUuAIcmaB3GclA_13_3"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">17254000</us-gaap:BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1>
    <us-gaap:BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1
      contextRef="Duration_7_1_2023_To_9_30_2023_S4fUa5HYuk6ZPxhUrn5m5w"
      decimals="-3"
      id="Tc_R84rvUU-bEuLbcOBF4J1jw_13_6"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">8727000</us-gaap:BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1>
    <us-gaap:BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1
      contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ"
      decimals="-3"
      id="Tc_Ur-e-BsxBUq9_V09hi5DKw_13_9"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">44434000</us-gaap:BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1>
    <us-gaap:BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1
      contextRef="Duration_1_1_2023_To_9_30_2023_0vpBpKZIxEC_KY5z5G8rKA"
      decimals="-3"
      id="Tc_qB2JE6iPuUe3PBI62rF4vA_13_12"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">14207000</us-gaap:BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1>
    <us-gaap:OtherNonoperatingIncomeExpense
      contextRef="Duration_7_1_2024_To_9_30_2024_XquWrHsdeEmkK9F8qXf6qA"
      decimals="-3"
      id="Tc_QaxHzQCWt0yQxLRKGP3j3w_14_3"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">87000</us-gaap:OtherNonoperatingIncomeExpense>
    <us-gaap:OtherNonoperatingIncomeExpense
      contextRef="Duration_7_1_2023_To_9_30_2023_S4fUa5HYuk6ZPxhUrn5m5w"
      decimals="-3"
      id="Tc_c7tHMesA5k2H45TfgEwbWw_14_6"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">-44000</us-gaap:OtherNonoperatingIncomeExpense>
    <us-gaap:OtherNonoperatingIncomeExpense
      contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ"
      decimals="-3"
      id="Tc_vfkUSJPrMEGnTRGjtKn_Qw_14_9"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">323000</us-gaap:OtherNonoperatingIncomeExpense>
    <us-gaap:OtherNonoperatingIncomeExpense
      contextRef="Duration_1_1_2023_To_9_30_2023_0vpBpKZIxEC_KY5z5G8rKA"
      decimals="-3"
      id="Tc_WeDJEyKC3EuWjkYEpqZcQg_14_12"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">1000</us-gaap:OtherNonoperatingIncomeExpense>
    <us-gaap:NonoperatingIncomeExpense
      contextRef="Duration_7_1_2024_To_9_30_2024_XquWrHsdeEmkK9F8qXf6qA"
      decimals="-3"
      id="Tc_26za5H9VEEW8RuEqZObxWg_15_3"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">-15072000</us-gaap:NonoperatingIncomeExpense>
    <us-gaap:NonoperatingIncomeExpense
      contextRef="Duration_7_1_2023_To_9_30_2023_S4fUa5HYuk6ZPxhUrn5m5w"
      decimals="-3"
      id="Tc_5lXyVyovE0CcQA5Aa3J8Xg_15_6"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">-9705000</us-gaap:NonoperatingIncomeExpense>
    <us-gaap:NonoperatingIncomeExpense
      contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ"
      decimals="-3"
      id="Tc_TE8hmcCfT0OjRlm5TpLp1g_15_9"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">-42491000</us-gaap:NonoperatingIncomeExpense>
    <us-gaap:NonoperatingIncomeExpense
      contextRef="Duration_1_1_2023_To_9_30_2023_0vpBpKZIxEC_KY5z5G8rKA"
      decimals="-3"
      id="Tc_jBiuDI8x9EipMMxpPYgNyg_15_12"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">-21645000</us-gaap:NonoperatingIncomeExpense>
    <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest
      contextRef="Duration_7_1_2024_To_9_30_2024_XquWrHsdeEmkK9F8qXf6qA"
      decimals="-3"
      id="Tc_0T6wgPGVT0S9X4aq1YhLrA_16_3"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">187812000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest>
    <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest
      contextRef="Duration_7_1_2023_To_9_30_2023_S4fUa5HYuk6ZPxhUrn5m5w"
      decimals="-3"
      id="Tc_dZrnKjCkc0WvDH4JLyyIDg_16_6"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">125438000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest>
    <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest
      contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ"
      decimals="-3"
      id="Tc_zjcyVN0Tj0-YdFFISwMUCA_16_9"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">480523000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest>
    <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest
      contextRef="Duration_1_1_2023_To_9_30_2023_0vpBpKZIxEC_KY5z5G8rKA"
      decimals="-3"
      id="Tc_747Ky2_5YUGlLScfkBIpiw_16_12"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">276465000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest>
    <us-gaap:IncomeTaxExpenseBenefit
      contextRef="Duration_7_1_2024_To_9_30_2024_XquWrHsdeEmkK9F8qXf6qA"
      decimals="-3"
      id="Tc_2L0DTSOW106NkPgIKEGY9g_17_3"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">41577000</us-gaap:IncomeTaxExpenseBenefit>
    <us-gaap:IncomeTaxExpenseBenefit
      contextRef="Duration_7_1_2023_To_9_30_2023_S4fUa5HYuk6ZPxhUrn5m5w"
      decimals="-3"
      id="Tc_N2vlzX_SFEm83C29WDffkQ_17_6"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">20313000</us-gaap:IncomeTaxExpenseBenefit>
    <us-gaap:IncomeTaxExpenseBenefit
      contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ"
      decimals="-3"
      id="Tc_-AbauQe46Ua0lFuL7xDNcQ_17_9"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">103960000</us-gaap:IncomeTaxExpenseBenefit>
    <us-gaap:IncomeTaxExpenseBenefit
      contextRef="Duration_1_1_2023_To_9_30_2023_0vpBpKZIxEC_KY5z5G8rKA"
      decimals="-3"
      id="Tc_lkpy9EctM0q3z84aY42UyA_17_12"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">44648000</us-gaap:IncomeTaxExpenseBenefit>
    <us-gaap:NetIncomeLoss
      contextRef="Duration_7_1_2024_To_9_30_2024_XquWrHsdeEmkK9F8qXf6qA"
      decimals="-3"
      id="Tc_n3cMg9VvXU6mJF_wuLmJJw_18_3"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">146235000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="Duration_7_1_2023_To_9_30_2023_S4fUa5HYuk6ZPxhUrn5m5w"
      decimals="-3"
      id="Tc_6W4P0O_HS0-Ts77jUdV7Jw_18_6"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">105125000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ"
      decimals="-3"
      id="Tc_UMTQscUCYkWjwDFwc6mtBA_18_9"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">376563000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="Duration_1_1_2023_To_9_30_2023_0vpBpKZIxEC_KY5z5G8rKA"
      decimals="-3"
      id="Tc_F65r6caMiUiOfLCI9Rh9Lw_18_12"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">231817000</us-gaap:NetIncomeLoss>
    <us-gaap:EarningsPerShareBasic
      contextRef="Duration_7_1_2024_To_9_30_2024_XquWrHsdeEmkK9F8qXf6qA"
      decimals="2"
      id="Tc_0YZ_NBLZqU2bYLCVExPm6A_21_3"
      unitRef="Unit_Divide_USD_shares_0ZfRDiWNfk6kp61F6IdjQA">4.10</us-gaap:EarningsPerShareBasic>
    <us-gaap:EarningsPerShareBasic
      contextRef="Duration_7_1_2023_To_9_30_2023_S4fUa5HYuk6ZPxhUrn5m5w"
      decimals="2"
      id="Tc_tgyWLZRrBEOwEeScb35L5g_21_6"
      unitRef="Unit_Divide_USD_shares_0ZfRDiWNfk6kp61F6IdjQA">2.93</us-gaap:EarningsPerShareBasic>
    <us-gaap:EarningsPerShareBasic
      contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ"
      decimals="2"
      id="Tc_kDTYJLZ5RkO7In-rW3Fvcw_21_9"
      unitRef="Unit_Divide_USD_shares_0ZfRDiWNfk6kp61F6IdjQA">10.54</us-gaap:EarningsPerShareBasic>
    <us-gaap:EarningsPerShareBasic
      contextRef="Duration_1_1_2023_To_9_30_2023_0vpBpKZIxEC_KY5z5G8rKA"
      decimals="2"
      id="Tc_DGJH0A4FOU6a8hIlqFzblA_21_12"
      unitRef="Unit_Divide_USD_shares_0ZfRDiWNfk6kp61F6IdjQA">6.47</us-gaap:EarningsPerShareBasic>
    <us-gaap:EarningsPerShareDiluted
      contextRef="Duration_7_1_2024_To_9_30_2024_XquWrHsdeEmkK9F8qXf6qA"
      decimals="2"
      id="Tc_5UWsFO8HYUa2WVq3X6xl8g_22_3"
      unitRef="Unit_Divide_USD_shares_0ZfRDiWNfk6kp61F6IdjQA">4.09</us-gaap:EarningsPerShareDiluted>
    <us-gaap:EarningsPerShareDiluted
      contextRef="Duration_7_1_2023_To_9_30_2023_S4fUa5HYuk6ZPxhUrn5m5w"
      decimals="2"
      id="Tc_78YqYKpqaEeBwgFZVUbwvw_22_6"
      unitRef="Unit_Divide_USD_shares_0ZfRDiWNfk6kp61F6IdjQA">2.93</us-gaap:EarningsPerShareDiluted>
    <us-gaap:EarningsPerShareDiluted
      contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ"
      decimals="2"
      id="Tc_mwzJkOLigk6KCm1aQDCdvQ_22_9"
      unitRef="Unit_Divide_USD_shares_0ZfRDiWNfk6kp61F6IdjQA">10.52</us-gaap:EarningsPerShareDiluted>
    <us-gaap:EarningsPerShareDiluted
      contextRef="Duration_1_1_2023_To_9_30_2023_0vpBpKZIxEC_KY5z5G8rKA"
      decimals="2"
      id="Tc_N3O2A444H0GtmKtDaQuh7Q_22_12"
      unitRef="Unit_Divide_USD_shares_0ZfRDiWNfk6kp61F6IdjQA">6.46</us-gaap:EarningsPerShareDiluted>
    <us-gaap:WeightedAverageNumberOfSharesOutstandingBasic
      contextRef="Duration_7_1_2024_To_9_30_2024_XquWrHsdeEmkK9F8qXf6qA"
      decimals="-3"
      id="Tc_6vU4BIor40WHQ4ngbrzInw_25_3"
      unitRef="Unit_Standard_shares_YK1c03HsOkOiDLLsAeYHoA">35669000</us-gaap:WeightedAverageNumberOfSharesOutstandingBasic>
    <us-gaap:WeightedAverageNumberOfSharesOutstandingBasic
      contextRef="Duration_7_1_2023_To_9_30_2023_S4fUa5HYuk6ZPxhUrn5m5w"
      decimals="-3"
      id="Tc_PHUXjnIYZkiDmljdEoNudw_25_6"
      unitRef="Unit_Standard_shares_YK1c03HsOkOiDLLsAeYHoA">35820000</us-gaap:WeightedAverageNumberOfSharesOutstandingBasic>
    <us-gaap:WeightedAverageNumberOfSharesOutstandingBasic
      contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ"
      decimals="-3"
      id="Tc_P9LCPGiaWEOcHULHvUuc7A_25_9"
      unitRef="Unit_Standard_shares_YK1c03HsOkOiDLLsAeYHoA">35718000</us-gaap:WeightedAverageNumberOfSharesOutstandingBasic>
    <us-gaap:WeightedAverageNumberOfSharesOutstandingBasic
      contextRef="Duration_1_1_2023_To_9_30_2023_0vpBpKZIxEC_KY5z5G8rKA"
      decimals="-3"
      id="Tc_5ZgMx7xf4EmRxTkuNRxT4w_25_12"
      unitRef="Unit_Standard_shares_YK1c03HsOkOiDLLsAeYHoA">35819000</us-gaap:WeightedAverageNumberOfSharesOutstandingBasic>
    <us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding
      contextRef="Duration_7_1_2024_To_9_30_2024_XquWrHsdeEmkK9F8qXf6qA"
      decimals="-3"
      id="Tc_Ej6_ob7uVk2V_kx6k_l0Tg_26_3"
      unitRef="Unit_Standard_shares_YK1c03HsOkOiDLLsAeYHoA">35755000</us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding>
    <us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding
      contextRef="Duration_7_1_2023_To_9_30_2023_S4fUa5HYuk6ZPxhUrn5m5w"
      decimals="-3"
      id="Tc_ACiio88NDU2wNiE3F-QP7Q_26_6"
      unitRef="Unit_Standard_shares_YK1c03HsOkOiDLLsAeYHoA">35917000</us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding>
    <us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding
      contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ"
      decimals="-3"
      id="Tc_hdYIVqLVYU64_uLcqxqLmg_26_9"
      unitRef="Unit_Standard_shares_YK1c03HsOkOiDLLsAeYHoA">35804000</us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding>
    <us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding
      contextRef="Duration_1_1_2023_To_9_30_2023_0vpBpKZIxEC_KY5z5G8rKA"
      decimals="-3"
      id="Tc_or0q5VNnVUOqg8lvEiA2LA_26_12"
      unitRef="Unit_Standard_shares_YK1c03HsOkOiDLLsAeYHoA">35910000</us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding>
    <us-gaap:CommonStockSharesIssued
      contextRef="As_Of_12_31_2022_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember_jd1AYHA2ckyDgIPkOhtN4g"
      decimals="INF"
      id="Tc_wPReZg5fukWwdBHrTYfTnA_6_2"
      unitRef="Unit_Standard_shares_YK1c03HsOkOiDLLsAeYHoA">41123365</us-gaap:CommonStockSharesIssued>
    <us-gaap:StockholdersEquity
      contextRef="As_Of_12_31_2022_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember_jd1AYHA2ckyDgIPkOhtN4g"
      decimals="-3"
      id="Tc_eEp_yB0hTEyNZ7JoamMQBA_6_5"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">411000</us-gaap:StockholdersEquity>
    <us-gaap:TreasuryStockCommonShares
      contextRef="As_Of_12_31_2022_us-gaap_StatementEquityComponentsAxis_us-gaap_TreasuryStockCommonMember_0E-fjy0uWEKri5BSVKBJMA"
      decimals="INF"
      id="Tc_H9fea-_lPUy8ObMK4fZ-WQ_6_7"
      unitRef="Unit_Standard_shares_YK1c03HsOkOiDLLsAeYHoA">-5362224</us-gaap:TreasuryStockCommonShares>
    <us-gaap:StockholdersEquity
      contextRef="As_Of_12_31_2022_us-gaap_StatementEquityComponentsAxis_us-gaap_TreasuryStockCommonMember_0E-fjy0uWEKri5BSVKBJMA"
      decimals="-3"
      id="Tc_Kv8SkdrASUaTPvRu1ls5Yw_6_10"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">-187212000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="As_Of_12_31_2022_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember_HxJsUy70f0eu-ec_UvDOcQ"
      decimals="-3"
      id="Tc_anGjPygAJkCVl97y49FMKw_6_13"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">332080000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="As_Of_12_31_2022_us-gaap_StatementEquityComponentsAxis_us-gaap_RetainedEarningsMember_Ltidt_uNakiZoGFqd_UsYQ"
      decimals="-3"
      id="Tc_YJnSJjIrQkyttzPtSGXwKA_6_16"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">854644000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="As_Of_12_31_2022_-q309bsKT0i3jZ5ZPwDgew"
      decimals="-3"
      id="Tc_r6iPoLIkfk6vGcyDF3V6Ag_6_19"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">999923000</us-gaap:StockholdersEquity>
    <us-gaap:ProfitLoss
      contextRef="Duration_1_1_2023_To_3_31_2023_us-gaap_StatementEquityComponentsAxis_us-gaap_RetainedEarningsMember_Aw1vox8rnUCTCSpKHgL90Q"
      decimals="-3"
      id="Tc_LHUvI3tm20eqCKgrr2E7Dw_7_16"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">57216000</us-gaap:ProfitLoss>
    <us-gaap:ProfitLoss
      contextRef="Duration_1_1_2023_To_3_31_2023_H23KnShKiEqNJR3rELr9eA"
      decimals="-3"
      id="Tc_3EzcINUJQUSpXcPYDljI1A_7_19"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">57216000</us-gaap:ProfitLoss>
    <us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised
      contextRef="Duration_1_1_2023_To_3_31_2023_us-gaap_StatementEquityComponentsAxis_us-gaap_TreasuryStockCommonMember_g9f-nDzbck2YIepY4G-9GQ"
      decimals="INF"
      id="Tc_9kGxTHprAkadK3lV7KXJAA_9_7"
      unitRef="Unit_Standard_shares_YK1c03HsOkOiDLLsAeYHoA">1000</us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised>
    <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised
      contextRef="Duration_1_1_2023_To_3_31_2023_us-gaap_StatementEquityComponentsAxis_us-gaap_TreasuryStockCommonMember_g9f-nDzbck2YIepY4G-9GQ"
      decimals="-3"
      id="Tc_S6Ab4xKZu0K4iNk75rJDWw_9_10"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">36000</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
    <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised
      contextRef="Duration_1_1_2023_To_3_31_2023_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember_w92MrZLl80KReq7fJha7BA"
      decimals="-3"
      id="Tc_dexNPnqzxEaOoJfZY6nBww_9_13"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">-18000</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
    <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised
      contextRef="Duration_1_1_2023_To_3_31_2023_H23KnShKiEqNJR3rELr9eA"
      decimals="-3"
      id="Tc_vDDkDxoeoEq5qzrAKdCJ4w_9_19"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">18000</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
    <us-gaap:StockIssuedDuringPeriodSharesShareBasedCompensation
      contextRef="Duration_1_1_2023_To_3_31_2023_us-gaap_StatementEquityComponentsAxis_us-gaap_TreasuryStockCommonMember_g9f-nDzbck2YIepY4G-9GQ"
      decimals="INF"
      id="Tc_pggImDxIx0iICZyTWy3M_w_10_7"
      unitRef="Unit_Standard_shares_YK1c03HsOkOiDLLsAeYHoA">31960</us-gaap:StockIssuedDuringPeriodSharesShareBasedCompensation>
    <us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation
      contextRef="Duration_1_1_2023_To_3_31_2023_us-gaap_StatementEquityComponentsAxis_us-gaap_TreasuryStockCommonMember_g9f-nDzbck2YIepY4G-9GQ"
      decimals="-3"
      id="Tc_A1BGYI_H2keRZ0It4A8nZg_10_10"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">1131000</us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation>
    <us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation
      contextRef="Duration_1_1_2023_To_3_31_2023_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember_w92MrZLl80KReq7fJha7BA"
      decimals="-3"
      id="Tc_Ngh65scaP0-8Z3xFaEPlWg_10_13"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">3384000</us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation>
    <us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation
      contextRef="Duration_1_1_2023_To_3_31_2023_H23KnShKiEqNJR3rELr9eA"
      decimals="-3"
      id="Tc_dQ_WnnacEUGktXXIePevhQ_10_19"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">4515000</us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation>
    <us-gaap:SharesPaidForTaxWithholdingForShareBasedCompensation
      contextRef="Duration_1_1_2023_To_3_31_2023_us-gaap_StatementEquityComponentsAxis_us-gaap_TreasuryStockCommonMember_g9f-nDzbck2YIepY4G-9GQ"
      decimals="INF"
      id="Tc_tGyuGUcoOEadAo8MnlePKw_11_7"
      unitRef="Unit_Standard_shares_YK1c03HsOkOiDLLsAeYHoA">12728</us-gaap:SharesPaidForTaxWithholdingForShareBasedCompensation>
    <us-gaap:AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation
      contextRef="Duration_1_1_2023_To_3_31_2023_us-gaap_StatementEquityComponentsAxis_us-gaap_TreasuryStockCommonMember_g9f-nDzbck2YIepY4G-9GQ"
      decimals="-3"
      id="Tc_Uay6nmHjVkK6oqovq6bOKg_11_10"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">1798000</us-gaap:AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation>
    <us-gaap:AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation
      contextRef="Duration_1_1_2023_To_3_31_2023_H23KnShKiEqNJR3rELr9eA"
      decimals="-3"
      id="Tc_uBLlDef2bECwX_rQ0EPpgQ_11_19"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">1798000</us-gaap:AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
      contextRef="Duration_1_1_2023_To_3_31_2023_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember_w92MrZLl80KReq7fJha7BA"
      decimals="-3"
      id="Tc_apS8g-i5I0iB-pGA4hdEmg_12_13"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">3438000</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
      contextRef="Duration_1_1_2023_To_3_31_2023_H23KnShKiEqNJR3rELr9eA"
      decimals="-3"
      id="Tc_jbwYgc4cTEWkN8veYhoIJg_12_19"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">3438000</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
    <us-gaap:CommonStockDividendsPerShareDeclared
      contextRef="Duration_1_1_2023_To_3_31_2023_H23KnShKiEqNJR3rELr9eA"
      decimals="3"
      id="Narr_3wZ5C6A4nEmvIWj9Y5Z14w"
      unitRef="Unit_Divide_USD_shares_0ZfRDiWNfk6kp61F6IdjQA">0.175</us-gaap:CommonStockDividendsPerShareDeclared>
    <us-gaap:DividendsCommonStockCash
      contextRef="Duration_1_1_2023_To_3_31_2023_us-gaap_StatementEquityComponentsAxis_us-gaap_RetainedEarningsMember_Aw1vox8rnUCTCSpKHgL90Q"
      decimals="-3"
      id="Tc_sTrZvYArUU2_boxUJ30WZw_13_16"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">6254000</us-gaap:DividendsCommonStockCash>
    <us-gaap:DividendsCommonStockCash
      contextRef="Duration_1_1_2023_To_3_31_2023_H23KnShKiEqNJR3rELr9eA"
      decimals="-3"
      id="Tc_kTE5muB5Y0qtpy_TiyrA-w_13_19"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">6254000</us-gaap:DividendsCommonStockCash>
    <us-gaap:TreasuryStockSharesAcquired
      contextRef="Duration_1_1_2023_To_3_31_2023_us-gaap_StatementEquityComponentsAxis_us-gaap_TreasuryStockCommonMember_g9f-nDzbck2YIepY4G-9GQ"
      decimals="INF"
      id="Tc_ZjbFra0H6kmU3J98aBwbIQ_14_7"
      unitRef="Unit_Standard_shares_YK1c03HsOkOiDLLsAeYHoA">29400</us-gaap:TreasuryStockSharesAcquired>
    <us-gaap:TreasuryStockValueAcquiredCostMethod
      contextRef="Duration_1_1_2023_To_3_31_2023_us-gaap_StatementEquityComponentsAxis_us-gaap_TreasuryStockCommonMember_g9f-nDzbck2YIepY4G-9GQ"
      decimals="-3"
      id="Tc_lSlTE10CX0KwdHIliAx_0A_14_10"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">3568000</us-gaap:TreasuryStockValueAcquiredCostMethod>
    <us-gaap:TreasuryStockValueAcquiredCostMethod
      contextRef="Duration_1_1_2023_To_3_31_2023_H23KnShKiEqNJR3rELr9eA"
      decimals="-3"
      id="Tc_TfycZPwLBE2RHVA9lFB1Vg_14_19"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">3568000</us-gaap:TreasuryStockValueAcquiredCostMethod>
    <us-gaap:CommonStockSharesIssued
      contextRef="As_Of_3_31_2023_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember_GqQElVI120G_fnR-Wj6JEA"
      decimals="INF"
      id="Tc_C3vHn_k5R0yJvkbUr1OTzw_15_2"
      unitRef="Unit_Standard_shares_YK1c03HsOkOiDLLsAeYHoA">41123365</us-gaap:CommonStockSharesIssued>
    <us-gaap:StockholdersEquity
      contextRef="As_Of_3_31_2023_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember_GqQElVI120G_fnR-Wj6JEA"
      decimals="-3"
      id="Tc_j-z-Ji38DEmN3-4Fn2ErsA_15_5"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">411000</us-gaap:StockholdersEquity>
    <us-gaap:TreasuryStockCommonShares
      contextRef="As_Of_3_31_2023_us-gaap_StatementEquityComponentsAxis_us-gaap_TreasuryStockCommonMember_MVSe43959kWoGkMdx8o3oA"
      decimals="INF"
      id="Tc_aJqu0JcmO0a0bxB84Fqrng_15_7"
      unitRef="Unit_Standard_shares_YK1c03HsOkOiDLLsAeYHoA">-5371392</us-gaap:TreasuryStockCommonShares>
    <us-gaap:StockholdersEquity
      contextRef="As_Of_3_31_2023_us-gaap_StatementEquityComponentsAxis_us-gaap_TreasuryStockCommonMember_MVSe43959kWoGkMdx8o3oA"
      decimals="-3"
      id="Tc_Mw6WWYrvnEWl50BgyHptuQ_15_10"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">-191411000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="As_Of_3_31_2023_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember_0AeYUFRn1kGtjsTyvhxwgA"
      decimals="-3"
      id="Tc_YvNjLGNEO028i47DLXgpmQ_15_13"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">338884000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="As_Of_3_31_2023_us-gaap_StatementEquityComponentsAxis_us-gaap_RetainedEarningsMember_YHaH3GP0S0msvUbdJx9WYw"
      decimals="-3"
      id="Tc_1gAasPpbgUWRpcQRuycrgg_15_16"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">905606000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="As_Of_3_31_2023_rI4kWnhsEUqWMYWZ0HR51g"
      decimals="-3"
      id="Tc_-wj3jrmgOEmjuuWGDVXrtQ_15_19"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">1053490000</us-gaap:StockholdersEquity>
    <us-gaap:ProfitLoss
      contextRef="Duration_4_1_2023_To_6_30_2023_us-gaap_StatementEquityComponentsAxis_us-gaap_RetainedEarningsMember_qajS3b2wo02nQqc4tAHFAg"
      decimals="-3"
      id="Tc_b0ilCNtAsU6MhR0FAmJXpA_16_16"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">69476000</us-gaap:ProfitLoss>
    <us-gaap:ProfitLoss
      contextRef="Duration_4_1_2023_To_6_30_2023__ElO6pinZkqcX7BvHZvATw"
      decimals="-3"
      id="Tc_iBYI0IvR60GyatlYn-I2ng_16_19"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">69476000</us-gaap:ProfitLoss>
    <us-gaap:StockIssuedDuringPeriodSharesShareBasedCompensation
      contextRef="Duration_4_1_2023_To_6_30_2023_us-gaap_StatementEquityComponentsAxis_us-gaap_TreasuryStockCommonMember_0KM7HwwZUUSAEOBlTGDKCA"
      decimals="INF"
      id="Tc_NF4Y-L-epEOwTcT5NXUPAw_19_7"
      unitRef="Unit_Standard_shares_YK1c03HsOkOiDLLsAeYHoA">61505</us-gaap:StockIssuedDuringPeriodSharesShareBasedCompensation>
    <us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation
      contextRef="Duration_4_1_2023_To_6_30_2023_us-gaap_StatementEquityComponentsAxis_us-gaap_TreasuryStockCommonMember_0KM7HwwZUUSAEOBlTGDKCA"
      decimals="-3"
      id="Tc__-_Cyun130meG7NScgGdjA_19_10"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">2220000</us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation>
    <us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation
      contextRef="Duration_4_1_2023_To_6_30_2023_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember_OOET7gOWT0i386w9VvqgSw"
      decimals="-3"
      id="Tc_P28yVKHrZ0-KIF-phwuusw_19_13"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">-2220000</us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation>
    <us-gaap:SharesPaidForTaxWithholdingForShareBasedCompensation
      contextRef="Duration_4_1_2023_To_6_30_2023_us-gaap_StatementEquityComponentsAxis_us-gaap_TreasuryStockCommonMember_0KM7HwwZUUSAEOBlTGDKCA"
      decimals="INF"
      id="Tc_2kR3bQd2L02_3ieqLjrsiQ_20_7"
      unitRef="Unit_Standard_shares_YK1c03HsOkOiDLLsAeYHoA">19739</us-gaap:SharesPaidForTaxWithholdingForShareBasedCompensation>
    <us-gaap:AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation
      contextRef="Duration_4_1_2023_To_6_30_2023_us-gaap_StatementEquityComponentsAxis_us-gaap_TreasuryStockCommonMember_0KM7HwwZUUSAEOBlTGDKCA"
      decimals="-3"
      id="Tc_3zHflVCDBU6vsdr5YU5S3Q_20_10"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">2891000</us-gaap:AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation>
    <us-gaap:AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation
      contextRef="Duration_4_1_2023_To_6_30_2023__ElO6pinZkqcX7BvHZvATw"
      decimals="-3"
      id="Tc_aTW_zW_EbkqobIae1aPONA_20_19"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">2891000</us-gaap:AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
      contextRef="Duration_4_1_2023_To_6_30_2023_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember_OOET7gOWT0i386w9VvqgSw"
      decimals="-3"
      id="Tc_vvt2WsT9VES7Hof6pkklmQ_21_13"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">1749000</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
      contextRef="Duration_4_1_2023_To_6_30_2023__ElO6pinZkqcX7BvHZvATw"
      decimals="-3"
      id="Tc_l0btaEXmhk6tn8yo1TaUBw_21_19"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">1749000</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
    <us-gaap:CommonStockDividendsPerShareDeclared
      contextRef="Duration_4_1_2023_To_6_30_2023__ElO6pinZkqcX7BvHZvATw"
      decimals="2"
      id="Narr_VGaGxtwcFUOKYrRYvtLLBg"
      unitRef="Unit_Divide_USD_shares_0ZfRDiWNfk6kp61F6IdjQA">0.20</us-gaap:CommonStockDividendsPerShareDeclared>
    <us-gaap:DividendsCommonStockCash
      contextRef="Duration_4_1_2023_To_6_30_2023_us-gaap_StatementEquityComponentsAxis_us-gaap_RetainedEarningsMember_qajS3b2wo02nQqc4tAHFAg"
      decimals="-3"
      id="Tc_ELy-ZUbYwkCY8zrWwUnHYw_22_16"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">7152000</us-gaap:DividendsCommonStockCash>
    <us-gaap:DividendsCommonStockCash
      contextRef="Duration_4_1_2023_To_6_30_2023__ElO6pinZkqcX7BvHZvATw"
      decimals="-3"
      id="Tc_k3nU1K0KAkW1WgmpkPDfIw_22_19"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">7152000</us-gaap:DividendsCommonStockCash>
    <us-gaap:TreasuryStockSharesAcquired
      contextRef="Duration_4_1_2023_To_6_30_2023_us-gaap_StatementEquityComponentsAxis_us-gaap_TreasuryStockCommonMember_0KM7HwwZUUSAEOBlTGDKCA"
      decimals="INF"
      id="Tc_Uu20UiM-gUqUCA4xlxMLTg_23_7"
      unitRef="Unit_Standard_shares_YK1c03HsOkOiDLLsAeYHoA">24000</us-gaap:TreasuryStockSharesAcquired>
    <us-gaap:TreasuryStockValueAcquiredCostMethod
      contextRef="Duration_4_1_2023_To_6_30_2023_us-gaap_StatementEquityComponentsAxis_us-gaap_TreasuryStockCommonMember_0KM7HwwZUUSAEOBlTGDKCA"
      decimals="-3"
      id="Tc_QIYzK99AuUmDIqJULJ4T5A_23_10"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">3208000</us-gaap:TreasuryStockValueAcquiredCostMethod>
    <us-gaap:TreasuryStockValueAcquiredCostMethod
      contextRef="Duration_4_1_2023_To_6_30_2023__ElO6pinZkqcX7BvHZvATw"
      decimals="-3"
      id="Tc_cH1ANue5FEuGabMEHUYn_g_23_19"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">3208000</us-gaap:TreasuryStockValueAcquiredCostMethod>
    <us-gaap:CommonStockSharesIssued
      contextRef="As_Of_6_30_2023_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember_bCsm-GJ2k0O8PvX-0xSefw"
      decimals="INF"
      id="Tc_am5fVQb_E0-C0R4s_66chQ_24_2"
      unitRef="Unit_Standard_shares_YK1c03HsOkOiDLLsAeYHoA">41123365</us-gaap:CommonStockSharesIssued>
    <us-gaap:StockholdersEquity
      contextRef="As_Of_6_30_2023_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember_bCsm-GJ2k0O8PvX-0xSefw"
      decimals="-3"
      id="Tc_5yHyCl0DWEetj5zjny_AFg_24_5"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">411000</us-gaap:StockholdersEquity>
    <us-gaap:TreasuryStockCommonShares
      contextRef="As_Of_6_30_2023_us-gaap_StatementEquityComponentsAxis_us-gaap_TreasuryStockCommonMember_7ZCIjuMwc0yqYTkNl5XEwg"
      decimals="INF"
      id="Tc_DsnhJoUsMkOZszJhfZ4g1Q_24_7"
      unitRef="Unit_Standard_shares_YK1c03HsOkOiDLLsAeYHoA">-5353626</us-gaap:TreasuryStockCommonShares>
    <us-gaap:StockholdersEquity
      contextRef="As_Of_6_30_2023_us-gaap_StatementEquityComponentsAxis_us-gaap_TreasuryStockCommonMember_7ZCIjuMwc0yqYTkNl5XEwg"
      decimals="-3"
      id="Tc_L6YYzYuXs0iUHZ1lajV45g_24_10"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">-195290000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="As_Of_6_30_2023_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember_eUOzUQVlskWz5TPjuCeKzA"
      decimals="-3"
      id="Tc_Ff1Bj-DBO0aGlhqvfBP4Ow_24_13"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">338413000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="As_Of_6_30_2023_us-gaap_StatementEquityComponentsAxis_us-gaap_RetainedEarningsMember_hWcGX1hQSk2wZm-obHvvlg"
      decimals="-3"
      id="Tc_p9bfzdHan0qoiSfothZ6qA_24_16"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">967930000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="As_Of_6_30_2023_1H6Df8Z6mk-jEaG-3RVOiw"
      decimals="-3"
      id="Tc_w0WEjspB_k6SYUyIuQorJg_24_19"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">1111464000</us-gaap:StockholdersEquity>
    <us-gaap:ProfitLoss
      contextRef="Duration_7_1_2023_To_9_30_2023_us-gaap_StatementEquityComponentsAxis_us-gaap_RetainedEarningsMember_hh3TIbxMZkmJt5_HIPx80w"
      decimals="-3"
      id="Tc_a_XGh1nueUuTs4elkTJ44g_25_16"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">105125000</us-gaap:ProfitLoss>
    <us-gaap:ProfitLoss
      contextRef="Duration_7_1_2023_To_9_30_2023_S4fUa5HYuk6ZPxhUrn5m5w"
      decimals="-3"
      id="Tc_WfX63VUT8EC7oox9fGOfqw_25_19"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">105125000</us-gaap:ProfitLoss>
    <us-gaap:StockIssuedDuringPeriodSharesShareBasedCompensation
      contextRef="Duration_7_1_2023_To_9_30_2023_us-gaap_StatementEquityComponentsAxis_us-gaap_TreasuryStockCommonMember_y_DckiuCiUukzdxoeufHBQ"
      decimals="INF"
      id="Tc_eV6peA9YSEy_ND8v5dNVYA_28_7"
      unitRef="Unit_Standard_shares_YK1c03HsOkOiDLLsAeYHoA">761</us-gaap:StockIssuedDuringPeriodSharesShareBasedCompensation>
    <us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation
      contextRef="Duration_7_1_2023_To_9_30_2023_us-gaap_StatementEquityComponentsAxis_us-gaap_TreasuryStockCommonMember_y_DckiuCiUukzdxoeufHBQ"
      decimals="-3"
      id="Tc_IJk2-PL4jkeMauZVTylYEg_28_10"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">28000</us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation>
    <us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation
      contextRef="Duration_7_1_2023_To_9_30_2023_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember_204q6j4d9U2AZI6d8ovCvw"
      decimals="-3"
      id="Tc_zPtxIJM8MkWa8LuhU2JZWw_28_13"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">-28000</us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation>
    <us-gaap:SharesPaidForTaxWithholdingForShareBasedCompensation
      contextRef="Duration_7_1_2023_To_9_30_2023_us-gaap_StatementEquityComponentsAxis_us-gaap_TreasuryStockCommonMember_y_DckiuCiUukzdxoeufHBQ"
      decimals="INF"
      id="Tc_dohzPMAHYEyLz82udKHI9A_29_7"
      unitRef="Unit_Standard_shares_YK1c03HsOkOiDLLsAeYHoA">185</us-gaap:SharesPaidForTaxWithholdingForShareBasedCompensation>
    <us-gaap:AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation
      contextRef="Duration_7_1_2023_To_9_30_2023_us-gaap_StatementEquityComponentsAxis_us-gaap_TreasuryStockCommonMember_y_DckiuCiUukzdxoeufHBQ"
      decimals="-3"
      id="Tc_VpVzFtpgSEKq9Cc7Lxyxgw_29_10"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">36000</us-gaap:AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation>
    <us-gaap:AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation
      contextRef="Duration_7_1_2023_To_9_30_2023_S4fUa5HYuk6ZPxhUrn5m5w"
      decimals="-3"
      id="Tc_-j4UnmMgp029W74VibefJg_29_19"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">36000</us-gaap:AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
      contextRef="Duration_7_1_2023_To_9_30_2023_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember_204q6j4d9U2AZI6d8ovCvw"
      decimals="-3"
      id="Tc_F0hJweb9v02QEnMQLj_lqA_30_13"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">445000</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
      contextRef="Duration_7_1_2023_To_9_30_2023_S4fUa5HYuk6ZPxhUrn5m5w"
      decimals="-3"
      id="Tc_Q5Rrk45KgkWwJenDcMqnNA_30_19"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">445000</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
    <us-gaap:CommonStockDividendsPerShareDeclared
      contextRef="Duration_7_1_2023_To_9_30_2023_S4fUa5HYuk6ZPxhUrn5m5w"
      decimals="3"
      id="Narr_rrs_uLRYUUWMrJJYZCtjsg"
      unitRef="Unit_Divide_USD_shares_0ZfRDiWNfk6kp61F6IdjQA">0.225</us-gaap:CommonStockDividendsPerShareDeclared>
    <us-gaap:DividendsCommonStockCash
      contextRef="Duration_7_1_2023_To_9_30_2023_us-gaap_StatementEquityComponentsAxis_us-gaap_RetainedEarningsMember_hh3TIbxMZkmJt5_HIPx80w"
      decimals="-3"
      id="Tc__NTfEw7arESrGjALc-Dprw_31_16"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">8049000</us-gaap:DividendsCommonStockCash>
    <us-gaap:DividendsCommonStockCash
      contextRef="Duration_7_1_2023_To_9_30_2023_S4fUa5HYuk6ZPxhUrn5m5w"
      decimals="-3"
      id="Tc_MNXRkz25YUeB7LTh2wn9EA_31_19"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">8049000</us-gaap:DividendsCommonStockCash>
    <us-gaap:TreasuryStockSharesAcquired
      contextRef="Duration_7_1_2023_To_9_30_2023_us-gaap_StatementEquityComponentsAxis_us-gaap_TreasuryStockCommonMember_y_DckiuCiUukzdxoeufHBQ"
      decimals="INF"
      id="Tc_kvvJyf72OUaNsCHl0vgFzA_32_7"
      unitRef="Unit_Standard_shares_YK1c03HsOkOiDLLsAeYHoA">10250</us-gaap:TreasuryStockSharesAcquired>
    <us-gaap:TreasuryStockValueAcquiredCostMethod
      contextRef="Duration_7_1_2023_To_9_30_2023_us-gaap_StatementEquityComponentsAxis_us-gaap_TreasuryStockCommonMember_y_DckiuCiUukzdxoeufHBQ"
      decimals="-3"
      id="Tc_mWvAFIB6j0qOq8VfS6A1eg_32_10"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">1787000</us-gaap:TreasuryStockValueAcquiredCostMethod>
    <us-gaap:TreasuryStockValueAcquiredCostMethod
      contextRef="Duration_7_1_2023_To_9_30_2023_S4fUa5HYuk6ZPxhUrn5m5w"
      decimals="-3"
      id="Tc_hm1NgRZNh0-UwkHqRaTYSg_32_19"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">1787000</us-gaap:TreasuryStockValueAcquiredCostMethod>
    <us-gaap:CommonStockSharesIssued
      contextRef="As_Of_9_30_2023_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember_goYxMkcD80mW87QWqQRQjA"
      decimals="INF"
      id="Tc_vmUYKzxbhkSECX9CIzjrCQ_33_2"
      unitRef="Unit_Standard_shares_YK1c03HsOkOiDLLsAeYHoA">41123365</us-gaap:CommonStockSharesIssued>
    <us-gaap:StockholdersEquity
      contextRef="As_Of_9_30_2023_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember_goYxMkcD80mW87QWqQRQjA"
      decimals="-3"
      id="Tc_8Iz2XxXOuUG9ghqqZNsY7w_33_5"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">411000</us-gaap:StockholdersEquity>
    <us-gaap:TreasuryStockCommonShares
      contextRef="As_Of_9_30_2023_us-gaap_StatementEquityComponentsAxis_us-gaap_TreasuryStockCommonMember_PfWQst0sZkGVJo1TkRwV9A"
      decimals="INF"
      id="Tc_DysmKvWzjEeF0R6lfmPG5w_33_7"
      unitRef="Unit_Standard_shares_YK1c03HsOkOiDLLsAeYHoA">-5363300</us-gaap:TreasuryStockCommonShares>
    <us-gaap:StockholdersEquity
      contextRef="As_Of_9_30_2023_us-gaap_StatementEquityComponentsAxis_us-gaap_TreasuryStockCommonMember_PfWQst0sZkGVJo1TkRwV9A"
      decimals="-3"
      id="Tc_UVUg2PI6HEqM-XO6gXYkWg_33_10"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">-197085000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="As_Of_9_30_2023_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember_DTKQ77I2gE-QJ1KPR-Wqcg"
      decimals="-3"
      id="Tc_uC_NlUxo_Eqi50uuRVl-AA_33_13"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">338830000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="As_Of_9_30_2023_us-gaap_StatementEquityComponentsAxis_us-gaap_RetainedEarningsMember_U3nCX3aNDEWCX8TCtyxD9Q"
      decimals="-3"
      id="Tc_amI8UlineU2KVwcjTeFvKg_33_16"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">1065006000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="As_Of_9_30_2023_Cz0YiFrEwkyvL950Hk4Vxw"
      decimals="-3"
      id="Tc_BYZzSjMJFkiJ_OmZbQqm3Q_33_19"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">1207162000</us-gaap:StockholdersEquity>
    <us-gaap:CommonStockSharesIssued
      contextRef="As_Of_12_31_2023_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember_T-GK8ughAU-Ymn8SjNyefQ"
      decimals="INF"
      id="Tc_2mR5FSrzc0SximvEx2yoMg_6_2"
      unitRef="Unit_Standard_shares_YK1c03HsOkOiDLLsAeYHoA">41123365</us-gaap:CommonStockSharesIssued>
    <us-gaap:StockholdersEquity
      contextRef="As_Of_12_31_2023_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember_T-GK8ughAU-Ymn8SjNyefQ"
      decimals="-3"
      id="Tc_sgR58A88-km_b25a6eoQww_6_5"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">411000</us-gaap:StockholdersEquity>
    <us-gaap:TreasuryStockCommonShares
      contextRef="As_Of_12_31_2023_us-gaap_StatementEquityComponentsAxis_us-gaap_TreasuryStockCommonMember_WxG3JaTAz0C1Fg-OE_oPhQ"
      decimals="INF"
      id="Tc_hUNEmYO2L0uTc4MFWiCWAQ_6_7"
      unitRef="Unit_Standard_shares_YK1c03HsOkOiDLLsAeYHoA">-5438625</us-gaap:TreasuryStockCommonShares>
    <us-gaap:StockholdersEquity
      contextRef="As_Of_12_31_2023_us-gaap_StatementEquityComponentsAxis_us-gaap_TreasuryStockCommonMember_WxG3JaTAz0C1Fg-OE_oPhQ"
      decimals="-3"
      id="Tc_H7_3KLYtD0a_1Um8VBzQZg_6_10"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">-209807000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="As_Of_12_31_2023_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember_Ew23JNCFwEeDRuV4V2E9SA"
      decimals="-3"
      id="Tc__PN72MXZmU6dzvandW-SZQ_6_13"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">339562000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="As_Of_12_31_2023_us-gaap_StatementEquityComponentsAxis_us-gaap_RetainedEarningsMember_p1H1eeBRGEW14HqP_cu3Tg"
      decimals="-3"
      id="Tc_MeuGCoT2aka8aNMwIuGDIw_6_16"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">1147663000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="As_Of_12_31_2023_X7eqeHRTF0mRLJW7InVDdA"
      decimals="-3"
      id="Tc_Fjw2DWXFaUCi-8usdKLG9A_6_19"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">1277829000</us-gaap:StockholdersEquity>
    <us-gaap:ProfitLoss
      contextRef="Duration_1_1_2024_To_3_31_2024_us-gaap_StatementEquityComponentsAxis_us-gaap_RetainedEarningsMember_88WYf2_I1USg-VDBGWdW5A"
      decimals="-3"
      id="Tc_FNjV5xnHikKYMl28KP9QcQ_7_16"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">96319000</us-gaap:ProfitLoss>
    <us-gaap:ProfitLoss
      contextRef="Duration_1_1_2024_To_3_31_2024_3eDLXeHQHUqwFFCeVkNekQ"
      decimals="-3"
      id="Tc_WVlusEeKFESi7HWwMP-5uA_7_19"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">96319000</us-gaap:ProfitLoss>
    <us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised
      contextRef="Duration_1_1_2024_To_3_31_2024_us-gaap_StatementEquityComponentsAxis_us-gaap_TreasuryStockCommonMember_n0WWCqlMIEi_Xifgk4ElyA"
      decimals="INF"
      id="Tc_dD-X53-A80-u06_PIIqpsQ_9_7"
      unitRef="Unit_Standard_shares_YK1c03HsOkOiDLLsAeYHoA">1369</us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised>
    <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised
      contextRef="Duration_1_1_2024_To_3_31_2024_us-gaap_StatementEquityComponentsAxis_us-gaap_TreasuryStockCommonMember_n0WWCqlMIEi_Xifgk4ElyA"
      decimals="-3"
      id="Tc_5Kv4ztAypU-cFLVlzP3t4w_9_10"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">53000</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
    <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised
      contextRef="Duration_1_1_2024_To_3_31_2024_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember_Vpc_7DhSLkuyQLld5NTf2w"
      decimals="-3"
      id="Tc_0eetTi3hpkaC-HyLmMV8mw_9_13"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">-26000</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
    <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised
      contextRef="Duration_1_1_2024_To_3_31_2024_3eDLXeHQHUqwFFCeVkNekQ"
      decimals="-3"
      id="Tc_N2Epv_Ia20yY0YBbhmEDZQ_9_19"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">27000</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
    <us-gaap:StockIssuedDuringPeriodSharesShareBasedCompensation
      contextRef="Duration_1_1_2024_To_3_31_2024_us-gaap_StatementEquityComponentsAxis_us-gaap_TreasuryStockCommonMember_n0WWCqlMIEi_Xifgk4ElyA"
      decimals="INF"
      id="Tc_mFBtcdPqzkqyKWsRUYfn_Q_10_7"
      unitRef="Unit_Standard_shares_YK1c03HsOkOiDLLsAeYHoA">17018</us-gaap:StockIssuedDuringPeriodSharesShareBasedCompensation>
    <us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation
      contextRef="Duration_1_1_2024_To_3_31_2024_us-gaap_StatementEquityComponentsAxis_us-gaap_TreasuryStockCommonMember_n0WWCqlMIEi_Xifgk4ElyA"
      decimals="-3"
      id="Tc_nI_DGv7yY0OVidLNV_wBQQ_10_10"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">657000</us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation>
    <us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation
      contextRef="Duration_1_1_2024_To_3_31_2024_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember_Vpc_7DhSLkuyQLld5NTf2w"
      decimals="-3"
      id="Tc_9v3skpRqsECA10yP9JV7kA_10_13"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">4696000</us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation>
    <us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation
      contextRef="Duration_1_1_2024_To_3_31_2024_3eDLXeHQHUqwFFCeVkNekQ"
      decimals="-3"
      id="Tc_vib7MHpj8EO405_1OZO0wQ_10_19"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">5353000</us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation>
    <us-gaap:SharesPaidForTaxWithholdingForShareBasedCompensation
      contextRef="Duration_1_1_2024_To_3_31_2024_us-gaap_StatementEquityComponentsAxis_us-gaap_TreasuryStockCommonMember_n0WWCqlMIEi_Xifgk4ElyA"
      decimals="INF"
      id="Tc_QZfx9wehCEeIaBnVblB04g_11_7"
      unitRef="Unit_Standard_shares_YK1c03HsOkOiDLLsAeYHoA">6763</us-gaap:SharesPaidForTaxWithholdingForShareBasedCompensation>
    <us-gaap:AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation
      contextRef="Duration_1_1_2024_To_3_31_2024_us-gaap_StatementEquityComponentsAxis_us-gaap_TreasuryStockCommonMember_n0WWCqlMIEi_Xifgk4ElyA"
      decimals="-3"
      id="Tc_Ifp6N3WQYUKxaPbl8jS5OQ_11_10"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">2126000</us-gaap:AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation>
    <us-gaap:AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation
      contextRef="Duration_1_1_2024_To_3_31_2024_3eDLXeHQHUqwFFCeVkNekQ"
      decimals="-3"
      id="Tc_2AAuW1fBw0y_s5erMuVMYA_11_19"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">2126000</us-gaap:AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
      contextRef="Duration_1_1_2024_To_3_31_2024_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember_Vpc_7DhSLkuyQLld5NTf2w"
      decimals="-3"
      id="Tc_1-rdgMzR2kGb4V7Tta7A9Q_12_13"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">4350000</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
      contextRef="Duration_1_1_2024_To_3_31_2024_3eDLXeHQHUqwFFCeVkNekQ"
      decimals="-3"
      id="Tc_Y2dTl68C_EGXqI-yXgsj3g_12_19"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">4350000</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
    <us-gaap:CommonStockDividendsPerShareDeclared
      contextRef="Duration_1_1_2024_To_3_31_2024_3eDLXeHQHUqwFFCeVkNekQ"
      decimals="2"
      id="Narr_zjt4VzodYUW2_OzyoWwGjg"
      unitRef="Unit_Divide_USD_shares_0ZfRDiWNfk6kp61F6IdjQA">0.25</us-gaap:CommonStockDividendsPerShareDeclared>
    <us-gaap:DividendsCommonStockCash
      contextRef="Duration_1_1_2024_To_3_31_2024_us-gaap_StatementEquityComponentsAxis_us-gaap_RetainedEarningsMember_88WYf2_I1USg-VDBGWdW5A"
      decimals="-3"
      id="Tc_iHijgoAiCky79RrQmM_OCw_13_16"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">8921000</us-gaap:DividendsCommonStockCash>
    <us-gaap:DividendsCommonStockCash
      contextRef="Duration_1_1_2024_To_3_31_2024_3eDLXeHQHUqwFFCeVkNekQ"
      decimals="-3"
      id="Tc_M3sVjH8vskKDvzgxpQnJcA_13_19"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">8921000</us-gaap:DividendsCommonStockCash>
    <us-gaap:TreasuryStockSharesAcquired
      contextRef="Duration_1_1_2024_To_3_31_2024_us-gaap_StatementEquityComponentsAxis_us-gaap_TreasuryStockCommonMember_n0WWCqlMIEi_Xifgk4ElyA"
      decimals="INF"
      id="Tc_33EaWDbIgUORc1m8mE0-LQ_14_7"
      unitRef="Unit_Standard_shares_YK1c03HsOkOiDLLsAeYHoA">1500</us-gaap:TreasuryStockSharesAcquired>
    <us-gaap:TreasuryStockValueAcquiredCostMethod
      contextRef="Duration_1_1_2024_To_3_31_2024_us-gaap_StatementEquityComponentsAxis_us-gaap_TreasuryStockCommonMember_n0WWCqlMIEi_Xifgk4ElyA"
      decimals="-3"
      id="Tc_mo59ec3WSk6hsczBWfsyAw_14_10"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">295000</us-gaap:TreasuryStockValueAcquiredCostMethod>
    <us-gaap:TreasuryStockValueAcquiredCostMethod
      contextRef="Duration_1_1_2024_To_3_31_2024_3eDLXeHQHUqwFFCeVkNekQ"
      decimals="-3"
      id="Tc_cvH2L-RX6E-VmmeQlT44vg_14_19"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">295000</us-gaap:TreasuryStockValueAcquiredCostMethod>
    <us-gaap:CommonStockSharesIssued
      contextRef="As_Of_3_31_2024_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember_faNjppyvAkG95Lo5lfEFQA"
      decimals="INF"
      id="Tc_NgCeq5zgUkucnDTufPreRg_15_2"
      unitRef="Unit_Standard_shares_YK1c03HsOkOiDLLsAeYHoA">41123365</us-gaap:CommonStockSharesIssued>
    <us-gaap:StockholdersEquity
      contextRef="As_Of_3_31_2024_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember_faNjppyvAkG95Lo5lfEFQA"
      decimals="-3"
      id="Tc_xhKs4qIAjkCi7PBS9aOCTg_15_5"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">411000</us-gaap:StockholdersEquity>
    <us-gaap:TreasuryStockCommonShares
      contextRef="As_Of_3_31_2024_us-gaap_StatementEquityComponentsAxis_us-gaap_TreasuryStockCommonMember_u9WlFz_I7USmDHCYxAti0g"
      decimals="INF"
      id="Tc_0kCf6czNCUy1I3ejACok3g_15_7"
      unitRef="Unit_Standard_shares_YK1c03HsOkOiDLLsAeYHoA">-5428501</us-gaap:TreasuryStockCommonShares>
    <us-gaap:StockholdersEquity
      contextRef="As_Of_3_31_2024_us-gaap_StatementEquityComponentsAxis_us-gaap_TreasuryStockCommonMember_u9WlFz_I7USmDHCYxAti0g"
      decimals="-3"
      id="Tc_URVUpVuEHUehUBa4Oozm4Q_15_10"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">-211518000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="As_Of_3_31_2024_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember_gusb316CFEq_VuQbOr8B1w"
      decimals="-3"
      id="Tc_JhaDv1_w00eLz65x5rqcTA_15_13"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">348582000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="As_Of_3_31_2024_us-gaap_StatementEquityComponentsAxis_us-gaap_RetainedEarningsMember_Mf5SjU-Cp06KTb9FvCkxjg"
      decimals="-3"
      id="Tc_pb42rbetRU2CddZZDoZmrA_15_16"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">1235061000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="As_Of_3_31_2024_TuxXtlZ-cEeaT-E2a8UyqQ"
      decimals="-3"
      id="Tc_2fLj-YmiK0KbezBecH7D8w_15_19"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">1372536000</us-gaap:StockholdersEquity>
    <us-gaap:ProfitLoss
      contextRef="Duration_4_1_2024_To_6_30_2024_us-gaap_StatementEquityComponentsAxis_us-gaap_RetainedEarningsMember_MTAAMIW_sE-DxCrnUDth7g"
      decimals="-3"
      id="Tc_0do34w_JX0uxgfkea0IUVw_16_16"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">134009000</us-gaap:ProfitLoss>
    <us-gaap:ProfitLoss
      contextRef="Duration_4_1_2024_To_6_30_2024_sROrhhIG1EWJb6sdFVCV5A"
      decimals="-3"
      id="Tc_qJN1Ccwc40G__ZLhyX-khw_16_19"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">134009000</us-gaap:ProfitLoss>
    <us-gaap:StockIssuedDuringPeriodSharesShareBasedCompensation
      contextRef="Duration_4_1_2024_To_6_30_2024_us-gaap_StatementEquityComponentsAxis_us-gaap_TreasuryStockCommonMember_iuV_4b6WkESZTYOaWSSz5g"
      decimals="INF"
      id="Tc_7G5V0m8BuUigOfCKo10CUw_19_7"
      unitRef="Unit_Standard_shares_YK1c03HsOkOiDLLsAeYHoA">47344</us-gaap:StockIssuedDuringPeriodSharesShareBasedCompensation>
    <us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation
      contextRef="Duration_4_1_2024_To_6_30_2024_us-gaap_StatementEquityComponentsAxis_us-gaap_TreasuryStockCommonMember_iuV_4b6WkESZTYOaWSSz5g"
      decimals="-3"
      id="Tc_NjN55p6-0EKV33fyFiC8Nw_19_10"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">1851000</us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation>
    <us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation
      contextRef="Duration_4_1_2024_To_6_30_2024_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember_Vg2IkYLjME2M1RDpLQhp_w"
      decimals="-3"
      id="Tc_Z96ihZUP7UeUQtet3hnGfg_19_13"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">-1851000</us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation>
    <us-gaap:SharesPaidForTaxWithholdingForShareBasedCompensation
      contextRef="Duration_4_1_2024_To_6_30_2024_us-gaap_StatementEquityComponentsAxis_us-gaap_TreasuryStockCommonMember_iuV_4b6WkESZTYOaWSSz5g"
      decimals="INF"
      id="Tc_I4MxPvfTMEuh5eHTLSfORQ_20_7"
      unitRef="Unit_Standard_shares_YK1c03HsOkOiDLLsAeYHoA">15817</us-gaap:SharesPaidForTaxWithholdingForShareBasedCompensation>
    <us-gaap:AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation
      contextRef="Duration_4_1_2024_To_6_30_2024_us-gaap_StatementEquityComponentsAxis_us-gaap_TreasuryStockCommonMember_iuV_4b6WkESZTYOaWSSz5g"
      decimals="-3"
      id="Tc_xFkv7rv9y0yqMiPohZ_6UQ_20_10"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">5062000</us-gaap:AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation>
    <us-gaap:AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation
      contextRef="Duration_4_1_2024_To_6_30_2024_sROrhhIG1EWJb6sdFVCV5A"
      decimals="-3"
      id="Tc_qROwfhb4c0OANQpobBIUKQ_20_19"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">5062000</us-gaap:AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
      contextRef="Duration_4_1_2024_To_6_30_2024_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember_Vg2IkYLjME2M1RDpLQhp_w"
      decimals="-3"
      id="Tc_AvA-NN-GK06oqOG1p8fh8Q_21_13"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">2368000</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
      contextRef="Duration_4_1_2024_To_6_30_2024_sROrhhIG1EWJb6sdFVCV5A"
      decimals="-3"
      id="Tc_rrlb5HmubEaS8SeH3KEdKQ_21_19"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">2368000</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
    <us-gaap:CommonStockDividendsPerShareDeclared
      contextRef="Duration_4_1_2024_To_6_30_2024_sROrhhIG1EWJb6sdFVCV5A"
      decimals="2"
      id="Narr_HQ2Llde5C0qqPYSQFt9KCw"
      unitRef="Unit_Divide_USD_shares_0ZfRDiWNfk6kp61F6IdjQA">0.30</us-gaap:CommonStockDividendsPerShareDeclared>
    <us-gaap:DividendsCommonStockCash
      contextRef="Duration_4_1_2024_To_6_30_2024_us-gaap_StatementEquityComponentsAxis_us-gaap_RetainedEarningsMember_MTAAMIW_sE-DxCrnUDth7g"
      decimals="-3"
      id="Tc_oJ4AdNS2mEq_--4Ec_R5ww_22_16"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">10713000</us-gaap:DividendsCommonStockCash>
    <us-gaap:DividendsCommonStockCash
      contextRef="Duration_4_1_2024_To_6_30_2024_sROrhhIG1EWJb6sdFVCV5A"
      decimals="-3"
      id="Tc_txlcazbruEuLHuMfrsr8fw_22_19"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">10713000</us-gaap:DividendsCommonStockCash>
    <us-gaap:TreasuryStockSharesAcquired
      contextRef="Duration_4_1_2024_To_6_30_2024_us-gaap_StatementEquityComponentsAxis_us-gaap_TreasuryStockCommonMember_iuV_4b6WkESZTYOaWSSz5g"
      decimals="INF"
      id="Tc_QHJ2A2nDjEix_IxN4WVhXg_23_7"
      unitRef="Unit_Standard_shares_YK1c03HsOkOiDLLsAeYHoA">34997</us-gaap:TreasuryStockSharesAcquired>
    <us-gaap:TreasuryStockValueAcquiredCostMethod
      contextRef="Duration_4_1_2024_To_6_30_2024_us-gaap_StatementEquityComponentsAxis_us-gaap_TreasuryStockCommonMember_iuV_4b6WkESZTYOaWSSz5g"
      decimals="-3"
      id="Tc_BpEQBxy3lkuwJqz9VNwivw_23_10"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">10844000</us-gaap:TreasuryStockValueAcquiredCostMethod>
    <us-gaap:TreasuryStockValueAcquiredCostMethod
      contextRef="Duration_4_1_2024_To_6_30_2024_sROrhhIG1EWJb6sdFVCV5A"
      decimals="-3"
      id="Tc_ZbI6kRJbn0GPCVE15ypU8g_23_19"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">10844000</us-gaap:TreasuryStockValueAcquiredCostMethod>
    <us-gaap:CommonStockSharesIssued
      contextRef="As_Of_6_30_2024_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember_FsF6nm3makmkjOm3DJrFOw"
      decimals="INF"
      id="Tc_xlSBdbcSS0OaMHejotje_A_24_2"
      unitRef="Unit_Standard_shares_YK1c03HsOkOiDLLsAeYHoA">41123365</us-gaap:CommonStockSharesIssued>
    <us-gaap:StockholdersEquity
      contextRef="As_Of_6_30_2024_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember_FsF6nm3makmkjOm3DJrFOw"
      decimals="-3"
      id="Tc_SNvAjYF1hkOrsBrDSXZTqg_24_5"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">411000</us-gaap:StockholdersEquity>
    <us-gaap:TreasuryStockCommonShares
      contextRef="As_Of_6_30_2024_us-gaap_StatementEquityComponentsAxis_us-gaap_TreasuryStockCommonMember_rplrCduHPUKkd5ni2h63_Q"
      decimals="INF"
      id="Tc_wMfJcCGdKk6R4iEqW6diKw_24_7"
      unitRef="Unit_Standard_shares_YK1c03HsOkOiDLLsAeYHoA">-5431971</us-gaap:TreasuryStockCommonShares>
    <us-gaap:StockholdersEquity
      contextRef="As_Of_6_30_2024_us-gaap_StatementEquityComponentsAxis_us-gaap_TreasuryStockCommonMember_rplrCduHPUKkd5ni2h63_Q"
      decimals="-3"
      id="Tc_CPFpwhjzK0-SBNFpAc7blw_24_10"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">-225573000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="As_Of_6_30_2024_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember_Esh6OYjwZUCcuWrfy0pzEA"
      decimals="-3"
      id="Tc_0V2g2OlEMEGjB8_ftc0asg_24_13"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">349099000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="As_Of_6_30_2024_us-gaap_StatementEquityComponentsAxis_us-gaap_RetainedEarningsMember_1uRWP4PGY0CHlwtNC16vmg"
      decimals="-3"
      id="Tc_BsKP9DnCIUqFs8gd4K44_w_24_16"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">1358357000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="As_Of_6_30_2024_SiyrixYS5kCDbEg8NlCx0g"
      decimals="-3"
      id="Tc_23vFRLafL02OgqInfChZJA_24_19"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">1482294000</us-gaap:StockholdersEquity>
    <us-gaap:ProfitLoss
      contextRef="Duration_7_1_2024_To_9_30_2024_us-gaap_StatementEquityComponentsAxis_us-gaap_RetainedEarningsMember_b-0313COyUGZN-vuWAQxJw"
      decimals="-3"
      id="Tc_EbBstV8Pck-CjvICFp6RoQ_25_16"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">146235000</us-gaap:ProfitLoss>
    <us-gaap:ProfitLoss
      contextRef="Duration_7_1_2024_To_9_30_2024_XquWrHsdeEmkK9F8qXf6qA"
      decimals="-3"
      id="Tc_pGtfsY0HXUuEvSxACIL1Mg_25_19"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">146235000</us-gaap:ProfitLoss>
    <us-gaap:StockIssuedDuringPeriodSharesShareBasedCompensation
      contextRef="Duration_7_1_2024_To_9_30_2024_us-gaap_StatementEquityComponentsAxis_us-gaap_TreasuryStockCommonMember_OHlyn-cLJE6WED7jje2D4g"
      decimals="INF"
      id="Tc_AnR3Y0TtYkuHgtt_OOT7MQ_28_7"
      unitRef="Unit_Standard_shares_YK1c03HsOkOiDLLsAeYHoA">1434</us-gaap:StockIssuedDuringPeriodSharesShareBasedCompensation>
    <us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation
      contextRef="Duration_7_1_2024_To_9_30_2024_us-gaap_StatementEquityComponentsAxis_us-gaap_TreasuryStockCommonMember_OHlyn-cLJE6WED7jje2D4g"
      decimals="-3"
      id="Tc_pbss7p6pHk-nyofcs-YH3w_28_10"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">66000</us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation>
    <us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation
      contextRef="Duration_7_1_2024_To_9_30_2024_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember_GC_A98EUY0OVhREw-KFEtQ"
      decimals="-3"
      id="Tc_ni7kVKPtyEuTXzoaIFU4hw_28_13"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">-66000</us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation>
    <us-gaap:SharesPaidForTaxWithholdingForShareBasedCompensation
      contextRef="Duration_7_1_2024_To_9_30_2024_us-gaap_StatementEquityComponentsAxis_us-gaap_TreasuryStockCommonMember_OHlyn-cLJE6WED7jje2D4g"
      decimals="INF"
      id="Tc__jyuQpDeD0-oxJU7duFQsg_29_7"
      unitRef="Unit_Standard_shares_YK1c03HsOkOiDLLsAeYHoA">309</us-gaap:SharesPaidForTaxWithholdingForShareBasedCompensation>
    <us-gaap:AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation
      contextRef="Duration_7_1_2024_To_9_30_2024_us-gaap_StatementEquityComponentsAxis_us-gaap_TreasuryStockCommonMember_OHlyn-cLJE6WED7jje2D4g"
      decimals="-3"
      id="Tc_soBDI2icv0eJDytUBp2h7w_29_10"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">104000</us-gaap:AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation>
    <us-gaap:AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation
      contextRef="Duration_7_1_2024_To_9_30_2024_XquWrHsdeEmkK9F8qXf6qA"
      decimals="-3"
      id="Tc_UNsQroq2C0WBHfbEMIvAIQ_29_19"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">104000</us-gaap:AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
      contextRef="Duration_7_1_2024_To_9_30_2024_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember_GC_A98EUY0OVhREw-KFEtQ"
      decimals="-3"
      id="Tc_B5n54RkakUuoZX32njUn6w_30_13"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">1149000</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
      contextRef="Duration_7_1_2024_To_9_30_2024_XquWrHsdeEmkK9F8qXf6qA"
      decimals="-3"
      id="Tc_Zr8ZqeXmk0qFtp2wcB0xIQ_30_19"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">1149000</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
    <us-gaap:CommonStockDividendsPerShareDeclared
      contextRef="Duration_7_1_2024_To_9_30_2024_XquWrHsdeEmkK9F8qXf6qA"
      decimals="2"
      id="Narr_VnFsUL_HsEO_mzr8tJfUgA"
      unitRef="Unit_Divide_USD_shares_0ZfRDiWNfk6kp61F6IdjQA">0.30</us-gaap:CommonStockDividendsPerShareDeclared>
    <us-gaap:DividendsCommonStockCash
      contextRef="Duration_7_1_2024_To_9_30_2024_us-gaap_StatementEquityComponentsAxis_us-gaap_RetainedEarningsMember_b-0313COyUGZN-vuWAQxJw"
      decimals="-3"
      id="Tc_3qmck8keKEqtd3hr0Su_cg_31_16"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">10688000</us-gaap:DividendsCommonStockCash>
    <us-gaap:DividendsCommonStockCash
      contextRef="Duration_7_1_2024_To_9_30_2024_XquWrHsdeEmkK9F8qXf6qA"
      decimals="-3"
      id="Tc_fEx4so_r-0aoInFjTjulsw_31_19"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">10688000</us-gaap:DividendsCommonStockCash>
    <us-gaap:TreasuryStockSharesAcquired
      contextRef="Duration_7_1_2024_To_9_30_2024_us-gaap_StatementEquityComponentsAxis_us-gaap_TreasuryStockCommonMember_OHlyn-cLJE6WED7jje2D4g"
      decimals="INF"
      id="Tc_qMmS9tYAeUOSLDs3v_psYw_32_7"
      unitRef="Unit_Standard_shares_YK1c03HsOkOiDLLsAeYHoA">99961</us-gaap:TreasuryStockSharesAcquired>
    <us-gaap:TreasuryStockValueAcquiredCostMethod
      contextRef="Duration_7_1_2024_To_9_30_2024_us-gaap_StatementEquityComponentsAxis_us-gaap_TreasuryStockCommonMember_OHlyn-cLJE6WED7jje2D4g"
      decimals="-3"
      id="Tc_jN8aSKXf9UaUT_s80IySpw_32_10"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">31164000</us-gaap:TreasuryStockValueAcquiredCostMethod>
    <us-gaap:TreasuryStockValueAcquiredCostMethod
      contextRef="Duration_7_1_2024_To_9_30_2024_XquWrHsdeEmkK9F8qXf6qA"
      decimals="-3"
      id="Tc_fjuHYrdmpEG20eo9XJHqqw_32_19"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">31164000</us-gaap:TreasuryStockValueAcquiredCostMethod>
    <us-gaap:CommonStockSharesIssued
      contextRef="As_Of_9_30_2024_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember_ooz0_FoGDUONfNpJABpC_A"
      decimals="INF"
      id="Tc_Ic6txZmX8UW3xWZp3Ri9NQ_33_2"
      unitRef="Unit_Standard_shares_YK1c03HsOkOiDLLsAeYHoA">41123365</us-gaap:CommonStockSharesIssued>
    <us-gaap:StockholdersEquity
      contextRef="As_Of_9_30_2024_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember_ooz0_FoGDUONfNpJABpC_A"
      decimals="-3"
      id="Tc_x5ou4zJMR0OE2VRsPm67kg_33_5"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">411000</us-gaap:StockholdersEquity>
    <us-gaap:TreasuryStockCommonShares
      contextRef="As_Of_9_30_2024_us-gaap_StatementEquityComponentsAxis_us-gaap_TreasuryStockCommonMember_SF1yafOekU-tXEsRPH5BZA"
      decimals="INF"
      id="Tc_n8sfk9KWJ0qFyxG_4eF6iw_33_7"
      unitRef="Unit_Standard_shares_YK1c03HsOkOiDLLsAeYHoA">-5530807</us-gaap:TreasuryStockCommonShares>
    <us-gaap:StockholdersEquity
      contextRef="As_Of_9_30_2024_us-gaap_StatementEquityComponentsAxis_us-gaap_TreasuryStockCommonMember_SF1yafOekU-tXEsRPH5BZA"
      decimals="-3"
      id="Tc_dR-hLWOT-Uu1A9yS-GD65Q_33_10"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">-256775000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="As_Of_9_30_2024_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember_YSdubrY4XkOM19Wz565jjQ"
      decimals="-3"
      id="Tc_Juv4YoT8LUqdQH-LERFScg_33_13"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">350182000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="As_Of_9_30_2024_us-gaap_StatementEquityComponentsAxis_us-gaap_RetainedEarningsMember_9Q60Oh9Ah0OkbWnQEVoujg"
      decimals="-3"
      id="Tc_hFjmVu06eUiIXu5Z9T2d1A_33_16"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">1493904000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="As_Of_9_30_2024_um13j0l3zk2ITGaiED1DFA"
      decimals="-3"
      id="Tc_2DJk2K6cg0WX7EI7uH0qew_33_19"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">1587722000</us-gaap:StockholdersEquity>
    <us-gaap:ProfitLoss
      contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ"
      decimals="-3"
      id="Tc_gfRUTywdPUKTpKMBXBMgig_5_3"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">376563000</us-gaap:ProfitLoss>
    <us-gaap:ProfitLoss
      contextRef="Duration_1_1_2023_To_9_30_2023_0vpBpKZIxEC_KY5z5G8rKA"
      decimals="-3"
      id="Tc_kvXa3fR7vUiwUVLcL3R7rg_5_6"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">231817000</us-gaap:ProfitLoss>
    <us-gaap:AmortizationOfIntangibleAssets
      contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ"
      decimals="-3"
      id="Tc_ZxsE6q_7KUWUrYYMPzwmOA_7_3"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">75224000</us-gaap:AmortizationOfIntangibleAssets>
    <us-gaap:AmortizationOfIntangibleAssets
      contextRef="Duration_1_1_2023_To_9_30_2023_0vpBpKZIxEC_KY5z5G8rKA"
      decimals="-3"
      id="Tc_Q7WJfRGBmEym_otY0QL9Og_7_6"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">32273000</us-gaap:AmortizationOfIntangibleAssets>
    <us-gaap:Depreciation
      contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ"
      decimals="-3"
      id="Tc_R4v2k2NNzESEPqcZ3nAIlg_8_3"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">35377000</us-gaap:Depreciation>
    <us-gaap:Depreciation
      contextRef="Duration_1_1_2023_To_9_30_2023_0vpBpKZIxEC_KY5z5G8rKA"
      decimals="-3"
      id="Tc_CQUlV_XAmE2kOHzrEHd_7w_8_6"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">27717000</us-gaap:Depreciation>
    <fix:ChangeInRightOfUseAssets
      contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ"
      decimals="-3"
      id="Tc_9gz_fqKIgEqBtn8ry_ZFUg_9_3"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">22400000</fix:ChangeInRightOfUseAssets>
    <fix:ChangeInRightOfUseAssets
      contextRef="Duration_1_1_2023_To_9_30_2023_0vpBpKZIxEC_KY5z5G8rKA"
      decimals="-3"
      id="Tc_9luKDIfV1UyCtl4aOi-ZKw_9_6"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">19630000</fix:ChangeInRightOfUseAssets>
    <us-gaap:ProvisionForDoubtfulAccounts
      contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ"
      decimals="-3"
      id="Tc_mxkYTwmUNk-U_PSSFZyYXw_10_3"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">5464000</us-gaap:ProvisionForDoubtfulAccounts>
    <us-gaap:ProvisionForDoubtfulAccounts
      contextRef="Duration_1_1_2023_To_9_30_2023_0vpBpKZIxEC_KY5z5G8rKA"
      decimals="-3"
      id="Tc_1etGKaieZ06LfoMmkKES3w_10_6"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">2849000</us-gaap:ProvisionForDoubtfulAccounts>
    <us-gaap:DeferredIncomeTaxExpenseBenefit
      contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ"
      decimals="-3"
      id="Tc_1qBCXxujIk-CWYIa6Rg3Kg_11_3"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">-32511000</us-gaap:DeferredIncomeTaxExpenseBenefit>
    <us-gaap:DeferredIncomeTaxExpenseBenefit
      contextRef="Duration_1_1_2023_To_9_30_2023_0vpBpKZIxEC_KY5z5G8rKA"
      decimals="-3"
      id="Tc_c6xjI-DD0kqNhipjzwjpnA_11_6"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">116355000</us-gaap:DeferredIncomeTaxExpenseBenefit>
    <us-gaap:AmortizationOfFinancingCosts
      contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ"
      decimals="-3"
      id="Tc_G_FzZciztEixK80t9Y3JPA_12_3"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">514000</us-gaap:AmortizationOfFinancingCosts>
    <us-gaap:AmortizationOfFinancingCosts
      contextRef="Duration_1_1_2023_To_9_30_2023_0vpBpKZIxEC_KY5z5G8rKA"
      decimals="-3"
      id="Tc_f-imaEUOS02HdW_g7PpO7w_12_6"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">512000</us-gaap:AmortizationOfFinancingCosts>
    <us-gaap:GainLossOnSaleOfPropertyPlantEquipment
      contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ"
      decimals="-3"
      id="Tc_Ta_ZQG46J0iUD4xbgEizoA_13_3"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">2778000</us-gaap:GainLossOnSaleOfPropertyPlantEquipment>
    <us-gaap:GainLossOnSaleOfPropertyPlantEquipment
      contextRef="Duration_1_1_2023_To_9_30_2023_0vpBpKZIxEC_KY5z5G8rKA"
      decimals="-3"
      id="Tc_i7_Wji99iEWvdyHKx2ziKg_13_6"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">1683000</us-gaap:GainLossOnSaleOfPropertyPlantEquipment>
    <us-gaap:BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1
      contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ"
      decimals="-3"
      id="Tc_ZfSeBeiN8U6VSieHTefXcQ_14_3"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">44434000</us-gaap:BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1>
    <us-gaap:BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1
      contextRef="Duration_1_1_2023_To_9_30_2023_0vpBpKZIxEC_KY5z5G8rKA"
      decimals="-3"
      id="Tc_x-PhSYPEZECEUXEPpFXG6w_14_6"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">14207000</us-gaap:BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1>
    <us-gaap:ShareBasedCompensation
      contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ"
      decimals="-3"
      id="Tc_xA-8ts_RC0O5woBRKcdo8Q_15_3"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">12129000</us-gaap:ShareBasedCompensation>
    <us-gaap:ShareBasedCompensation
      contextRef="Duration_1_1_2023_To_9_30_2023_0vpBpKZIxEC_KY5z5G8rKA"
      decimals="-3"
      id="Tc_So_70s7cfEuYjer8PyGyYw_15_6"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">9128000</us-gaap:ShareBasedCompensation>
    <us-gaap:IncreaseDecreaseInAccountsReceivable
      contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ"
      decimals="-3"
      id="Tc_Ht6DLp3SPUm718t3eHcqVQ_18_3"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">262958000</us-gaap:IncreaseDecreaseInAccountsReceivable>
    <us-gaap:IncreaseDecreaseInAccountsReceivable
      contextRef="Duration_1_1_2023_To_9_30_2023_0vpBpKZIxEC_KY5z5G8rKA"
      decimals="-3"
      id="Tc_OINxaQR5UE-UucOyexl0qA_18_6"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">376282000</us-gaap:IncreaseDecreaseInAccountsReceivable>
    <us-gaap:IncreaseDecreaseInInventories
      contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ"
      decimals="-3"
      id="Tc_EtpUIFKhzkO_zQYH5glvLg_19_3"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">-10088000</us-gaap:IncreaseDecreaseInInventories>
    <us-gaap:IncreaseDecreaseInInventories
      contextRef="Duration_1_1_2023_To_9_30_2023_0vpBpKZIxEC_KY5z5G8rKA"
      decimals="-3"
      id="Tc_jOISUWmOZ0KHHRTT9dKG1A_19_6"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">18272000</us-gaap:IncreaseDecreaseInInventories>
    <us-gaap:IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets
      contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ"
      decimals="-3"
      id="Tc_3yiGOQWMJ0W5pnEmgInVpQ_20_3"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">-15174000</us-gaap:IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets>
    <us-gaap:IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets
      contextRef="Duration_1_1_2023_To_9_30_2023_0vpBpKZIxEC_KY5z5G8rKA"
      decimals="-3"
      id="Tc_GAzf97NwE0CoGGONUXyqqw_20_6"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">-2504000</us-gaap:IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets>
    <us-gaap:IncreaseDecreaseInContractWithCustomerAsset
      contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ"
      decimals="-3"
      id="Tc_dE8ixuDOrkaEchTjxwfZzg_21_3"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">58473000</us-gaap:IncreaseDecreaseInContractWithCustomerAsset>
    <us-gaap:IncreaseDecreaseInContractWithCustomerAsset
      contextRef="Duration_1_1_2023_To_9_30_2023_0vpBpKZIxEC_KY5z5G8rKA"
      decimals="-3"
      id="Tc_s2hP2Upxe0qaldp-wzW0Hg_21_6"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">5326000</us-gaap:IncreaseDecreaseInContractWithCustomerAsset>
    <us-gaap:IncreaseDecreaseInOtherOperatingAssets
      contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ"
      decimals="-3"
      id="Tc_EUcZXUV1AUWbT8AqhNv6BQ_22_3"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">1882000</us-gaap:IncreaseDecreaseInOtherOperatingAssets>
    <us-gaap:IncreaseDecreaseInOtherOperatingAssets
      contextRef="Duration_1_1_2023_To_9_30_2023_0vpBpKZIxEC_KY5z5G8rKA"
      decimals="-3"
      id="Tc_Enuhg5gjZ0qHJ3k_l81skA_22_6"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">247000</us-gaap:IncreaseDecreaseInOtherOperatingAssets>
    <us-gaap:IncreaseDecreaseInAccountsPayableAndAccruedLiabilities
      contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ"
      decimals="-3"
      id="Tc_IF-qkkO1HU-KBN0J8RrW8g_24_3"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">323756000</us-gaap:IncreaseDecreaseInAccountsPayableAndAccruedLiabilities>
    <us-gaap:IncreaseDecreaseInAccountsPayableAndAccruedLiabilities
      contextRef="Duration_1_1_2023_To_9_30_2023_0vpBpKZIxEC_KY5z5G8rKA"
      decimals="-3"
      id="Tc_VRWLdfvbikm-Es_G5xo8DA_24_6"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">185382000</us-gaap:IncreaseDecreaseInAccountsPayableAndAccruedLiabilities>
    <us-gaap:IncreaseDecreaseInContractWithCustomerLiability
      contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ"
      decimals="-3"
      id="Tc_YlMuq8OEkESqve-GEOIVQg_25_3"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">80448000</us-gaap:IncreaseDecreaseInContractWithCustomerLiability>
    <us-gaap:IncreaseDecreaseInContractWithCustomerLiability
      contextRef="Duration_1_1_2023_To_9_30_2023_0vpBpKZIxEC_KY5z5G8rKA"
      decimals="-3"
      id="Tc_TXHaqWqjF02s74G-509YeA_25_6"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">217148000</us-gaap:IncreaseDecreaseInContractWithCustomerLiability>
    <us-gaap:IncreaseDecreaseInOtherOperatingLiabilities
      contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ"
      decimals="-3"
      id="Tc_1Vk651xgIkyOFhaJEknbEw_26_3"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">-4375000</us-gaap:IncreaseDecreaseInOtherOperatingLiabilities>
    <us-gaap:IncreaseDecreaseInOtherOperatingLiabilities
      contextRef="Duration_1_1_2023_To_9_30_2023_0vpBpKZIxEC_KY5z5G8rKA"
      decimals="-3"
      id="Tc_OSDVXxB1vUqNqNxL26M_aA_26_6"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">8848000</us-gaap:IncreaseDecreaseInOtherOperatingLiabilities>
    <us-gaap:NetCashProvidedByUsedInOperatingActivities
      contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ"
      decimals="-3"
      id="Tc_wuiiFSvVpU23in5DMat6Kw_27_3"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">638594000</us-gaap:NetCashProvidedByUsedInOperatingActivities>
    <us-gaap:NetCashProvidedByUsedInOperatingActivities
      contextRef="Duration_1_1_2023_To_9_30_2023_0vpBpKZIxEC_KY5z5G8rKA"
      decimals="-3"
      id="Tc_0IDNxSGj-U2x0FYWSffPJw_27_6"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">466560000</us-gaap:NetCashProvidedByUsedInOperatingActivities>
    <us-gaap:PaymentsToAcquirePropertyPlantAndEquipment
      contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ"
      decimals="-3"
      id="Tc_riq2KdFOjEy1fU0fLXXXcg_29_3"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">70395000</us-gaap:PaymentsToAcquirePropertyPlantAndEquipment>
    <us-gaap:PaymentsToAcquirePropertyPlantAndEquipment
      contextRef="Duration_1_1_2023_To_9_30_2023_0vpBpKZIxEC_KY5z5G8rKA"
      decimals="-3"
      id="Tc_eGZsaQvP-0a0EBVAzQF6aw_29_6"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">69574000</us-gaap:PaymentsToAcquirePropertyPlantAndEquipment>
    <us-gaap:ProceedsFromSaleOfPropertyPlantAndEquipment
      contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ"
      decimals="-3"
      id="Tc_F2zZP08HfEWS60NCxUeT9A_30_3"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">3611000</us-gaap:ProceedsFromSaleOfPropertyPlantAndEquipment>
    <us-gaap:ProceedsFromSaleOfPropertyPlantAndEquipment
      contextRef="Duration_1_1_2023_To_9_30_2023_0vpBpKZIxEC_KY5z5G8rKA"
      decimals="-3"
      id="Tc_PSb0tMMmakWNsGnFndYOdw_30_6"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">5093000</us-gaap:ProceedsFromSaleOfPropertyPlantAndEquipment>
    <us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired
      contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ"
      decimals="-3"
      id="Tc_E6QZ-aJxtkyF5QzeFTiyhQ_31_3"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">235466000</us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired>
    <us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired
      contextRef="Duration_1_1_2023_To_9_30_2023_0vpBpKZIxEC_KY5z5G8rKA"
      decimals="-3"
      id="Tc_-Zrucd3PgEaOsO8D36xU5g_31_6"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">53404000</us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired>
    <us-gaap:PaymentsToAcquireInvestments
      contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ"
      decimals="-3"
      id="Tc_WA6iXfLF8EanYlo0wx99ZA_32_3"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">1770000</us-gaap:PaymentsToAcquireInvestments>
    <us-gaap:PaymentsToAcquireInvestments
      contextRef="Duration_1_1_2023_To_9_30_2023_0vpBpKZIxEC_KY5z5G8rKA"
      decimals="-3"
      id="Tc_zhE0jQiYg0OXaQUP3ZhRiw_32_6"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">1240000</us-gaap:PaymentsToAcquireInvestments>
    <us-gaap:NetCashProvidedByUsedInInvestingActivities
      contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ"
      decimals="-3"
      id="Tc_xLdiekFYC02z2Br7ABY43g_33_3"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">-304020000</us-gaap:NetCashProvidedByUsedInInvestingActivities>
    <us-gaap:NetCashProvidedByUsedInInvestingActivities
      contextRef="Duration_1_1_2023_To_9_30_2023_0vpBpKZIxEC_KY5z5G8rKA"
      decimals="-3"
      id="Tc_OvLflfM7_06n8BRteL-0jw_33_6"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">-119125000</us-gaap:NetCashProvidedByUsedInInvestingActivities>
    <us-gaap:ProceedsFromLongTermLinesOfCredit
      contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ"
      decimals="-3"
      id="Tc_C6dfJCvecES62T3G_t9u-w_35_3"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">182000000</us-gaap:ProceedsFromLongTermLinesOfCredit>
    <us-gaap:ProceedsFromLongTermLinesOfCredit
      contextRef="Duration_1_1_2023_To_9_30_2023_0vpBpKZIxEC_KY5z5G8rKA"
      decimals="-3"
      id="Tc_CvlwarWVIE2l_k9I0AWFvQ_35_6"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">285000000</us-gaap:ProceedsFromLongTermLinesOfCredit>
    <us-gaap:RepaymentsOfLongTermLinesOfCredit
      contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ"
      decimals="-3"
      id="Tc_I_M0iZxs5kakIrhMIZSaSg_36_3"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">182000000</us-gaap:RepaymentsOfLongTermLinesOfCredit>
    <us-gaap:RepaymentsOfLongTermLinesOfCredit
      contextRef="Duration_1_1_2023_To_9_30_2023_0vpBpKZIxEC_KY5z5G8rKA"
      decimals="-3"
      id="Tc_tzOvNvNNf0iick2BZ45YYA_36_6"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">500000000</us-gaap:RepaymentsOfLongTermLinesOfCredit>
    <us-gaap:ProceedsFromOtherDebt
      contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ"
      decimals="-3"
      id="Tc_3-HCa1Krg0WwymFimZgsyA_37_3"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">640000</us-gaap:ProceedsFromOtherDebt>
    <us-gaap:RepaymentsOfOtherDebt
      contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ"
      decimals="-3"
      id="Tc_chyhNOvmbEeKL5OBzvJc_Q_38_3"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">26550000</us-gaap:RepaymentsOfOtherDebt>
    <us-gaap:RepaymentsOfOtherDebt
      contextRef="Duration_1_1_2023_To_9_30_2023_0vpBpKZIxEC_KY5z5G8rKA"
      decimals="-3"
      id="Tc_FyEvdHSCUEOtMoM_bBP4MA_38_6"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">1980000</us-gaap:RepaymentsOfOtherDebt>
    <us-gaap:PaymentsOfDividendsCommonStock
      contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ"
      decimals="-3"
      id="Tc_kod6XNjEj063_sgScxFHGQ_39_3"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">30322000</us-gaap:PaymentsOfDividendsCommonStock>
    <us-gaap:PaymentsOfDividendsCommonStock
      contextRef="Duration_1_1_2023_To_9_30_2023_0vpBpKZIxEC_KY5z5G8rKA"
      decimals="-3"
      id="Tc_Hxi-HEC2NkK77DIyYzfKbQ_39_6"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">21455000</us-gaap:PaymentsOfDividendsCommonStock>
    <us-gaap:PaymentsForRepurchaseOfCommonStock
      contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ"
      decimals="-3"
      id="Tc_PWvhtcBdaEaBe7PY-ZI-Vg_40_3"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">42024000</us-gaap:PaymentsForRepurchaseOfCommonStock>
    <us-gaap:PaymentsForRepurchaseOfCommonStock
      contextRef="Duration_1_1_2023_To_9_30_2023_0vpBpKZIxEC_KY5z5G8rKA"
      decimals="-3"
      id="Tc_LXmv8FFvWUOAfItzZsLjZA_40_6"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">8563000</us-gaap:PaymentsForRepurchaseOfCommonStock>
    <us-gaap:PaymentsRelatedToTaxWithholdingForShareBasedCompensation
      contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ"
      decimals="-3"
      id="Tc_uxTRYTJi1EmqZua0TLuJrA_41_3"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">7292000</us-gaap:PaymentsRelatedToTaxWithholdingForShareBasedCompensation>
    <us-gaap:PaymentsRelatedToTaxWithholdingForShareBasedCompensation
      contextRef="Duration_1_1_2023_To_9_30_2023_0vpBpKZIxEC_KY5z5G8rKA"
      decimals="-3"
      id="Tc_RzPXdMZw_0uRcnXXAlhWnA_41_6"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">4725000</us-gaap:PaymentsRelatedToTaxWithholdingForShareBasedCompensation>
    <us-gaap:ProceedsFromStockOptionsExercised
      contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ"
      decimals="-3"
      id="Tc_hgwY9VPdiUy8Hu77sugoLg_42_3"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">27000</us-gaap:ProceedsFromStockOptionsExercised>
    <us-gaap:ProceedsFromStockOptionsExercised
      contextRef="Duration_1_1_2023_To_9_30_2023_0vpBpKZIxEC_KY5z5G8rKA"
      decimals="-3"
      id="Tc_QcmECcVcFUKB4g--GnJk8Q_42_6"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">18000</us-gaap:ProceedsFromStockOptionsExercised>
    <fix:DeferredAcquisitionPayments
      contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ"
      decimals="-3"
      id="Tc_BOjmGb6bmE65JEavGR9OSg_43_3"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">50000</fix:DeferredAcquisitionPayments>
    <us-gaap:PaymentForContingentConsiderationLiabilityFinancingActivities
      contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ"
      decimals="-3"
      id="Tc_cQOYMHv-PU6zZbnMPmUZvg_44_3"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">18570000</us-gaap:PaymentForContingentConsiderationLiabilityFinancingActivities>
    <us-gaap:PaymentForContingentConsiderationLiabilityFinancingActivities
      contextRef="Duration_1_1_2023_To_9_30_2023_0vpBpKZIxEC_KY5z5G8rKA"
      decimals="-3"
      id="Tc_K_eJKLIU0EG-ltDjxFPGaQ_44_6"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">15321000</us-gaap:PaymentForContingentConsiderationLiabilityFinancingActivities>
    <us-gaap:NetCashProvidedByUsedInFinancingActivities
      contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ"
      decimals="-3"
      id="Tc_SWptHVIlBEe5PQV1E5WW_g_45_3"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">-124141000</us-gaap:NetCashProvidedByUsedInFinancingActivities>
    <us-gaap:NetCashProvidedByUsedInFinancingActivities
      contextRef="Duration_1_1_2023_To_9_30_2023_0vpBpKZIxEC_KY5z5G8rKA"
      decimals="-3"
      id="Tc_Gi8EpTQQtU2rP_rjB2p6yw_45_6"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">-267026000</us-gaap:NetCashProvidedByUsedInFinancingActivities>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect
      contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ"
      decimals="-3"
      id="Tc_SZRb6scRskS5-srOETIFdg_46_3"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">210433000</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect
      contextRef="Duration_1_1_2023_To_9_30_2023_0vpBpKZIxEC_KY5z5G8rKA"
      decimals="-3"
      id="Tc_GL_ptS3WqkGGaMpHqtd7Ow_46_6"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">80409000</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents
      contextRef="As_Of_12_31_2023_X7eqeHRTF0mRLJW7InVDdA"
      decimals="-3"
      id="Tc_NpE5roUqNkmD5lEKD99uyA_47_3"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">205150000</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents
      contextRef="As_Of_12_31_2022_-q309bsKT0i3jZ5ZPwDgew"
      decimals="-3"
      id="Tc_IysSzLkAr06BHfRT-NoXaw_47_6"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">57214000</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents
      contextRef="As_Of_9_30_2024_um13j0l3zk2ITGaiED1DFA"
      decimals="-3"
      id="Tc_bfCxh2YZD02aq9S_8UImsg_48_3"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">415583000</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents
      contextRef="As_Of_9_30_2023_Cz0YiFrEwkyvL950Hk4Vxw"
      decimals="-3"
      id="Tc_Ij1HsvgYQkeCxSV57_IuRg_48_6"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">137623000</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents>
    <us-gaap:NatureOfOperations
      contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ"
      id="Tb_dK0UbZM5bkyDuUmkyBYhlw">&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;1. Business and Organization&lt;/b&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"&gt;Comfort Systems USA, Inc., a Delaware corporation, provides comprehensive mechanical and electrical contracting services, which principally includes heating, ventilation and air conditioning (&#x201c;HVAC&#x201d;), plumbing, electrical, piping and controls, as well as off-site construction, monitoring and fire protection. We build, install, maintain, repair and replace mechanical, electrical and plumbing (&#x201c;MEP&#x201d;) systems throughout the United States. The terms &#x201c;Comfort Systems,&#x201d; &#x201c;we,&#x201d; &#x201c;us,&#x201d; or the &#x201c;Company,&#x201d; refer to Comfort Systems USA,&#160;Inc. or Comfort Systems USA,&#160;Inc. and its consolidated subsidiaries, as appropriate in the context.&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;</us-gaap:NatureOfOperations>
    <us-gaap:BasisOfPresentationAndSignificantAccountingPoliciesTextBlock
      contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ"
      id="Tb_wbw08kSFckq-MATUzfnvZg">&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;2. Summary of Significant Accounting Policies and Estimates&lt;/b&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 0pt 36pt;"&gt;&lt;span style="font-style:italic;font-weight:bold;margin-left:0pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 0pt 36pt;"&gt;&lt;span style="font-style:italic;font-weight:bold;"&gt;Basis of Presentation&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"&gt;These interim statements should be read in conjunction with the historical Consolidated Financial Statements and related notes of Comfort Systems included in the Annual Report on Form&#160;10-K as filed with the Securities and Exchange Commission (&#x201c;SEC&#x201d;) for the year ended December 31, 2023 (the &#x201c;Form&#160;10-K&#x201d;).&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"&gt;The accompanying unaudited consolidated financial statements were prepared using generally accepted accounting principles for interim financial information and the instructions to Form&#160;10-Q and applicable rules of Regulation&#160;S-X of the SEC. Accordingly, these financial statements do not include all the footnotes required by generally accepted accounting principles for complete financial statements and should be read in conjunction with the Form&#160;10-K. We believe all adjustments necessary for a fair presentation of these interim statements have been included and are of a normal and recurring nature. The results of operations for interim periods are not necessarily indicative of the results for the full fiscal year. &lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 0pt 36pt;"&gt;&lt;span style="font-style:italic;font-weight:bold;"&gt;Use of Estimates&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"&gt;The preparation of financial statements in conformity with generally accepted accounting principles requires the use of estimates and assumptions by management in determining the reported amounts of assets and liabilities, revenue and expenses and disclosures regarding contingent assets and liabilities. Actual results could differ from those estimates. The most significant estimates used in our financial statements affect revenue and cost recognition for construction contracts, self-insurance accruals, accounting for income taxes, fair value accounting for acquisitions and the quantification of fair value for reporting units in connection with our goodwill impairment testing. &lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 0pt 36pt;"&gt;&lt;span style="font-style:italic;font-weight:bold;"&gt;Recent Accounting Pronouncements&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-style:italic;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"&gt;&lt;i style="font-style:italic;"&gt;Recent Accounting Pronouncements Not Yet Adopted&lt;/i&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"&gt;In November 2023, the Financial Accounting Standards Board (&#x201c;FASB&#x201d;) issued ASU 2023-07, &#x201c;Segment Reporting (Topic 280): Improvements to Reportable Segment Disclosures.&#x201d; This standard requires entities to disclose, on an annual and interim basis, significant segment expenses that are regularly provided to the chief decision maker and included within each reported measure of segment profit and loss. ASU 2023-07 is effective for fiscal years beginning after December 15, 2023, and interim periods within fiscal years beginning after December 15, 2024. Early adoption is permitted. ASU 2023-07 will not have an impact on our consolidated financial position, results of operations or cash flows, but will affect our financial statement disclosures as discussed above.&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"&gt;In December 2023, the FASB issued ASU 2023-09, &#x201c;Income Taxes (Topic 740): Improvements to Income Tax Disclosures.&#x201d; &lt;span style="background:#ffffff;"&gt;This standard requires entities to disclose more detailed information in the reconciliation of their statutory &lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="background:#ffffff;"&gt;tax rate to their effective tax rate. The standard also requires entities to make additional disclosures on income taxes paid as well as on certain income statement-related items. ASU 2023-09 is effective for fiscal years beginning after December 15, 2024&lt;/span&gt;&lt;span style="background:#ffffff;"&gt;.&lt;/span&gt;&lt;span style="background:#ffffff;"&gt; Early adoption is permitted. This standard will not have an impact on our consolidated financial position, results of operations or cash flows, but will affect our financial statement disclosures as discussed above.&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"&gt;&lt;span style="font-style:italic;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 0pt 36pt;"&gt;&lt;span style="font-style:italic;font-weight:bold;"&gt;Revenue Recognition&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"&gt;We recognize revenue over time for all of our services as we perform them because (i) control continuously transfers to that customer as work progresses, and (ii) we have the right to bill the customer as costs are incurred. The customer typically controls the work in process, as evidenced either by contractual termination clauses or by our rights to payment for work performed to date, plus a reasonable profit, for delivery of products or services that do not have an alternative use to the Company.&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"&gt;&lt;span style="white-space:pre-wrap;"&gt; For the reasons listed above, revenue is recognized based on the extent of progress towards completion of the performance obligation. The selection of the method to measure progress towards completion requires judgment and is based on the nature of the products or services to be provided. We generally use a cost-to-cost input method to measure our progress towards satisfaction of the performance obligation for our contracts, as it best depicts the transfer of assets to the customer that occurs as we incur costs on our contracts. Under the cost-to-cost input method, the extent of progress towards completion is measured based on the ratio of costs incurred to date to the total estimated costs at completion of the performance obligation. Revenue, including estimated fees or profits, is recorded proportionally as costs are incurred. Costs to fulfill include labor, materials, subcontractors&#x2019; costs, other direct costs and an allocation of indirect costs.&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"&gt;For a small portion of our business in which our services are delivered in the form of service maintenance agreements for existing systems to be repaired and maintained, as opposed to constructed, our performance obligation is to maintain the customer&#x2019;s mechanical system for a specific period of time. Similar to construction jobs, we recognize revenue over time; however, for service maintenance agreements in which the full cost to provide services may not be known, we generally use an input method to recognize revenue, which is based on the amount of time we have provided our services out of the total time we have been contracted to perform those services. Our revenue recognition policy is further discussed in Note&#160;3 &#x201c;Revenue from Contracts with Customers.&#x201d;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"&gt;&lt;span style="font-style:italic;font-weight:bold;"&gt;Accounts Receivable and Allowance for Credit Losses&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"&gt;We are required to estimate and record the expected credit losses over the contractual life of our financial assets measured at amortized cost, including billed and unbilled accounts receivable, other receivables and contract assets. Accounts receivable include amounts from work completed in which we have billed or have an unconditional right to bill our customers. Our trade receivables are contractually due in less than a year.&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"&gt;We estimate our credit losses using a loss-rate method for each of our identified portfolio segments. Our portfolio segments are construction, service and other. While our construction and service financial assets are often with the same subset of customers and industries, our construction financial assets will generally have a lower loss-rate than service financial assets due to lien rights, which we are more likely to have on construction jobs. These lien rights result in lower credit loss expenses on average compared to receivables that do not have lien rights. Financial assets classified as &#x201c;other&#x201d; include receivables that are not related to our core revenue producing activities, such as receivables related to our acquisition activity from former owners, our vendor rebate program or receivables for estimated losses in excess of our insurance deductible, which are accrued with a corresponding accrued insurance liability.&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"&gt;Loss rates for our portfolios are based on numerous factors, including our history of credit loss expense by portfolio, the financial strength of our customers and counterparties in each portfolio, the aging of our receivables, our expectation of likelihood of payment, macroeconomic trends in the U.S. and the current and forecasted nonresidential construction market trends in the U.S.&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"&gt;In addition to the loss-rate calculations discussed above, we also record allowance for credit losses for specific receivables that are deemed to have a higher risk profile than the rest of the respective pool of receivables (&lt;i style="font-style:italic;"&gt;e.g.&lt;/i&gt;, when we hold concerns about a specific customer going bankrupt and no longer being able to pay the receivables due to us).&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"&gt;&lt;span style="font-style:italic;font-weight:bold;"&gt;Unbilled Accounts Receivable&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"&gt;Unbilled accounts receivable are amounts due to us that we have earned under a contract where our right to payment is unconditional. A right to consideration is unconditional if only the passage of time is required before payment of the consideration is due. &lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"&gt;&lt;span style="font-style:italic;font-weight:bold;"&gt;Income Taxes&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"&gt;We conduct business throughout the United States in virtually all fifty states. Our effective tax rate changes based upon our relative profitability, or lack thereof, in the federal and various state jurisdictions with differing tax rates and rules. In addition, discrete items such as tax law changes, judgments and legal structures, can impact our effective tax rate. These items can also include the tax treatment for impairment of goodwill and other intangible assets, changes in fair value of acquisition-related assets and liabilities, uncertain tax positions, and accounting for losses associated with underperforming operations. &lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"&gt;The Inflation Reduction Act was enacted on August 16, 2022. This law, among other provisions, provides a corporate alternative minimum tax on adjusted financial statement income over $1 billion, which is effective for tax years beginning after December 31, 2022, and a 1% excise tax on net corporate stock repurchases after December 31, 2022. The impact of the excise tax is recorded in &#x201c;Treasury Stock&#x201d; within our Consolidated Balance Sheet. These provisions were not material to our current year overall financial results, financial position and cash flows. &lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"&gt;In early September 2023, the IRS issued interim guidance addressing, together with other topics, the treatment of research and experimental (&#x201c;R&amp;amp;E&#x201d;) expenditures for taxpayers using the percentage of completion method to account for taxable income from long-term contracts. We relied on such guidance for the 2022 tax year, and the resultant reduction in taxable revenue offsets the deferral of tax deductions for R&amp;amp;E expenditures pursuant to the Tax Cuts and Jobs Act (2017) for the 2022 tax year. We filed our 2022 federal tax return in October 2023 requesting a refund of our $107.1 million overpayment, which had not been received as of September 30, 2024.&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"&gt;&lt;span style="font-style:italic;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"&gt;&lt;span style="font-style:italic;font-weight:bold;"&gt;Financial Instruments&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;"&gt;Our financial instruments consist of cash and cash equivalents, accounts receivable, other receivables, accounts payable and life insurance policies, for which we deem the carrying values approximate their fair values due to the short-term nature of these instruments, as well as notes to former owners and a revolving credit facility. &lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"&gt;&lt;span style="font-style:italic;font-weight:bold;"&gt;Investments&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"&gt;We have a $6.1 million investment in a construction-focused technology fund with a fair value that is not readily determinable and is recorded at cost. This investment is included in &#x201c;Other Noncurrent Assets&#x201d; in our Consolidated Balance Sheet and is reviewed quarterly for impairment.&#160;We did not recognize any impairments in the current year related to this investment.&lt;/p&gt;</us-gaap:BasisOfPresentationAndSignificantAccountingPoliciesTextBlock>
    <us-gaap:BasisOfAccountingPolicyPolicyTextBlock
      contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ"
      id="Tb_CHTKuwZCzUKxIHzX-Zectg">&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 0pt 36pt;"&gt;&lt;span style="font-style:italic;font-weight:bold;"&gt;Basis of Presentation&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"&gt;These interim statements should be read in conjunction with the historical Consolidated Financial Statements and related notes of Comfort Systems included in the Annual Report on Form&#160;10-K as filed with the Securities and Exchange Commission (&#x201c;SEC&#x201d;) for the year ended December 31, 2023 (the &#x201c;Form&#160;10-K&#x201d;).&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"&gt;The accompanying unaudited consolidated financial statements were prepared using generally accepted accounting principles for interim financial information and the instructions to Form&#160;10-Q and applicable rules of Regulation&#160;S-X of the SEC. Accordingly, these financial statements do not include all the footnotes required by generally accepted accounting principles for complete financial statements and should be read in conjunction with the Form&#160;10-K. We believe all adjustments necessary for a fair presentation of these interim statements have been included and are of a normal and recurring nature. The results of operations for interim periods are not necessarily indicative of the results for the full fiscal year. &lt;/p&gt;</us-gaap:BasisOfAccountingPolicyPolicyTextBlock>
    <us-gaap:UseOfEstimates
      contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ"
      id="Tb_0xHwRSxFBUyvscHGvqcaIQ">&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 0pt 36pt;"&gt;&lt;span style="font-style:italic;font-weight:bold;"&gt;Use of Estimates&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"&gt;The preparation of financial statements in conformity with generally accepted accounting principles requires the use of estimates and assumptions by management in determining the reported amounts of assets and liabilities, revenue and expenses and disclosures regarding contingent assets and liabilities. Actual results could differ from those estimates. The most significant estimates used in our financial statements affect revenue and cost recognition for construction contracts, self-insurance accruals, accounting for income taxes, fair value accounting for acquisitions and the quantification of fair value for reporting units in connection with our goodwill impairment testing. &lt;/p&gt;</us-gaap:UseOfEstimates>
    <us-gaap:NewAccountingPronouncementsPolicyPolicyTextBlock
      contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ"
      id="Tb_Y3LR4n62ukiLugvZiJHFGQ">&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 0pt 36pt;"&gt;&lt;span style="font-style:italic;font-weight:bold;"&gt;Recent Accounting Pronouncements&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-style:italic;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"&gt;&lt;i style="font-style:italic;"&gt;Recent Accounting Pronouncements Not Yet Adopted&lt;/i&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"&gt;In November 2023, the Financial Accounting Standards Board (&#x201c;FASB&#x201d;) issued ASU 2023-07, &#x201c;Segment Reporting (Topic 280): Improvements to Reportable Segment Disclosures.&#x201d; This standard requires entities to disclose, on an annual and interim basis, significant segment expenses that are regularly provided to the chief decision maker and included within each reported measure of segment profit and loss. ASU 2023-07 is effective for fiscal years beginning after December 15, 2023, and interim periods within fiscal years beginning after December 15, 2024. Early adoption is permitted. ASU 2023-07 will not have an impact on our consolidated financial position, results of operations or cash flows, but will affect our financial statement disclosures as discussed above.&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"&gt;In December 2023, the FASB issued ASU 2023-09, &#x201c;Income Taxes (Topic 740): Improvements to Income Tax Disclosures.&#x201d; &lt;span style="background:#ffffff;"&gt;This standard requires entities to disclose more detailed information in the reconciliation of their statutory &lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="background:#ffffff;"&gt;tax rate to their effective tax rate. The standard also requires entities to make additional disclosures on income taxes paid as well as on certain income statement-related items. ASU 2023-09 is effective for fiscal years beginning after December 15, 2024&lt;/span&gt;&lt;span style="background:#ffffff;"&gt;.&lt;/span&gt;&lt;span style="background:#ffffff;"&gt; Early adoption is permitted. This standard will not have an impact on our consolidated financial position, results of operations or cash flows, but will affect our financial statement disclosures as discussed above.&lt;/span&gt;&lt;/p&gt;</us-gaap:NewAccountingPronouncementsPolicyPolicyTextBlock>
    <us-gaap:RevenueFromContractWithCustomerPolicyTextBlock
      contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ"
      id="Tb_hmcWVkel-kqEMru8wlyncw">&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 0pt 36pt;"&gt;&lt;span style="font-style:italic;font-weight:bold;"&gt;Revenue Recognition&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"&gt;We recognize revenue over time for all of our services as we perform them because (i) control continuously transfers to that customer as work progresses, and (ii) we have the right to bill the customer as costs are incurred. The customer typically controls the work in process, as evidenced either by contractual termination clauses or by our rights to payment for work performed to date, plus a reasonable profit, for delivery of products or services that do not have an alternative use to the Company.&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"&gt;&lt;span style="white-space:pre-wrap;"&gt; For the reasons listed above, revenue is recognized based on the extent of progress towards completion of the performance obligation. The selection of the method to measure progress towards completion requires judgment and is based on the nature of the products or services to be provided. We generally use a cost-to-cost input method to measure our progress towards satisfaction of the performance obligation for our contracts, as it best depicts the transfer of assets to the customer that occurs as we incur costs on our contracts. Under the cost-to-cost input method, the extent of progress towards completion is measured based on the ratio of costs incurred to date to the total estimated costs at completion of the performance obligation. Revenue, including estimated fees or profits, is recorded proportionally as costs are incurred. Costs to fulfill include labor, materials, subcontractors&#x2019; costs, other direct costs and an allocation of indirect costs.&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"&gt;For a small portion of our business in which our services are delivered in the form of service maintenance agreements for existing systems to be repaired and maintained, as opposed to constructed, our performance obligation is to maintain the customer&#x2019;s mechanical system for a specific period of time. Similar to construction jobs, we recognize revenue over time; however, for service maintenance agreements in which the full cost to provide services may not be known, we generally use an input method to recognize revenue, which is based on the amount of time we have provided our services out of the total time we have been contracted to perform those services. Our revenue recognition policy is further discussed in Note&#160;3 &#x201c;Revenue from Contracts with Customers.&#x201d;&lt;/p&gt;</us-gaap:RevenueFromContractWithCustomerPolicyTextBlock>
    <us-gaap:CreditLossFinancialInstrumentPolicyTextBlock
      contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ"
      id="Tb_HfBiHoAj2kSw2jM4hpSg6w">&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"&gt;&lt;span style="font-style:italic;font-weight:bold;"&gt;Accounts Receivable and Allowance for Credit Losses&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"&gt;We are required to estimate and record the expected credit losses over the contractual life of our financial assets measured at amortized cost, including billed and unbilled accounts receivable, other receivables and contract assets. Accounts receivable include amounts from work completed in which we have billed or have an unconditional right to bill our customers. Our trade receivables are contractually due in less than a year.&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"&gt;We estimate our credit losses using a loss-rate method for each of our identified portfolio segments. Our portfolio segments are construction, service and other. While our construction and service financial assets are often with the same subset of customers and industries, our construction financial assets will generally have a lower loss-rate than service financial assets due to lien rights, which we are more likely to have on construction jobs. These lien rights result in lower credit loss expenses on average compared to receivables that do not have lien rights. Financial assets classified as &#x201c;other&#x201d; include receivables that are not related to our core revenue producing activities, such as receivables related to our acquisition activity from former owners, our vendor rebate program or receivables for estimated losses in excess of our insurance deductible, which are accrued with a corresponding accrued insurance liability.&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"&gt;Loss rates for our portfolios are based on numerous factors, including our history of credit loss expense by portfolio, the financial strength of our customers and counterparties in each portfolio, the aging of our receivables, our expectation of likelihood of payment, macroeconomic trends in the U.S. and the current and forecasted nonresidential construction market trends in the U.S.&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"&gt;In addition to the loss-rate calculations discussed above, we also record allowance for credit losses for specific receivables that are deemed to have a higher risk profile than the rest of the respective pool of receivables (&lt;i style="font-style:italic;"&gt;e.g.&lt;/i&gt;, when we hold concerns about a specific customer going bankrupt and no longer being able to pay the receivables due to us).&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;</us-gaap:CreditLossFinancialInstrumentPolicyTextBlock>
    <us-gaap:TradeAndOtherAccountsReceivableUnbilledReceivablesPolicy
      contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ"
      id="Tb_3dQG06Ai8kefT0wVpPeTsQ">&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"&gt;&lt;span style="font-style:italic;font-weight:bold;"&gt;Unbilled Accounts Receivable&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"&gt;Unbilled accounts receivable are amounts due to us that we have earned under a contract where our right to payment is unconditional. A right to consideration is unconditional if only the passage of time is required before payment of the consideration is due. &lt;/p&gt;</us-gaap:TradeAndOtherAccountsReceivableUnbilledReceivablesPolicy>
    <us-gaap:IncomeTaxPolicyTextBlock
      contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ"
      id="Tb_pAkXBAuUqEGwzozPpQ-XEA">&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"&gt;&lt;span style="font-style:italic;font-weight:bold;"&gt;Income Taxes&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"&gt;We conduct business throughout the United States in virtually all fifty states. Our effective tax rate changes based upon our relative profitability, or lack thereof, in the federal and various state jurisdictions with differing tax rates and rules. In addition, discrete items such as tax law changes, judgments and legal structures, can impact our effective tax rate. These items can also include the tax treatment for impairment of goodwill and other intangible assets, changes in fair value of acquisition-related assets and liabilities, uncertain tax positions, and accounting for losses associated with underperforming operations. &lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"&gt;The Inflation Reduction Act was enacted on August 16, 2022. This law, among other provisions, provides a corporate alternative minimum tax on adjusted financial statement income over $1 billion, which is effective for tax years beginning after December 31, 2022, and a 1% excise tax on net corporate stock repurchases after December 31, 2022. The impact of the excise tax is recorded in &#x201c;Treasury Stock&#x201d; within our Consolidated Balance Sheet. These provisions were not material to our current year overall financial results, financial position and cash flows. &lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"&gt;In early September 2023, the IRS issued interim guidance addressing, together with other topics, the treatment of research and experimental (&#x201c;R&amp;amp;E&#x201d;) expenditures for taxpayers using the percentage of completion method to account for taxable income from long-term contracts. We relied on such guidance for the 2022 tax year, and the resultant reduction in taxable revenue offsets the deferral of tax deductions for R&amp;amp;E expenditures pursuant to the Tax Cuts and Jobs Act (2017) for the 2022 tax year. We filed our 2022 federal tax return in October 2023 requesting a refund of our $107.1 million overpayment, which had not been received as of September 30, 2024.&lt;/p&gt;</us-gaap:IncomeTaxPolicyTextBlock>
    <us-gaap:IncreaseDecreaseInIncomeTaxesReceivable
      contextRef="Duration_9_1_2023_To_9_30_2023_C6BTPqBxtkOfHGcvUcDV1g"
      decimals="-5"
      id="Narr_vLqIAvgfDke3Dw5u_VUBig"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">107100000</us-gaap:IncreaseDecreaseInIncomeTaxesReceivable>
    <us-gaap:FairValueOfFinancialInstrumentsPolicy
      contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ"
      id="Tb_5k7mTRHMZ0K-3A5NhDSikg">&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"&gt;&lt;span style="font-style:italic;font-weight:bold;"&gt;Financial Instruments&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;"&gt;Our financial instruments consist of cash and cash equivalents, accounts receivable, other receivables, accounts payable and life insurance policies, for which we deem the carrying values approximate their fair values due to the short-term nature of these instruments, as well as notes to former owners and a revolving credit facility. &lt;/p&gt;</us-gaap:FairValueOfFinancialInstrumentsPolicy>
    <us-gaap:EquitySecuritiesWithoutReadilyDeterminableFairValuePolicyTextBlock
      contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ"
      id="Tb_4qeDhVlqIUCBZyVeiHYBkw">&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"&gt;&lt;span style="font-style:italic;font-weight:bold;"&gt;Investments&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"&gt;We have a $6.1 million investment in a construction-focused technology fund with a fair value that is not readily determinable and is recorded at cost. This investment is included in &#x201c;Other Noncurrent Assets&#x201d; in our Consolidated Balance Sheet and is reviewed quarterly for impairment.&#160;We did not recognize any impairments in the current year related to this investment.&lt;/p&gt;</us-gaap:EquitySecuritiesWithoutReadilyDeterminableFairValuePolicyTextBlock>
    <us-gaap:EquitySecuritiesWithoutReadilyDeterminableFairValueAmount
      contextRef="As_Of_9_30_2024_um13j0l3zk2ITGaiED1DFA"
      decimals="-5"
      id="Narr_4n1ADEltpUSdtbL9ODdZew"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">6100000</us-gaap:EquitySecuritiesWithoutReadilyDeterminableFairValueAmount>
    <us-gaap:RevenueFromContractWithCustomerTextBlock
      contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ"
      id="Group_9sy55jJsC0eKLO0RDE4PSQ">&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;3. Revenue from Contracts with Customers&lt;/b&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"&gt;Revenue is recognized when control of the promised goods or services is transferred to our customers, in an amount that reflects the consideration to which we expect to be entitled in exchange for those goods or services. Sales-based taxes are excluded from revenue.&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"&gt;We provide mechanical and electrical contracting services. Our mechanical segment principally includes HVAC, plumbing, piping and controls, as well as off-site construction, monitoring and fire protection. Our electrical segment includes installation and servicing of electrical systems. We build, install, maintain, repair and replace products and systems throughout the United States. All of our revenue is recognized over time as we deliver goods and services to our customers. Revenue can be earned based on an agreed-upon fixed price or based on actual costs incurred, marked up at an agreed-upon percentage.&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"&gt;We account for a contract when: (i) it has approval and commitment from both parties, (ii) the rights of the parties are identified, (iii) payment terms are identified, (iv) the contract has commercial substance, and (v) collectability of consideration is probable. We consider the start of a project to be when the above criteria have been met and we either have written authorization from the customer to proceed or an executed contract.&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"&gt;We generally do not incur significant incremental costs related to obtaining or fulfilling a contract prior to the start of a project. On rare occasions, when significant pre-contract costs are incurred, they are capitalized and amortized over the life of the contract using a cost-to-cost input method to measure progress towards contract completion. We do not currently have any capitalized obtainment or fulfillment costs in our Consolidated Balance Sheet and have not incurred any impairment loss on such costs in the current year.&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"&gt;Due to the nature of the work required to be performed on many of our performance obligations, the estimation of total revenue and cost at completion (the process described below in more detail) is complex, subject to many variables and requires significant judgment. The consideration to which we are entitled on our long-term contracts may include both fixed and variable amounts. Variable amounts can either increase or decrease the transaction price. A common example of variable amounts that can either increase or decrease contract value are pending change orders that represent contract modifications for which a change in scope has been authorized or acknowledged by our customer, but the final adjustment to contract price is yet to be negotiated. Other examples of positive variable revenue include amounts awarded upon achievement of certain performance metrics, program milestones or cost of completion date targets and can be based upon customer discretion. Variable amounts can result in a deduction from contract revenue if we fail to meet stated performance requirements, such as complying with the construction schedule.&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"&gt;We include estimated amounts of variable consideration in the contract price to the extent it is probable that a significant reversal of cumulative revenue recognized will not occur when the uncertainty associated with the variable consideration is resolved. Our estimates of variable consideration and determination of whether to include estimated amounts in the contract price are based largely on an assessment of our anticipated performance and all information (historical, current and forecasted) that is reasonably available to us. We reassess the amount of variable consideration each accounting period until the uncertainty associated with the variable consideration is resolved. Changes in the assessed amount of variable consideration are accounted for prospectively as a cumulative adjustment to revenue recognized in the current period.&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"&gt;Contracts are often modified to account for changes in contract specifications and requirements. We consider contract modifications to exist when the modification either creates new, or changes the existing, enforceable rights and obligations. Most of our contract modifications are for goods or services that are not distinct from the existing performance obligation(s). The effect of a contract modification on the transaction price, and our measure of progress for the performance obligation to which it relates, is recognized as an adjustment to revenue (either as an increase or decrease) on a cumulative catch-up basis. &lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"&gt;We have a Company-wide policy requiring periodic review of the Estimate at Completion in which management reviews the progress and execution of our performance obligations and estimated remaining obligations. As part of this process, management reviews information including, but not limited to, any outstanding key contract matters, progress towards completion and the related program schedule, identified risks and opportunities and the related changes in estimates of revenue and costs. The risks and opportunities include management's judgment about the ability and cost to achieve the schedule (&lt;i style="font-style:italic;"&gt;e.g.&lt;/i&gt;, the number and type of milestone events), technical requirements (&lt;i style="font-style:italic;"&gt;e.g.&lt;/i&gt;, a newly developed product versus a mature product) and other contract requirements. Management must make assumptions and estimates regarding labor productivity and availability, the complexity of the work to be performed, the availability of materials, the length of time to complete the performance obligation (&lt;i style="font-style:italic;"&gt;e.g.&lt;/i&gt;, to estimate increases in wages and prices for materials and related support cost allocations), execution by our subcontractors, the availability and timing of funding from our customer, and overhead cost rates, among other variables. &lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"&gt;Based on this analysis, any adjustments to revenue, cost of services, and the related impact to operating income are recognized as necessary in the quarter when they become known. These adjustments may result from positive program performance if we determine we will be successful in mitigating risks surrounding the technical, schedule and cost aspects of those performance obligations or realizing related opportunities and may result in an increase in operating income during the performance of individual performance obligations. Likewise, if we determine we will not be &lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;successful in mitigating these risks or realizing related opportunities, these adjustments may result in a decrease in operating income. Changes in estimates of revenue, cost of services and the related impact to operating income are recognized quarterly on a cumulative catch-up basis, meaning we recognize in the current period the cumulative effect of the changes on current and prior periods based on our &lt;span style="background:#ffffff;"&gt;progress towards complete satisfaction of a performance obligation&lt;/span&gt;. A significant change in one or more of these estimates could affect the profitability of one or more of our performance obligations. For projects in which estimates of total costs to be incurred on a performance obligation exceed total estimates of revenue to be earned, a provision for the entire loss on the performance obligation is recognized in the period the loss is determined. &lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"&gt;During the three months ended September 30, 2024 and 2023, net revenue recognized from our performance obligations partially satisfied in the previous period positively impacted revenue by 1.7% and 0.8%, respectively, as a result of changes in estimates associated with performance obligations on contracts. During the nine months ended September 30, 2024 and 2023, net revenue recognized from our performance obligations partially satisfied in the previous period positively impacted revenue by 2.7% and 1.3%&lt;span style="white-space:pre-wrap;"&gt;, respectively, as a result of changes in estimates associated with performance obligations on contracts.   &lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"&gt;&lt;span style="font-style:italic;font-weight:bold;"&gt;Disaggregation of Revenue&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"&gt;Our consolidated 2024 revenue was derived from contracts to provide service activities in the mechanical and electrical segments we serve. Refer to Note 11 &#x201c;Segment Information&#x201d; for additional information on our reportable segments. We disaggregate our revenue from contracts with customers by activity, customer type and service provided, as we believe it best depicts how the nature, amount, timing and uncertainty of our revenue and cash flows are affected by economic factors. See details in the following tables (dollars in thousands):&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 0pt 36pt;"&gt;&lt;span style="margin-left:0pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;width:24.07%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.92%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:5.24%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.92%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:5.24%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.92%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:5.24%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.92%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:5.24%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:24.07%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="10" style="vertical-align:bottom;white-space:nowrap;width:35.03%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;Three Months Ended September 30, &lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="11" style="vertical-align:bottom;white-space:nowrap;width:36.57%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;Nine Months Ended September 30, &lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:24.07%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;Revenue by Service Provided&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="4" style="vertical-align:bottom;white-space:nowrap;width:16.04%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;2024&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="4" style="vertical-align:bottom;white-space:nowrap;width:16.04%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;2023&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="4" style="vertical-align:bottom;white-space:nowrap;width:16.04%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;2024&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="4" style="vertical-align:bottom;white-space:nowrap;width:16.04%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;2023&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:24.07%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;Mechanical Segment&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.92%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.48%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 1,438,617&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&#160;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:5.24%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 79.4&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.54%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;%&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.92%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.48%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 1,031,310&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&#160;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:5.24%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 74.8&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.54%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;%&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.92%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.48%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 4,075,305&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&#160;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:5.24%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 79.0&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.54%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;%&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.92%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.48%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 2,925,848&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&#160;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:5.24%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 76.0&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.54%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;%&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:24.07%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;Electrical Segment&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.92%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 373,749&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:5.24%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 20.6&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;%&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.92%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 346,814&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:5.24%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 25.2&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;%&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.92%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 1,084,367&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:5.24%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 21.0&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;%&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.92%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 923,346&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:5.24%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 24.0&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;%&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:24.07%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;Total &lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.92%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.48%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 1,812,366&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:5.24%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 100.0&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.54%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;%&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.92%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.48%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 1,378,124&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:5.24%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 100.0&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.54%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;%&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.92%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.48%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 5,159,672&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:5.24%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 100.0&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.54%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;%&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.92%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.48%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 3,849,194&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:5.24%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 100.0&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.54%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;%&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:24.07%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.92%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:5.24%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.92%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:5.24%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.92%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:5.24%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.92%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:5.24%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:24.07%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="10" style="vertical-align:bottom;white-space:nowrap;width:35.03%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;Three Months Ended September 30, &lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="11" style="vertical-align:bottom;white-space:nowrap;width:36.57%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;Nine Months Ended September 30, &lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:24.07%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;Revenue by Type of Customer&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="4" style="vertical-align:bottom;white-space:nowrap;width:16.04%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;2024&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="4" style="vertical-align:bottom;white-space:nowrap;width:16.04%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;2023&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="4" style="vertical-align:bottom;white-space:nowrap;width:16.04%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;2024&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="4" style="vertical-align:bottom;white-space:nowrap;width:16.04%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;2023&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:24.07%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;Technology&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.92%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.48%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 615,398&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:5.24%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 34.0&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.54%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;%&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.92%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.48%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 303,847&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:5.24%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 22.0&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.54%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;%&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.92%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.48%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 1,641,525&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:5.24%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 31.8&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.54%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;%&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.92%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.48%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 795,327&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:5.24%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 20.7&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.54%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;%&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:24.07%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;Manufacturing&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.92%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 452,157&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:5.24%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 24.9&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;%&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.92%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 469,173&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:5.24%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 34.0&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;%&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.92%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 1,439,772&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:5.24%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 27.9&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;%&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.92%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 1,271,348&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:5.24%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 33.0&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;%&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:24.07%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;Education&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.92%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.48%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 195,737&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:5.24%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 10.8&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.54%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;%&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.92%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.48%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 139,206&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:5.24%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 10.1&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.54%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;%&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.92%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.48%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 523,153&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:5.24%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 10.1&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.54%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;%&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.92%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.48%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 376,637&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:5.24%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 9.8&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.54%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;%&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:24.07%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;Healthcare&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.92%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 149,974&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:5.24%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 8.3&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;%&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.92%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 133,130&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:5.24%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 9.7&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;%&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.92%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 424,450&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:5.24%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 8.2&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;%&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.92%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 431,329&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:5.24%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 11.2&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;%&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:24.07%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;Office Buildings&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.92%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.48%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 109,233&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:5.24%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 6.0&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.54%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;%&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.92%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.48%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 104,937&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:5.24%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 7.6&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.54%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;%&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.92%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.48%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 326,137&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:5.24%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 6.3&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.54%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;%&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.92%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.48%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 299,103&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:5.24%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 7.8&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.54%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;%&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:24.07%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;Retail, Restaurants and Entertainment&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.92%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 114,572&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:5.24%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 6.3&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;%&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.92%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 77,802&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:5.24%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 5.6&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;%&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.92%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 309,658&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:5.24%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 6.0&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;%&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.92%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 234,779&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:5.24%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 6.1&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;%&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:24.07%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;Government&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.92%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.48%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 92,555&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:5.24%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 5.1&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.54%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;%&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.92%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.48%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 85,220&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:5.24%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 6.3&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.54%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;%&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.92%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.48%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 271,429&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:5.24%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 5.3&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.54%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;%&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.92%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.48%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 227,232&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:5.24%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 5.9&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.54%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;%&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:24.07%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;Multi-Family and Residential&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.92%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 33,838&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:5.24%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 1.9&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;%&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.92%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 45,523&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:5.24%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 3.3&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;%&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.92%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 110,870&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:5.24%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 2.2&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;%&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.92%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 136,825&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:5.24%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 3.5&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;%&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:24.07%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;Other&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.92%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.48%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 48,902&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:5.24%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 2.7&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.54%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;%&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.92%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.48%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 19,286&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:5.24%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 1.4&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.54%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;%&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.92%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.48%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 112,678&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:5.24%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 2.2&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.54%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;%&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.92%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.48%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 76,614&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:5.24%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 2.0&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.54%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;%&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:24.07%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;Total &lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.92%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.48%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 1,812,366&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:5.24%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 100.0&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;%&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.92%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.48%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 1,378,124&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:5.24%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 100.0&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;%&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.92%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.48%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 5,159,672&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:5.24%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 100.0&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;%&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.92%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.48%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 3,849,194&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:5.24%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 100.0&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;%&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:24.07%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.92%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:5.24%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.92%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:5.24%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.92%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:5.24%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.92%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:5.24%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:24.07%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="10" style="vertical-align:bottom;white-space:nowrap;width:35.03%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;Three Months Ended September 30, &lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="11" style="vertical-align:bottom;white-space:nowrap;width:36.57%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;Nine Months Ended September 30, &lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:24.07%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;Revenue by Activity Type&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="4" style="vertical-align:bottom;white-space:nowrap;width:16.04%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;2024&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="4" style="vertical-align:bottom;white-space:nowrap;width:16.04%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;2023&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="4" style="vertical-align:bottom;white-space:nowrap;width:16.04%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;2024&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="4" style="vertical-align:bottom;white-space:nowrap;width:16.04%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;2023&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:24.07%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;New Construction&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.92%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.48%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 949,035&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:5.24%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 52.4&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.54%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;%&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.92%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.48%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 798,289&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:5.24%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 57.9&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.54%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;%&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.92%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.48%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 2,930,283&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:5.24%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 56.8&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.54%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;%&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.92%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.48%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 2,108,153&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:5.24%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 54.8&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.54%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;%&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:24.07%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;Existing Building Construction&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.92%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 570,288&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:5.24%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 31.5&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;%&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.92%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 305,795&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:5.24%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 22.2&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;%&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.92%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 1,407,231&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:5.24%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 27.3&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;%&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.92%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 974,085&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:5.24%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 25.3&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;%&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:24.07%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;Service Projects&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.92%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.48%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 125,249&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:5.24%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 6.9&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.54%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;%&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.92%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.48%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 117,202&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:5.24%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 8.5&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.54%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;%&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.92%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.48%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 355,643&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:5.24%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 6.9&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.54%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;%&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.92%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.48%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 335,053&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:5.24%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 8.7&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.54%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;%&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:24.07%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;Service Calls, Maintenance and Monitoring&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.92%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 167,794&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:5.24%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 9.2&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;%&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.92%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 156,838&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:5.24%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 11.4&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;%&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.92%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 466,515&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:5.24%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 9.0&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;%&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.92%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 431,903&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:5.24%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 11.2&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;%&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:24.07%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;Total &lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.92%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.48%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 1,812,366&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:5.24%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 100.0&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.54%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;%&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.92%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.48%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 1,378,124&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:5.24%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 100.0&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.54%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;%&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.92%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.48%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 5,159,672&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:5.24%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 100.0&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.54%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;%&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.92%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.48%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 3,849,194&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:5.24%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 100.0&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.54%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;%&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"&gt;&lt;span style="font-style:italic;font-weight:bold;"&gt;Contract Assets and Liabilities&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"&gt;Contract assets include unbilled amounts typically resulting from sales under long term contracts when the cost-to-cost method of revenue recognition is used, revenue recognized exceeds the amount billed to the customer and right to &lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;payment is conditional or subject to completing a milestone, such as a phase of the project. Contract assets are not considered to have a significant financing component, as they are intended to protect the customer in the event that we do not perform our obligations under the contract. &lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"&gt;Contract liabilities consist of advance payments and billings in excess of revenue recognized. Advanced payments from customers related to work not yet started are classified as deferred revenue. Contract liabilities are not considered to have a significant financing component, as they are used to meet working capital requirements that are generally higher in the early stages of a contract and are intended to protect us from the other party failing to meet its obligations under the contract. Our contract assets and liabilities are reported in a net position on a contract-by-contract basis at the end of each reporting period. &lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"&gt;Contract assets and liabilities in the Consolidated Balance Sheet consisted of the following amounts as of September 30, 2024 and December 31, 2023 (in thousands):&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:middle;width:61.71%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="position:absolute;top:50%;transform:translate(0,-50%);width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.02%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:14.19%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.87%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.02%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:14.15%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:middle;width:61.71%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:17.22%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0.05pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;September 30, 2024&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.87%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0.05pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:17.18%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0.05pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;December 31, 2023&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:middle;width:61.71%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"&gt;Contract assets:&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:14.19%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.87%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:14.15%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:middle;width:61.71%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"&gt;&lt;span style="white-space:pre-wrap;"&gt;   Costs and estimated earnings in excess of billings, less allowance for credit losses&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:14.19%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"&gt; 73,934&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.87%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:14.15%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"&gt; 28,084&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:middle;width:61.71%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"&gt;Contract liabilities:&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:14.19%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.87%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:14.15%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:middle;width:61.71%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"&gt;&lt;span style="white-space:pre-wrap;"&gt;   Billings in excess of costs and estimated earnings and deferred revenue&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:14.19%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"&gt; 1,197,532&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.87%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:14.15%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"&gt; 909,538&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"&gt;&lt;span style="margin-bottom:5pt;margin-top:5pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 13.19pt 0pt;"&gt;In the first nine months of 2024 and 2023, we recognized revenue of $767.3 million and $482.9 million related to our contract liabilities at January 1, 2024 and January 1, 2023, respectively.&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"&gt;We did not have any impairment losses recognized on our receivables or contract assets in the first nine months of 2024 and 2023.&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"&gt;&lt;span style="font-style:italic;font-weight:bold;"&gt;Remaining Performance Obligations&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"&gt;&lt;span style="font-style:italic;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"&gt;Remaining construction performance obligations represent the remaining transaction price of firm orders for which work has not been performed and exclude unexercised contract options. As of September 30, 2024, the aggregate amount of the transaction price allocated to remaining performance obligations was $5.68 billion. The Company expects to recognize revenue on approximately 65-75% of the remaining performance obligations over the next 12 months, with the remaining recognized thereafter. Our service maintenance agreements are generally one-year renewable agreements. We have adopted the practical expedient that allows us to not include service maintenance contracts with a total term of one&lt;span style="white-space:pre-wrap;"&gt; year or less; therefore, we do not report unfulfilled performance obligations for service maintenance agreements.  &lt;/span&gt;&lt;/p&gt;</us-gaap:RevenueFromContractWithCustomerTextBlock>
    <fix:ContractWithCustomerPerformanceObligationSatisfiedInPreviousPeriodPercentage
      contextRef="Duration_7_1_2024_To_9_30_2024_XquWrHsdeEmkK9F8qXf6qA"
      decimals="3"
      id="Narr_M8IRoldDBEWdxfhkN9YhZg"
      unitRef="Unit_Standard_pure_0GIr2wv4rk-T38a8Lz0A5w">0.017</fix:ContractWithCustomerPerformanceObligationSatisfiedInPreviousPeriodPercentage>
    <fix:ContractWithCustomerPerformanceObligationSatisfiedInPreviousPeriodPercentage
      contextRef="Duration_7_1_2023_To_9_30_2023_S4fUa5HYuk6ZPxhUrn5m5w"
      decimals="3"
      id="Narr_EC8zAmtQWECnqCsJBKLFwA"
      unitRef="Unit_Standard_pure_0GIr2wv4rk-T38a8Lz0A5w">0.008</fix:ContractWithCustomerPerformanceObligationSatisfiedInPreviousPeriodPercentage>
    <fix:ContractWithCustomerPerformanceObligationSatisfiedInPreviousPeriodPercentage
      contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ"
      decimals="3"
      id="Narr_VFqsKRQXy0qkvfJ1c-3oqA"
      unitRef="Unit_Standard_pure_0GIr2wv4rk-T38a8Lz0A5w">0.027</fix:ContractWithCustomerPerformanceObligationSatisfiedInPreviousPeriodPercentage>
    <fix:ContractWithCustomerPerformanceObligationSatisfiedInPreviousPeriodPercentage
      contextRef="Duration_1_1_2023_To_9_30_2023_0vpBpKZIxEC_KY5z5G8rKA"
      decimals="3"
      id="Narr_DF6i8XLyJEiOf5onNJ6lgw"
      unitRef="Unit_Standard_pure_0GIr2wv4rk-T38a8Lz0A5w">0.013</fix:ContractWithCustomerPerformanceObligationSatisfiedInPreviousPeriodPercentage>
    <us-gaap:DisaggregationOfRevenueTableTextBlock
      contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ"
      id="Group_1rA3AmrV_keFZudjVdtl0A">See details in the following tables (dollars in thousands):&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 0pt 36pt;"&gt;&lt;span style="margin-left:0pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;width:24.07%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.92%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:5.24%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.92%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:5.24%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.92%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:5.24%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.92%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:5.24%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:24.07%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="10" style="vertical-align:bottom;white-space:nowrap;width:35.03%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;Three Months Ended September 30, &lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="11" style="vertical-align:bottom;white-space:nowrap;width:36.57%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;Nine Months Ended September 30, &lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:24.07%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;Revenue by Service Provided&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="4" style="vertical-align:bottom;white-space:nowrap;width:16.04%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;2024&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="4" style="vertical-align:bottom;white-space:nowrap;width:16.04%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;2023&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="4" style="vertical-align:bottom;white-space:nowrap;width:16.04%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;2024&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="4" style="vertical-align:bottom;white-space:nowrap;width:16.04%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;2023&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:24.07%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;Mechanical Segment&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.92%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.48%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 1,438,617&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&#160;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:5.24%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 79.4&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.54%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;%&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.92%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.48%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 1,031,310&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&#160;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:5.24%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 74.8&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.54%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;%&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.92%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.48%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 4,075,305&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&#160;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:5.24%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 79.0&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.54%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;%&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.92%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.48%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 2,925,848&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&#160;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:5.24%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 76.0&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.54%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;%&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:24.07%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;Electrical Segment&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.92%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 373,749&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:5.24%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 20.6&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;%&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.92%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 346,814&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:5.24%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 25.2&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;%&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.92%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 1,084,367&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:5.24%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 21.0&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;%&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.92%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 923,346&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:5.24%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 24.0&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;%&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:24.07%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;Total &lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.92%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.48%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 1,812,366&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:5.24%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 100.0&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.54%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;%&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.92%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.48%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 1,378,124&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:5.24%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 100.0&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.54%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;%&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.92%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.48%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 5,159,672&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:5.24%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 100.0&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.54%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;%&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.92%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.48%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 3,849,194&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:5.24%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 100.0&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.54%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;%&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:24.07%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.92%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:5.24%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.92%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:5.24%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.92%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:5.24%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.92%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:5.24%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:24.07%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="10" style="vertical-align:bottom;white-space:nowrap;width:35.03%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;Three Months Ended September 30, &lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="11" style="vertical-align:bottom;white-space:nowrap;width:36.57%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;Nine Months Ended September 30, &lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:24.07%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;Revenue by Type of Customer&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="4" style="vertical-align:bottom;white-space:nowrap;width:16.04%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;2024&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="4" style="vertical-align:bottom;white-space:nowrap;width:16.04%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;2023&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="4" style="vertical-align:bottom;white-space:nowrap;width:16.04%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;2024&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="4" style="vertical-align:bottom;white-space:nowrap;width:16.04%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;2023&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:24.07%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;Technology&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.92%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.48%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 615,398&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:5.24%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 34.0&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.54%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;%&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.92%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.48%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 303,847&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:5.24%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 22.0&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.54%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;%&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.92%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.48%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 1,641,525&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:5.24%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 31.8&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.54%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;%&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.92%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.48%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 795,327&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:5.24%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 20.7&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.54%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;%&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:24.07%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;Manufacturing&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.92%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 452,157&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:5.24%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 24.9&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;%&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.92%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 469,173&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:5.24%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 34.0&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;%&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.92%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 1,439,772&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:5.24%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 27.9&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;%&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.92%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 1,271,348&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:5.24%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 33.0&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;%&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:24.07%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;Education&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.92%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.48%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 195,737&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:5.24%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 10.8&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.54%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;%&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.92%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.48%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 139,206&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:5.24%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 10.1&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.54%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;%&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.92%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.48%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 523,153&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:5.24%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 10.1&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.54%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;%&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.92%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.48%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 376,637&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:5.24%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 9.8&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.54%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;%&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:24.07%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;Healthcare&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.92%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 149,974&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:5.24%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 8.3&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;%&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.92%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 133,130&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:5.24%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 9.7&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;%&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.92%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 424,450&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:5.24%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 8.2&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;%&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.92%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 431,329&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:5.24%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 11.2&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;%&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:24.07%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;Office Buildings&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.92%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.48%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 109,233&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:5.24%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 6.0&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.54%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;%&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.92%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.48%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 104,937&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:5.24%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 7.6&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.54%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;%&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.92%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.48%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 326,137&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:5.24%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 6.3&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.54%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;%&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.92%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.48%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 299,103&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:5.24%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 7.8&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.54%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;%&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:24.07%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;Retail, Restaurants and Entertainment&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.92%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 114,572&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:5.24%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 6.3&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;%&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.92%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 77,802&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:5.24%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 5.6&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;%&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.92%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 309,658&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:5.24%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 6.0&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;%&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.92%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 234,779&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:5.24%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 6.1&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;%&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:24.07%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;Government&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.92%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.48%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 92,555&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:5.24%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 5.1&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.54%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;%&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.92%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.48%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 85,220&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:5.24%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 6.3&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.54%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;%&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.92%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.48%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 271,429&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:5.24%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 5.3&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.54%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;%&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.92%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.48%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 227,232&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:5.24%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 5.9&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.54%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;%&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:24.07%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;Multi-Family and Residential&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.92%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 33,838&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:5.24%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 1.9&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;%&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.92%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 45,523&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:5.24%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 3.3&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;%&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.92%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 110,870&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:5.24%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 2.2&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;%&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.92%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 136,825&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:5.24%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 3.5&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;%&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:24.07%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;Other&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.92%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.48%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 48,902&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:5.24%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 2.7&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.54%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;%&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.92%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.48%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 19,286&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:5.24%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 1.4&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.54%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;%&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.92%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.48%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 112,678&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:5.24%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 2.2&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.54%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;%&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.92%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.48%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 76,614&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:5.24%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 2.0&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.54%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;%&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:24.07%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;Total &lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.92%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.48%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 1,812,366&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:5.24%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 100.0&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;%&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.92%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.48%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 1,378,124&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:5.24%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 100.0&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;%&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.92%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.48%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 5,159,672&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:5.24%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 100.0&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;%&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.92%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.48%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 3,849,194&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:5.24%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 100.0&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;%&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:24.07%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.92%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:5.24%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.92%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:5.24%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.92%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:5.24%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.92%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:5.24%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:24.07%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="10" style="vertical-align:bottom;white-space:nowrap;width:35.03%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;Three Months Ended September 30, &lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="11" style="vertical-align:bottom;white-space:nowrap;width:36.57%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;Nine Months Ended September 30, &lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:24.07%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;Revenue by Activity Type&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="4" style="vertical-align:bottom;white-space:nowrap;width:16.04%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;2024&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="4" style="vertical-align:bottom;white-space:nowrap;width:16.04%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;2023&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="4" style="vertical-align:bottom;white-space:nowrap;width:16.04%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;2024&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="4" style="vertical-align:bottom;white-space:nowrap;width:16.04%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;2023&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:24.07%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;New Construction&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.92%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.48%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 949,035&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:5.24%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 52.4&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.54%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;%&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.92%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.48%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 798,289&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:5.24%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 57.9&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.54%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;%&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.92%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.48%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 2,930,283&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:5.24%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 56.8&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.54%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;%&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.92%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.48%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 2,108,153&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:5.24%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 54.8&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.54%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;%&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:24.07%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;Existing Building Construction&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.92%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 570,288&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:5.24%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 31.5&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;%&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.92%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 305,795&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:5.24%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 22.2&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;%&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.92%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 1,407,231&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:5.24%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 27.3&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;%&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.92%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 974,085&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:5.24%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 25.3&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;%&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:24.07%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;Service Projects&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.92%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.48%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 125,249&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:5.24%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 6.9&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.54%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;%&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.92%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.48%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 117,202&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:5.24%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 8.5&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.54%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;%&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.92%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.48%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 355,643&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:5.24%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 6.9&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.54%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;%&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.92%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.48%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 335,053&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:5.24%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 8.7&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.54%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;%&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:24.07%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;Service Calls, Maintenance and Monitoring&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.92%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 167,794&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:5.24%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 9.2&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;%&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.92%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 156,838&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:5.24%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 11.4&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;%&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.92%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 466,515&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:5.24%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 9.0&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;%&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.92%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 431,903&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:5.24%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 11.2&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;%&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:24.07%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;Total &lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.92%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.48%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 1,812,366&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:5.24%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 100.0&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.54%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;%&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.92%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.48%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 1,378,124&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:5.24%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 100.0&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.54%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;%&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.92%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.48%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 5,159,672&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:5.24%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 100.0&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.54%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;%&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.92%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.48%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 3,849,194&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:5.24%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 100.0&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.54%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;%&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;</us-gaap:DisaggregationOfRevenueTableTextBlock>
    <us-gaap:Revenues
      contextRef="Duration_7_1_2024_To_9_30_2024_srt_ProductOrServiceAxis_fix_MechanicalSegmentMember_zSjBPjtYwUi_X1HFKHPBRA"
      decimals="-3"
      id="Tc_Kc18MMybOUqL6JuB4Jo4KQ_3_3"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">1438617000</us-gaap:Revenues>
    <fix:PercentageOfRevenueFromContractWithCustomer
      contextRef="Duration_7_1_2024_To_9_30_2024_srt_ProductOrServiceAxis_fix_MechanicalSegmentMember_zSjBPjtYwUi_X1HFKHPBRA"
      decimals="3"
      id="Tc_HAEdWRuRcEC4r1uYAph_TQ_3_5"
      unitRef="Unit_Standard_pure_0GIr2wv4rk-T38a8Lz0A5w">0.794</fix:PercentageOfRevenueFromContractWithCustomer>
    <us-gaap:Revenues
      contextRef="Duration_7_1_2023_To_9_30_2023_srt_ProductOrServiceAxis_fix_MechanicalSegmentMember_ERE56cXrDkqqTstR-ZqOmw"
      decimals="-3"
      id="Tc_4xQxiF6HS0usrgOS5NfGVg_3_9"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">1031310000</us-gaap:Revenues>
    <fix:PercentageOfRevenueFromContractWithCustomer
      contextRef="Duration_7_1_2023_To_9_30_2023_srt_ProductOrServiceAxis_fix_MechanicalSegmentMember_ERE56cXrDkqqTstR-ZqOmw"
      decimals="3"
      id="Tc_nGo_cvCvyEmefwYQ5Vc5iA_3_11"
      unitRef="Unit_Standard_pure_0GIr2wv4rk-T38a8Lz0A5w">0.748</fix:PercentageOfRevenueFromContractWithCustomer>
    <us-gaap:Revenues
      contextRef="Duration_1_1_2024_To_9_30_2024_srt_ProductOrServiceAxis_fix_MechanicalSegmentMember_dvUOkdhSUkekmtE7VK9W8Q"
      decimals="-3"
      id="Tc_C_ggkz1rPEmVsnTPNc5L3w_3_15"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">4075305000</us-gaap:Revenues>
    <fix:PercentageOfRevenueFromContractWithCustomer
      contextRef="Duration_1_1_2024_To_9_30_2024_srt_ProductOrServiceAxis_fix_MechanicalSegmentMember_dvUOkdhSUkekmtE7VK9W8Q"
      decimals="3"
      id="Tc_DYHzH6HGPE2fVyapq_qRIA_3_17"
      unitRef="Unit_Standard_pure_0GIr2wv4rk-T38a8Lz0A5w">0.790</fix:PercentageOfRevenueFromContractWithCustomer>
    <us-gaap:Revenues
      contextRef="Duration_1_1_2023_To_9_30_2023_srt_ProductOrServiceAxis_fix_MechanicalSegmentMember_5Zvwx1aGcUmEmUz8Y0iq0g"
      decimals="-3"
      id="Tc_W317tO0hdUmvhAgAJXVQZQ_3_21"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">2925848000</us-gaap:Revenues>
    <fix:PercentageOfRevenueFromContractWithCustomer
      contextRef="Duration_1_1_2023_To_9_30_2023_srt_ProductOrServiceAxis_fix_MechanicalSegmentMember_5Zvwx1aGcUmEmUz8Y0iq0g"
      decimals="3"
      id="Tc_3LE-_LAIHU2CtN52imSrrQ_3_23"
      unitRef="Unit_Standard_pure_0GIr2wv4rk-T38a8Lz0A5w">0.760</fix:PercentageOfRevenueFromContractWithCustomer>
    <us-gaap:Revenues
      contextRef="Duration_7_1_2024_To_9_30_2024_srt_ProductOrServiceAxis_fix_ElectricalSegmentMember_x3CnBCq-ukmmkcOLyaXSzw"
      decimals="-3"
      id="Tc__M7NrTZMZkajcPlkjaTo_w_4_3"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">373749000</us-gaap:Revenues>
    <fix:PercentageOfRevenueFromContractWithCustomer
      contextRef="Duration_7_1_2024_To_9_30_2024_srt_ProductOrServiceAxis_fix_ElectricalSegmentMember_x3CnBCq-ukmmkcOLyaXSzw"
      decimals="3"
      id="Tc_y0Px6JGN10GXmdvPJdiydg_4_5"
      unitRef="Unit_Standard_pure_0GIr2wv4rk-T38a8Lz0A5w">0.206</fix:PercentageOfRevenueFromContractWithCustomer>
    <us-gaap:Revenues
      contextRef="Duration_7_1_2023_To_9_30_2023_srt_ProductOrServiceAxis_fix_ElectricalSegmentMember_EhM9QnB9q0KvmMWYVDF6Zg"
      decimals="-3"
      id="Tc_esQB8EFs7EytGF7x2CewYg_4_9"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">346814000</us-gaap:Revenues>
    <fix:PercentageOfRevenueFromContractWithCustomer
      contextRef="Duration_7_1_2023_To_9_30_2023_srt_ProductOrServiceAxis_fix_ElectricalSegmentMember_EhM9QnB9q0KvmMWYVDF6Zg"
      decimals="3"
      id="Tc_wqjYM94ltEiG3CpDwZsn7A_4_11"
      unitRef="Unit_Standard_pure_0GIr2wv4rk-T38a8Lz0A5w">0.252</fix:PercentageOfRevenueFromContractWithCustomer>
    <us-gaap:Revenues
      contextRef="Duration_1_1_2024_To_9_30_2024_srt_ProductOrServiceAxis_fix_ElectricalSegmentMember_o0t0pUlXiUyaiEyLXjNLqg"
      decimals="-3"
      id="Tc_i38CIMWoTEOy8msG1qflTw_4_15"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">1084367000</us-gaap:Revenues>
    <fix:PercentageOfRevenueFromContractWithCustomer
      contextRef="Duration_1_1_2024_To_9_30_2024_srt_ProductOrServiceAxis_fix_ElectricalSegmentMember_o0t0pUlXiUyaiEyLXjNLqg"
      decimals="3"
      id="Tc_rUZEeKJnKEaOJa3a2frYRQ_4_17"
      unitRef="Unit_Standard_pure_0GIr2wv4rk-T38a8Lz0A5w">0.210</fix:PercentageOfRevenueFromContractWithCustomer>
    <us-gaap:Revenues
      contextRef="Duration_1_1_2023_To_9_30_2023_srt_ProductOrServiceAxis_fix_ElectricalSegmentMember_2uWX4c1lfk6w485DVAhWOQ"
      decimals="-3"
      id="Tc_rdZIKS-Ca0G-dwkHHWIE7w_4_21"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">923346000</us-gaap:Revenues>
    <fix:PercentageOfRevenueFromContractWithCustomer
      contextRef="Duration_1_1_2023_To_9_30_2023_srt_ProductOrServiceAxis_fix_ElectricalSegmentMember_2uWX4c1lfk6w485DVAhWOQ"
      decimals="3"
      id="Tc_XrC_GMO_lkuJbKK1ycfUAg_4_23"
      unitRef="Unit_Standard_pure_0GIr2wv4rk-T38a8Lz0A5w">0.240</fix:PercentageOfRevenueFromContractWithCustomer>
    <us-gaap:Revenues
      contextRef="Duration_7_1_2024_To_9_30_2024_XquWrHsdeEmkK9F8qXf6qA"
      decimals="-3"
      id="Tc_wqPDVvHE8UC7SfjkjTtPUw_5_3"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">1812366000</us-gaap:Revenues>
    <fix:PercentageOfRevenueFromContractWithCustomer
      contextRef="Duration_7_1_2024_To_9_30_2024_XquWrHsdeEmkK9F8qXf6qA"
      decimals="3"
      id="Tc_WYO6in6tWUeqrmQqN0bjnA_5_5"
      unitRef="Unit_Standard_pure_0GIr2wv4rk-T38a8Lz0A5w">1.000</fix:PercentageOfRevenueFromContractWithCustomer>
    <us-gaap:Revenues
      contextRef="Duration_7_1_2023_To_9_30_2023_S4fUa5HYuk6ZPxhUrn5m5w"
      decimals="-3"
      id="Tc_akg_5fcvwU6BOLIhne0rGw_5_9"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">1378124000</us-gaap:Revenues>
    <fix:PercentageOfRevenueFromContractWithCustomer
      contextRef="Duration_7_1_2023_To_9_30_2023_S4fUa5HYuk6ZPxhUrn5m5w"
      decimals="3"
      id="Tc_byeG7YVgDkGGiIFJ1oS43Q_5_11"
      unitRef="Unit_Standard_pure_0GIr2wv4rk-T38a8Lz0A5w">1.000</fix:PercentageOfRevenueFromContractWithCustomer>
    <us-gaap:Revenues
      contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ"
      decimals="-3"
      id="Tc_38VrzZjTdESI3HNr4cumqw_5_15"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">5159672000</us-gaap:Revenues>
    <fix:PercentageOfRevenueFromContractWithCustomer
      contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ"
      decimals="3"
      id="Tc_NpsN-ENk-UeiCN-hIe_uDg_5_17"
      unitRef="Unit_Standard_pure_0GIr2wv4rk-T38a8Lz0A5w">1.000</fix:PercentageOfRevenueFromContractWithCustomer>
    <us-gaap:Revenues
      contextRef="Duration_1_1_2023_To_9_30_2023_0vpBpKZIxEC_KY5z5G8rKA"
      decimals="-3"
      id="Tc_Ux-bmktrfEydMGom9-rGFg_5_21"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">3849194000</us-gaap:Revenues>
    <fix:PercentageOfRevenueFromContractWithCustomer
      contextRef="Duration_1_1_2023_To_9_30_2023_0vpBpKZIxEC_KY5z5G8rKA"
      decimals="3"
      id="Tc_FC6f_7VjrUa0AJMDTRcfmQ_5_23"
      unitRef="Unit_Standard_pure_0GIr2wv4rk-T38a8Lz0A5w">1.000</fix:PercentageOfRevenueFromContractWithCustomer>
    <us-gaap:Revenues
      contextRef="Duration_7_1_2024_To_9_30_2024_srt_MajorCustomersAxis_fix_TechnologyMember_KsDxF3geU0unObVLWO98Dg"
      decimals="-3"
      id="Tc_0U3taksU4EqRobz_RgrLDg_9_3"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">615398000</us-gaap:Revenues>
    <fix:PercentageOfRevenueFromContractWithCustomer
      contextRef="Duration_7_1_2024_To_9_30_2024_srt_MajorCustomersAxis_fix_TechnologyMember_KsDxF3geU0unObVLWO98Dg"
      decimals="3"
      id="Tc_31WwBP3liUGQlb22yCdO7Q_9_5"
      unitRef="Unit_Standard_pure_0GIr2wv4rk-T38a8Lz0A5w">0.340</fix:PercentageOfRevenueFromContractWithCustomer>
    <us-gaap:Revenues
      contextRef="Duration_7_1_2023_To_9_30_2023_srt_MajorCustomersAxis_fix_TechnologyMember_f_AWks4nDUO_PVuPOxT2Ug"
      decimals="-3"
      id="Tc_5ADzS3pDx0OKJksjcb0mZA_9_9"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">303847000</us-gaap:Revenues>
    <fix:PercentageOfRevenueFromContractWithCustomer
      contextRef="Duration_7_1_2023_To_9_30_2023_srt_MajorCustomersAxis_fix_TechnologyMember_f_AWks4nDUO_PVuPOxT2Ug"
      decimals="3"
      id="Tc_yooH39hT90qmjpOjzr6azA_9_11"
      unitRef="Unit_Standard_pure_0GIr2wv4rk-T38a8Lz0A5w">0.220</fix:PercentageOfRevenueFromContractWithCustomer>
    <us-gaap:Revenues
      contextRef="Duration_1_1_2024_To_9_30_2024_srt_MajorCustomersAxis_fix_TechnologyMember_8Ha7PafjlUqeoARzwkE3eg"
      decimals="-3"
      id="Tc_iP2fq0GEokaf2-AFwCsjeg_9_15"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">1641525000</us-gaap:Revenues>
    <fix:PercentageOfRevenueFromContractWithCustomer
      contextRef="Duration_1_1_2024_To_9_30_2024_srt_MajorCustomersAxis_fix_TechnologyMember_8Ha7PafjlUqeoARzwkE3eg"
      decimals="3"
      id="Tc_t3LhSDFzGUyOQ-XTASpdVw_9_17"
      unitRef="Unit_Standard_pure_0GIr2wv4rk-T38a8Lz0A5w">0.318</fix:PercentageOfRevenueFromContractWithCustomer>
    <us-gaap:Revenues
      contextRef="Duration_1_1_2023_To_9_30_2023_srt_MajorCustomersAxis_fix_TechnologyMember_gsMI6hHvYEeyed_Plm-HmA"
      decimals="-3"
      id="Tc_r2D3ZlQvaUKEcNA0GLND0Q_9_21"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">795327000</us-gaap:Revenues>
    <fix:PercentageOfRevenueFromContractWithCustomer
      contextRef="Duration_1_1_2023_To_9_30_2023_srt_MajorCustomersAxis_fix_TechnologyMember_gsMI6hHvYEeyed_Plm-HmA"
      decimals="3"
      id="Tc_zVxXcZBf50uCjMzSfHNXeg_9_23"
      unitRef="Unit_Standard_pure_0GIr2wv4rk-T38a8Lz0A5w">0.207</fix:PercentageOfRevenueFromContractWithCustomer>
    <us-gaap:Revenues
      contextRef="Duration_7_1_2024_To_9_30_2024_srt_MajorCustomersAxis_fix_ManufacturingCustomerMember_DlSkW78ckESme-WbVK0ifw"
      decimals="-3"
      id="Tc_IP1b2kIYLESJwqS7dLW_ZQ_10_3"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">452157000</us-gaap:Revenues>
    <fix:PercentageOfRevenueFromContractWithCustomer
      contextRef="Duration_7_1_2024_To_9_30_2024_srt_MajorCustomersAxis_fix_ManufacturingCustomerMember_DlSkW78ckESme-WbVK0ifw"
      decimals="3"
      id="Tc_AZPLoK5nrU2XhXobE-Rn0w_10_5"
      unitRef="Unit_Standard_pure_0GIr2wv4rk-T38a8Lz0A5w">0.249</fix:PercentageOfRevenueFromContractWithCustomer>
    <us-gaap:Revenues
      contextRef="Duration_7_1_2023_To_9_30_2023_srt_MajorCustomersAxis_fix_ManufacturingCustomerMember_d8LstyS2_0eYmjU47uflpA"
      decimals="-3"
      id="Tc__K41KgngMUqx-W0hN-hTDQ_10_9"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">469173000</us-gaap:Revenues>
    <fix:PercentageOfRevenueFromContractWithCustomer
      contextRef="Duration_7_1_2023_To_9_30_2023_srt_MajorCustomersAxis_fix_ManufacturingCustomerMember_d8LstyS2_0eYmjU47uflpA"
      decimals="3"
      id="Tc_NOa6LyozhE-jxsCuf7PRhA_10_11"
      unitRef="Unit_Standard_pure_0GIr2wv4rk-T38a8Lz0A5w">0.340</fix:PercentageOfRevenueFromContractWithCustomer>
    <us-gaap:Revenues
      contextRef="Duration_1_1_2024_To_9_30_2024_srt_MajorCustomersAxis_fix_ManufacturingCustomerMember_at5IYry25U-KfN2L9AzS_Q"
      decimals="-3"
      id="Tc_sHubI5CO-0ywIgAf5uQGow_10_15"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">1439772000</us-gaap:Revenues>
    <fix:PercentageOfRevenueFromContractWithCustomer
      contextRef="Duration_1_1_2024_To_9_30_2024_srt_MajorCustomersAxis_fix_ManufacturingCustomerMember_at5IYry25U-KfN2L9AzS_Q"
      decimals="3"
      id="Tc_iucdfyhJ-EKRCzDGGPMdWQ_10_17"
      unitRef="Unit_Standard_pure_0GIr2wv4rk-T38a8Lz0A5w">0.279</fix:PercentageOfRevenueFromContractWithCustomer>
    <us-gaap:Revenues
      contextRef="Duration_1_1_2023_To_9_30_2023_srt_MajorCustomersAxis_fix_ManufacturingCustomerMember_1ntFAqiRBU-LgOlfAwP-XQ"
      decimals="-3"
      id="Tc_FkVWWxohmEiF1cLEAHEG_A_10_21"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">1271348000</us-gaap:Revenues>
    <fix:PercentageOfRevenueFromContractWithCustomer
      contextRef="Duration_1_1_2023_To_9_30_2023_srt_MajorCustomersAxis_fix_ManufacturingCustomerMember_1ntFAqiRBU-LgOlfAwP-XQ"
      decimals="3"
      id="Tc_hZuR2UI_dUK6JwMu6nU82Q_10_23"
      unitRef="Unit_Standard_pure_0GIr2wv4rk-T38a8Lz0A5w">0.330</fix:PercentageOfRevenueFromContractWithCustomer>
    <us-gaap:Revenues
      contextRef="Duration_7_1_2024_To_9_30_2024_srt_MajorCustomersAxis_fix_EducationMember_3s_WeWJeO02h2rX6ci5CYA"
      decimals="-3"
      id="Tc_uRKarVtay0Shq3opPFk57A_11_3"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">195737000</us-gaap:Revenues>
    <fix:PercentageOfRevenueFromContractWithCustomer
      contextRef="Duration_7_1_2024_To_9_30_2024_srt_MajorCustomersAxis_fix_EducationMember_3s_WeWJeO02h2rX6ci5CYA"
      decimals="3"
      id="Tc_-seIZWV7CUi7mwZ39mGPrQ_11_5"
      unitRef="Unit_Standard_pure_0GIr2wv4rk-T38a8Lz0A5w">0.108</fix:PercentageOfRevenueFromContractWithCustomer>
    <us-gaap:Revenues
      contextRef="Duration_7_1_2023_To_9_30_2023_srt_MajorCustomersAxis_fix_EducationMember_IXPI4j2t1EuVO_835l-ROg"
      decimals="-3"
      id="Tc_gRuNo81WC0-O9sULjDUoiA_11_9"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">139206000</us-gaap:Revenues>
    <fix:PercentageOfRevenueFromContractWithCustomer
      contextRef="Duration_7_1_2023_To_9_30_2023_srt_MajorCustomersAxis_fix_EducationMember_IXPI4j2t1EuVO_835l-ROg"
      decimals="3"
      id="Tc_GbKEnPoqXk6sRZo73tLctg_11_11"
      unitRef="Unit_Standard_pure_0GIr2wv4rk-T38a8Lz0A5w">0.101</fix:PercentageOfRevenueFromContractWithCustomer>
    <us-gaap:Revenues
      contextRef="Duration_1_1_2024_To_9_30_2024_srt_MajorCustomersAxis_fix_EducationMember_7MnM8jwS_Umjv2UlYVMfxQ"
      decimals="-3"
      id="Tc_ylYgGJMyMUuzh_OFx6QMsg_11_15"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">523153000</us-gaap:Revenues>
    <fix:PercentageOfRevenueFromContractWithCustomer
      contextRef="Duration_1_1_2024_To_9_30_2024_srt_MajorCustomersAxis_fix_EducationMember_7MnM8jwS_Umjv2UlYVMfxQ"
      decimals="3"
      id="Tc_aEEAqlwIsUyBesADbN4Qgw_11_17"
      unitRef="Unit_Standard_pure_0GIr2wv4rk-T38a8Lz0A5w">0.101</fix:PercentageOfRevenueFromContractWithCustomer>
    <us-gaap:Revenues
      contextRef="Duration_1_1_2023_To_9_30_2023_srt_MajorCustomersAxis_fix_EducationMember_RzrHrhvZOEqM88oaj1mOWw"
      decimals="-3"
      id="Tc_dSnfPTGnYkG9MmNuGASY4g_11_21"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">376637000</us-gaap:Revenues>
    <fix:PercentageOfRevenueFromContractWithCustomer
      contextRef="Duration_1_1_2023_To_9_30_2023_srt_MajorCustomersAxis_fix_EducationMember_RzrHrhvZOEqM88oaj1mOWw"
      decimals="3"
      id="Tc_N0stX73itUmIvnLzfgkt7g_11_23"
      unitRef="Unit_Standard_pure_0GIr2wv4rk-T38a8Lz0A5w">0.098</fix:PercentageOfRevenueFromContractWithCustomer>
    <us-gaap:Revenues
      contextRef="Duration_7_1_2024_To_9_30_2024_srt_MajorCustomersAxis_fix_HealthcareSectorCustomerMember_iM7xuXrB1UGGGYT2NTTnKw"
      decimals="-3"
      id="Tc_0S7fmB7y8U63xOPKOmApDA_12_3"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">149974000</us-gaap:Revenues>
    <fix:PercentageOfRevenueFromContractWithCustomer
      contextRef="Duration_7_1_2024_To_9_30_2024_srt_MajorCustomersAxis_fix_HealthcareSectorCustomerMember_iM7xuXrB1UGGGYT2NTTnKw"
      decimals="3"
      id="Tc_AG3OcPwwrUSLooaiJ_qdpA_12_5"
      unitRef="Unit_Standard_pure_0GIr2wv4rk-T38a8Lz0A5w">0.083</fix:PercentageOfRevenueFromContractWithCustomer>
    <us-gaap:Revenues
      contextRef="Duration_7_1_2023_To_9_30_2023_srt_MajorCustomersAxis_fix_HealthcareSectorCustomerMember_98MrGE2fNEW16lWzpetk6A"
      decimals="-3"
      id="Tc_fHdiH2Vb1EOfQd0127AioA_12_9"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">133130000</us-gaap:Revenues>
    <fix:PercentageOfRevenueFromContractWithCustomer
      contextRef="Duration_7_1_2023_To_9_30_2023_srt_MajorCustomersAxis_fix_HealthcareSectorCustomerMember_98MrGE2fNEW16lWzpetk6A"
      decimals="3"
      id="Tc_QhysT92YQkC8k21MG3FoWA_12_11"
      unitRef="Unit_Standard_pure_0GIr2wv4rk-T38a8Lz0A5w">0.097</fix:PercentageOfRevenueFromContractWithCustomer>
    <us-gaap:Revenues
      contextRef="Duration_1_1_2024_To_9_30_2024_srt_MajorCustomersAxis_fix_HealthcareSectorCustomerMember_qD7fXzmzKkm_9Q_7qkwq4A"
      decimals="-3"
      id="Tc_5fWhqKrQ80S61ddj3FztpA_12_15"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">424450000</us-gaap:Revenues>
    <fix:PercentageOfRevenueFromContractWithCustomer
      contextRef="Duration_1_1_2024_To_9_30_2024_srt_MajorCustomersAxis_fix_HealthcareSectorCustomerMember_qD7fXzmzKkm_9Q_7qkwq4A"
      decimals="3"
      id="Tc_BkFK7k8qNkqSSjmz0H1Ttw_12_17"
      unitRef="Unit_Standard_pure_0GIr2wv4rk-T38a8Lz0A5w">0.082</fix:PercentageOfRevenueFromContractWithCustomer>
    <us-gaap:Revenues
      contextRef="Duration_1_1_2023_To_9_30_2023_srt_MajorCustomersAxis_fix_HealthcareSectorCustomerMember_DQuFCD0170O_Pg1jeSAQdQ"
      decimals="-3"
      id="Tc_W0Dn11ERY0e6_kwkvY9JvA_12_21"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">431329000</us-gaap:Revenues>
    <fix:PercentageOfRevenueFromContractWithCustomer
      contextRef="Duration_1_1_2023_To_9_30_2023_srt_MajorCustomersAxis_fix_HealthcareSectorCustomerMember_DQuFCD0170O_Pg1jeSAQdQ"
      decimals="3"
      id="Tc_4dodzskNWEinLDR0T1ILuA_12_23"
      unitRef="Unit_Standard_pure_0GIr2wv4rk-T38a8Lz0A5w">0.112</fix:PercentageOfRevenueFromContractWithCustomer>
    <us-gaap:Revenues
      contextRef="Duration_7_1_2024_To_9_30_2024_srt_MajorCustomersAxis_fix_OfficeBuildingCustomerMember_jctX_m442UmvBsXqlaT9Yg"
      decimals="-3"
      id="Tc_O3pXsFPN_Ey--MFKOcHa7A_13_3"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">109233000</us-gaap:Revenues>
    <fix:PercentageOfRevenueFromContractWithCustomer
      contextRef="Duration_7_1_2024_To_9_30_2024_srt_MajorCustomersAxis_fix_OfficeBuildingCustomerMember_jctX_m442UmvBsXqlaT9Yg"
      decimals="3"
      id="Tc_RU3lCZcioEeOFsoUHA9uNQ_13_5"
      unitRef="Unit_Standard_pure_0GIr2wv4rk-T38a8Lz0A5w">0.060</fix:PercentageOfRevenueFromContractWithCustomer>
    <us-gaap:Revenues
      contextRef="Duration_7_1_2023_To_9_30_2023_srt_MajorCustomersAxis_fix_OfficeBuildingCustomerMember_pHSah2Q_ZkafnHa1Q7RhOg"
      decimals="-3"
      id="Tc_KHzh7_0P7E6mNG81lDcqWQ_13_9"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">104937000</us-gaap:Revenues>
    <fix:PercentageOfRevenueFromContractWithCustomer
      contextRef="Duration_7_1_2023_To_9_30_2023_srt_MajorCustomersAxis_fix_OfficeBuildingCustomerMember_pHSah2Q_ZkafnHa1Q7RhOg"
      decimals="3"
      id="Tc_Obj1U-Z7HkG0tCcBzsLkvw_13_11"
      unitRef="Unit_Standard_pure_0GIr2wv4rk-T38a8Lz0A5w">0.076</fix:PercentageOfRevenueFromContractWithCustomer>
    <us-gaap:Revenues
      contextRef="Duration_1_1_2024_To_9_30_2024_srt_MajorCustomersAxis_fix_OfficeBuildingCustomerMember_BcP-IXTgNUGzTH6kcfg3Zw"
      decimals="-3"
      id="Tc_COsjjsvyEUKbbl2m5U9f2A_13_15"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">326137000</us-gaap:Revenues>
    <fix:PercentageOfRevenueFromContractWithCustomer
      contextRef="Duration_1_1_2024_To_9_30_2024_srt_MajorCustomersAxis_fix_OfficeBuildingCustomerMember_BcP-IXTgNUGzTH6kcfg3Zw"
      decimals="3"
      id="Tc_rUgDj5XbmUWs7HUlJyOSKA_13_17"
      unitRef="Unit_Standard_pure_0GIr2wv4rk-T38a8Lz0A5w">0.063</fix:PercentageOfRevenueFromContractWithCustomer>
    <us-gaap:Revenues
      contextRef="Duration_1_1_2023_To_9_30_2023_srt_MajorCustomersAxis_fix_OfficeBuildingCustomerMember_5ck-_ey1iEmhLHtML0T7Qw"
      decimals="-3"
      id="Tc_B_DVK5SynkyNkbPksZAR4A_13_21"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">299103000</us-gaap:Revenues>
    <fix:PercentageOfRevenueFromContractWithCustomer
      contextRef="Duration_1_1_2023_To_9_30_2023_srt_MajorCustomersAxis_fix_OfficeBuildingCustomerMember_5ck-_ey1iEmhLHtML0T7Qw"
      decimals="3"
      id="Tc_EwdYcjvfv0GA5rCCXTA-dw_13_23"
      unitRef="Unit_Standard_pure_0GIr2wv4rk-T38a8Lz0A5w">0.078</fix:PercentageOfRevenueFromContractWithCustomer>
    <us-gaap:Revenues
      contextRef="Duration_7_1_2024_To_9_30_2024_srt_MajorCustomersAxis_fix_RetailRestaurantsAndEntertainmentMember_FdEm-EcqqEOqEpuOJGXGqQ"
      decimals="-3"
      id="Tc__kwqPIUIAEy0IuD2IM7V4A_14_3"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">114572000</us-gaap:Revenues>
    <fix:PercentageOfRevenueFromContractWithCustomer
      contextRef="Duration_7_1_2024_To_9_30_2024_srt_MajorCustomersAxis_fix_RetailRestaurantsAndEntertainmentMember_FdEm-EcqqEOqEpuOJGXGqQ"
      decimals="3"
      id="Tc_VqEWRo4hZ06ondQH6VpKWQ_14_5"
      unitRef="Unit_Standard_pure_0GIr2wv4rk-T38a8Lz0A5w">0.063</fix:PercentageOfRevenueFromContractWithCustomer>
    <us-gaap:Revenues
      contextRef="Duration_7_1_2023_To_9_30_2023_srt_MajorCustomersAxis_fix_RetailRestaurantsAndEntertainmentMember_jGe7tXzCSUazhQentwBi6g"
      decimals="-3"
      id="Tc_vtFRzckmzUSk_1WCzgG9oQ_14_9"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">77802000</us-gaap:Revenues>
    <fix:PercentageOfRevenueFromContractWithCustomer
      contextRef="Duration_7_1_2023_To_9_30_2023_srt_MajorCustomersAxis_fix_RetailRestaurantsAndEntertainmentMember_jGe7tXzCSUazhQentwBi6g"
      decimals="3"
      id="Tc_1t4P1T5tN0eM-0QjGO9INg_14_11"
      unitRef="Unit_Standard_pure_0GIr2wv4rk-T38a8Lz0A5w">0.056</fix:PercentageOfRevenueFromContractWithCustomer>
    <us-gaap:Revenues
      contextRef="Duration_1_1_2024_To_9_30_2024_srt_MajorCustomersAxis_fix_RetailRestaurantsAndEntertainmentMember_mSxxcWu0iEGriS1GvinPXg"
      decimals="-3"
      id="Tc_ig5LCgoRHUaQJVSFlSMOgw_14_15"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">309658000</us-gaap:Revenues>
    <fix:PercentageOfRevenueFromContractWithCustomer
      contextRef="Duration_1_1_2024_To_9_30_2024_srt_MajorCustomersAxis_fix_RetailRestaurantsAndEntertainmentMember_mSxxcWu0iEGriS1GvinPXg"
      decimals="3"
      id="Tc_CCg6t-pJH0iShZsLXJNJnA_14_17"
      unitRef="Unit_Standard_pure_0GIr2wv4rk-T38a8Lz0A5w">0.060</fix:PercentageOfRevenueFromContractWithCustomer>
    <us-gaap:Revenues
      contextRef="Duration_1_1_2023_To_9_30_2023_srt_MajorCustomersAxis_fix_RetailRestaurantsAndEntertainmentMember_iRcGOwE8BkqMimheyifr0Q"
      decimals="-3"
      id="Tc_l-0V5scXWEWGPuTcZhP98Q_14_21"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">234779000</us-gaap:Revenues>
    <fix:PercentageOfRevenueFromContractWithCustomer
      contextRef="Duration_1_1_2023_To_9_30_2023_srt_MajorCustomersAxis_fix_RetailRestaurantsAndEntertainmentMember_iRcGOwE8BkqMimheyifr0Q"
      decimals="3"
      id="Tc_cSsSS4JnbkiTus6D30setQ_14_23"
      unitRef="Unit_Standard_pure_0GIr2wv4rk-T38a8Lz0A5w">0.061</fix:PercentageOfRevenueFromContractWithCustomer>
    <us-gaap:Revenues
      contextRef="Duration_7_1_2024_To_9_30_2024_srt_MajorCustomersAxis_fix_GovernmentCustomerMember_6rJ0v9NfEkehmj1jbsxjTA"
      decimals="-3"
      id="Tc_HuMPYQ_XQUydXB2CULrrmQ_15_3"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">92555000</us-gaap:Revenues>
    <fix:PercentageOfRevenueFromContractWithCustomer
      contextRef="Duration_7_1_2024_To_9_30_2024_srt_MajorCustomersAxis_fix_GovernmentCustomerMember_6rJ0v9NfEkehmj1jbsxjTA"
      decimals="3"
      id="Tc_bQj-OJM0aUGJ4prreO-SXQ_15_5"
      unitRef="Unit_Standard_pure_0GIr2wv4rk-T38a8Lz0A5w">0.051</fix:PercentageOfRevenueFromContractWithCustomer>
    <us-gaap:Revenues
      contextRef="Duration_7_1_2023_To_9_30_2023_srt_MajorCustomersAxis_fix_GovernmentCustomerMember_lu4XhCrd50S4x-cEsGLwMA"
      decimals="-3"
      id="Tc_pabRg2d3UUSMt8i7Le0C6w_15_9"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">85220000</us-gaap:Revenues>
    <fix:PercentageOfRevenueFromContractWithCustomer
      contextRef="Duration_7_1_2023_To_9_30_2023_srt_MajorCustomersAxis_fix_GovernmentCustomerMember_lu4XhCrd50S4x-cEsGLwMA"
      decimals="3"
      id="Tc_lFpGysyypUKnbKBCs7U5Bg_15_11"
      unitRef="Unit_Standard_pure_0GIr2wv4rk-T38a8Lz0A5w">0.063</fix:PercentageOfRevenueFromContractWithCustomer>
    <us-gaap:Revenues
      contextRef="Duration_1_1_2024_To_9_30_2024_srt_MajorCustomersAxis_fix_GovernmentCustomerMember_Bn5B0HvRvkyNvOiVoQwe-A"
      decimals="-3"
      id="Tc_SF99kfhrZEOSymCwrkFdwg_15_15"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">271429000</us-gaap:Revenues>
    <fix:PercentageOfRevenueFromContractWithCustomer
      contextRef="Duration_1_1_2024_To_9_30_2024_srt_MajorCustomersAxis_fix_GovernmentCustomerMember_Bn5B0HvRvkyNvOiVoQwe-A"
      decimals="3"
      id="Tc_TctyJ9or40K6IFeyzLJCWA_15_17"
      unitRef="Unit_Standard_pure_0GIr2wv4rk-T38a8Lz0A5w">0.053</fix:PercentageOfRevenueFromContractWithCustomer>
    <us-gaap:Revenues
      contextRef="Duration_1_1_2023_To_9_30_2023_srt_MajorCustomersAxis_fix_GovernmentCustomerMember_KZybkavxEES6_Y1Ef66T9w"
      decimals="-3"
      id="Tc_RNXpxT8FK02t2LyP9cgdTQ_15_21"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">227232000</us-gaap:Revenues>
    <fix:PercentageOfRevenueFromContractWithCustomer
      contextRef="Duration_1_1_2023_To_9_30_2023_srt_MajorCustomersAxis_fix_GovernmentCustomerMember_KZybkavxEES6_Y1Ef66T9w"
      decimals="3"
      id="Tc_mAnHxiAj3k6jQKGLxpy9Lw_15_23"
      unitRef="Unit_Standard_pure_0GIr2wv4rk-T38a8Lz0A5w">0.059</fix:PercentageOfRevenueFromContractWithCustomer>
    <us-gaap:Revenues
      contextRef="Duration_7_1_2024_To_9_30_2024_srt_MajorCustomersAxis_fix_MultiFamilyAndResidentialMember_yHQoZtxDMUS7uq8YgHlu8g"
      decimals="-3"
      id="Tc_a9HnBr9wLUeTwu6yyWDxsw_16_3"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">33838000</us-gaap:Revenues>
    <fix:PercentageOfRevenueFromContractWithCustomer
      contextRef="Duration_7_1_2024_To_9_30_2024_srt_MajorCustomersAxis_fix_MultiFamilyAndResidentialMember_yHQoZtxDMUS7uq8YgHlu8g"
      decimals="3"
      id="Tc_PEsHVByFR0q1wV_BrUIzSQ_16_5"
      unitRef="Unit_Standard_pure_0GIr2wv4rk-T38a8Lz0A5w">0.019</fix:PercentageOfRevenueFromContractWithCustomer>
    <us-gaap:Revenues
      contextRef="Duration_7_1_2023_To_9_30_2023_srt_MajorCustomersAxis_fix_MultiFamilyAndResidentialMember_lXNLSArRmEWGe3DLspPuEQ"
      decimals="-3"
      id="Tc_KT86ODy-nEWGVJWue7RFhg_16_9"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">45523000</us-gaap:Revenues>
    <fix:PercentageOfRevenueFromContractWithCustomer
      contextRef="Duration_7_1_2023_To_9_30_2023_srt_MajorCustomersAxis_fix_MultiFamilyAndResidentialMember_lXNLSArRmEWGe3DLspPuEQ"
      decimals="3"
      id="Tc_EbqhEdkXxkS4iDo6aNAxVA_16_11"
      unitRef="Unit_Standard_pure_0GIr2wv4rk-T38a8Lz0A5w">0.033</fix:PercentageOfRevenueFromContractWithCustomer>
    <us-gaap:Revenues
      contextRef="Duration_1_1_2024_To_9_30_2024_srt_MajorCustomersAxis_fix_MultiFamilyAndResidentialMember__QFzND4WM0qZXRCC48RVPg"
      decimals="-3"
      id="Tc_kxT4qz0xjkqKFMmhodoThQ_16_15"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">110870000</us-gaap:Revenues>
    <fix:PercentageOfRevenueFromContractWithCustomer
      contextRef="Duration_1_1_2024_To_9_30_2024_srt_MajorCustomersAxis_fix_MultiFamilyAndResidentialMember__QFzND4WM0qZXRCC48RVPg"
      decimals="3"
      id="Tc_NCYAaGzV2EuAd0ZMzfKVtw_16_17"
      unitRef="Unit_Standard_pure_0GIr2wv4rk-T38a8Lz0A5w">0.022</fix:PercentageOfRevenueFromContractWithCustomer>
    <us-gaap:Revenues
      contextRef="Duration_1_1_2023_To_9_30_2023_srt_MajorCustomersAxis_fix_MultiFamilyAndResidentialMember_gt6wgJzRZEayKVY24Ip8yQ"
      decimals="-3"
      id="Tc_ICZD0jnyh0qo1cI73MiIVw_16_21"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">136825000</us-gaap:Revenues>
    <fix:PercentageOfRevenueFromContractWithCustomer
      contextRef="Duration_1_1_2023_To_9_30_2023_srt_MajorCustomersAxis_fix_MultiFamilyAndResidentialMember_gt6wgJzRZEayKVY24Ip8yQ"
      decimals="3"
      id="Tc_XL6eoSjBDUCAvr2R1crAJw_16_23"
      unitRef="Unit_Standard_pure_0GIr2wv4rk-T38a8Lz0A5w">0.035</fix:PercentageOfRevenueFromContractWithCustomer>
    <us-gaap:Revenues
      contextRef="Duration_7_1_2024_To_9_30_2024_srt_MajorCustomersAxis_us-gaap_OtherCustomerMember_ooxekhUnHkC59OhygvzcEg"
      decimals="-3"
      id="Tc_AZT32KGx006ahlfTrpc49w_17_3"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">48902000</us-gaap:Revenues>
    <fix:PercentageOfRevenueFromContractWithCustomer
      contextRef="Duration_7_1_2024_To_9_30_2024_srt_MajorCustomersAxis_us-gaap_OtherCustomerMember_ooxekhUnHkC59OhygvzcEg"
      decimals="3"
      id="Tc_HYEVJTmk3kWBc0uvN1XGmQ_17_5"
      unitRef="Unit_Standard_pure_0GIr2wv4rk-T38a8Lz0A5w">0.027</fix:PercentageOfRevenueFromContractWithCustomer>
    <us-gaap:Revenues
      contextRef="Duration_7_1_2023_To_9_30_2023_srt_MajorCustomersAxis_us-gaap_OtherCustomerMember_VGlfj-1TzEmnVzKTrmKWiQ"
      decimals="-3"
      id="Tc_Eh1MNVX3aka7ew6QCy4C-g_17_9"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">19286000</us-gaap:Revenues>
    <fix:PercentageOfRevenueFromContractWithCustomer
      contextRef="Duration_7_1_2023_To_9_30_2023_srt_MajorCustomersAxis_us-gaap_OtherCustomerMember_VGlfj-1TzEmnVzKTrmKWiQ"
      decimals="3"
      id="Tc_giAyzj5P0UyU4nFbeOjyTQ_17_11"
      unitRef="Unit_Standard_pure_0GIr2wv4rk-T38a8Lz0A5w">0.014</fix:PercentageOfRevenueFromContractWithCustomer>
    <us-gaap:Revenues
      contextRef="Duration_1_1_2024_To_9_30_2024_srt_MajorCustomersAxis_us-gaap_OtherCustomerMember_3oz8P6zHak-9HhcCONsscQ"
      decimals="-3"
      id="Tc_CI64Oar7AkKzoFQGq4_QbQ_17_15"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">112678000</us-gaap:Revenues>
    <fix:PercentageOfRevenueFromContractWithCustomer
      contextRef="Duration_1_1_2024_To_9_30_2024_srt_MajorCustomersAxis_us-gaap_OtherCustomerMember_3oz8P6zHak-9HhcCONsscQ"
      decimals="3"
      id="Tc_8d6VoT7NAUKvMn93r1XGRw_17_17"
      unitRef="Unit_Standard_pure_0GIr2wv4rk-T38a8Lz0A5w">0.022</fix:PercentageOfRevenueFromContractWithCustomer>
    <us-gaap:Revenues
      contextRef="Duration_1_1_2023_To_9_30_2023_srt_MajorCustomersAxis_us-gaap_OtherCustomerMember_1dZZBF2VrkuIAaJtkjLDMw"
      decimals="-3"
      id="Tc_C9gDAKAns06X5ajnUPwF0Q_17_21"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">76614000</us-gaap:Revenues>
    <fix:PercentageOfRevenueFromContractWithCustomer
      contextRef="Duration_1_1_2023_To_9_30_2023_srt_MajorCustomersAxis_us-gaap_OtherCustomerMember_1dZZBF2VrkuIAaJtkjLDMw"
      decimals="3"
      id="Tc_y0dZNMEXpk6uQfhr0ivbAg_17_23"
      unitRef="Unit_Standard_pure_0GIr2wv4rk-T38a8Lz0A5w">0.020</fix:PercentageOfRevenueFromContractWithCustomer>
    <us-gaap:Revenues
      contextRef="Duration_7_1_2024_To_9_30_2024_XquWrHsdeEmkK9F8qXf6qA"
      decimals="-3"
      id="Tc_zebvIADh0Uql7JV0q5uPRg_18_3"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">1812366000</us-gaap:Revenues>
    <fix:PercentageOfRevenueFromContractWithCustomer
      contextRef="Duration_7_1_2024_To_9_30_2024_XquWrHsdeEmkK9F8qXf6qA"
      decimals="3"
      id="Tc_N-Eug3VI50C4DEe3PIesZw_18_5"
      unitRef="Unit_Standard_pure_0GIr2wv4rk-T38a8Lz0A5w">1.000</fix:PercentageOfRevenueFromContractWithCustomer>
    <us-gaap:Revenues
      contextRef="Duration_7_1_2023_To_9_30_2023_S4fUa5HYuk6ZPxhUrn5m5w"
      decimals="-3"
      id="Tc_iu0NyW2vpUqkw7ab0DYX-A_18_9"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">1378124000</us-gaap:Revenues>
    <fix:PercentageOfRevenueFromContractWithCustomer
      contextRef="Duration_7_1_2023_To_9_30_2023_S4fUa5HYuk6ZPxhUrn5m5w"
      decimals="3"
      id="Tc_YgGmYvbD5kmcs62EA5lz8Q_18_11"
      unitRef="Unit_Standard_pure_0GIr2wv4rk-T38a8Lz0A5w">1.000</fix:PercentageOfRevenueFromContractWithCustomer>
    <us-gaap:Revenues
      contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ"
      decimals="-3"
      id="Tc_Uoifuw8Mn0GMYwsoX2zKFw_18_15"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">5159672000</us-gaap:Revenues>
    <fix:PercentageOfRevenueFromContractWithCustomer
      contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ"
      decimals="3"
      id="Tc_2AdZQ8EWDkGlJkNVe4yp4g_18_17"
      unitRef="Unit_Standard_pure_0GIr2wv4rk-T38a8Lz0A5w">1.000</fix:PercentageOfRevenueFromContractWithCustomer>
    <us-gaap:Revenues
      contextRef="Duration_1_1_2023_To_9_30_2023_0vpBpKZIxEC_KY5z5G8rKA"
      decimals="-3"
      id="Tc__qZg61pIV0K5AZNEGyP92Q_18_21"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">3849194000</us-gaap:Revenues>
    <fix:PercentageOfRevenueFromContractWithCustomer
      contextRef="Duration_1_1_2023_To_9_30_2023_0vpBpKZIxEC_KY5z5G8rKA"
      decimals="3"
      id="Tc_exPRvx-lu0u-vsusnXHZ0w_18_23"
      unitRef="Unit_Standard_pure_0GIr2wv4rk-T38a8Lz0A5w">1.000</fix:PercentageOfRevenueFromContractWithCustomer>
    <us-gaap:Revenues
      contextRef="Duration_7_1_2024_To_9_30_2024_us-gaap_StatementBusinessSegmentsAxis_fix_NewConstructionMember_TPRoRp0_rkeI19wbVGoUiw"
      decimals="-3"
      id="Tc_nsX5hpcX0kCaRJZP-87xwg_22_3"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">949035000</us-gaap:Revenues>
    <fix:PercentageOfRevenueFromContractWithCustomer
      contextRef="Duration_7_1_2024_To_9_30_2024_us-gaap_StatementBusinessSegmentsAxis_fix_NewConstructionMember_TPRoRp0_rkeI19wbVGoUiw"
      decimals="3"
      id="Tc_6-MK6DzvvkuikQvnLqnLaA_22_5"
      unitRef="Unit_Standard_pure_0GIr2wv4rk-T38a8Lz0A5w">0.524</fix:PercentageOfRevenueFromContractWithCustomer>
    <us-gaap:Revenues
      contextRef="Duration_7_1_2023_To_9_30_2023_us-gaap_StatementBusinessSegmentsAxis_fix_NewConstructionMember_X-8Qi_Gr-EqavravxT4Tmw"
      decimals="-3"
      id="Tc_W_oggsw5iE-0aeutV2WjJw_22_9"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">798289000</us-gaap:Revenues>
    <fix:PercentageOfRevenueFromContractWithCustomer
      contextRef="Duration_7_1_2023_To_9_30_2023_us-gaap_StatementBusinessSegmentsAxis_fix_NewConstructionMember_X-8Qi_Gr-EqavravxT4Tmw"
      decimals="3"
      id="Tc_XgSLhlmoEEmWPZVXNole_Q_22_11"
      unitRef="Unit_Standard_pure_0GIr2wv4rk-T38a8Lz0A5w">0.579</fix:PercentageOfRevenueFromContractWithCustomer>
    <us-gaap:Revenues
      contextRef="Duration_1_1_2024_To_9_30_2024_us-gaap_StatementBusinessSegmentsAxis_fix_NewConstructionMember_1OFwKv6p1E-T4eLsC_JEsg"
      decimals="-3"
      id="Tc_J0fwrtZIvkqkLgJys0P4eQ_22_15"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">2930283000</us-gaap:Revenues>
    <fix:PercentageOfRevenueFromContractWithCustomer
      contextRef="Duration_1_1_2024_To_9_30_2024_us-gaap_StatementBusinessSegmentsAxis_fix_NewConstructionMember_1OFwKv6p1E-T4eLsC_JEsg"
      decimals="3"
      id="Tc_OmX-0RxFfUKCY6Vj_r3vMQ_22_17"
      unitRef="Unit_Standard_pure_0GIr2wv4rk-T38a8Lz0A5w">0.568</fix:PercentageOfRevenueFromContractWithCustomer>
    <us-gaap:Revenues
      contextRef="Duration_1_1_2023_To_9_30_2023_us-gaap_StatementBusinessSegmentsAxis_fix_NewConstructionMember_vZyk2ScSaUWum8ZsO7KiAw"
      decimals="-3"
      id="Tc_RuSDnS7nSE2g9ADRFxdtpA_22_21"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">2108153000</us-gaap:Revenues>
    <fix:PercentageOfRevenueFromContractWithCustomer
      contextRef="Duration_1_1_2023_To_9_30_2023_us-gaap_StatementBusinessSegmentsAxis_fix_NewConstructionMember_vZyk2ScSaUWum8ZsO7KiAw"
      decimals="3"
      id="Tc_xxl8POw7pkeYbpFKW4hpCw_22_23"
      unitRef="Unit_Standard_pure_0GIr2wv4rk-T38a8Lz0A5w">0.548</fix:PercentageOfRevenueFromContractWithCustomer>
    <us-gaap:Revenues
      contextRef="Duration_7_1_2024_To_9_30_2024_us-gaap_StatementBusinessSegmentsAxis_fix_ExistingBuildingConstructionMember_xsHcU1o_pk6S278XapX_zw"
      decimals="-3"
      id="Tc_lyVP4WKOLE6qPuFjTAGTQg_23_3"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">570288000</us-gaap:Revenues>
    <fix:PercentageOfRevenueFromContractWithCustomer
      contextRef="Duration_7_1_2024_To_9_30_2024_us-gaap_StatementBusinessSegmentsAxis_fix_ExistingBuildingConstructionMember_xsHcU1o_pk6S278XapX_zw"
      decimals="3"
      id="Tc_JNR68YSFo0q5t6scawLoiQ_23_5"
      unitRef="Unit_Standard_pure_0GIr2wv4rk-T38a8Lz0A5w">0.315</fix:PercentageOfRevenueFromContractWithCustomer>
    <us-gaap:Revenues
      contextRef="Duration_7_1_2023_To_9_30_2023_us-gaap_StatementBusinessSegmentsAxis_fix_ExistingBuildingConstructionMember_FXRjqCbVgEKB2tybWB0X-g"
      decimals="-3"
      id="Tc_SIaYmcxxq0eO3a4D9ZYR9w_23_9"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">305795000</us-gaap:Revenues>
    <fix:PercentageOfRevenueFromContractWithCustomer
      contextRef="Duration_7_1_2023_To_9_30_2023_us-gaap_StatementBusinessSegmentsAxis_fix_ExistingBuildingConstructionMember_FXRjqCbVgEKB2tybWB0X-g"
      decimals="3"
      id="Tc_vkaUpGnj_kuZNzfXLgORlw_23_11"
      unitRef="Unit_Standard_pure_0GIr2wv4rk-T38a8Lz0A5w">0.222</fix:PercentageOfRevenueFromContractWithCustomer>
    <us-gaap:Revenues
      contextRef="Duration_1_1_2024_To_9_30_2024_us-gaap_StatementBusinessSegmentsAxis_fix_ExistingBuildingConstructionMember_kFgT68z3yEm6YFsca1c4sQ"
      decimals="-3"
      id="Tc_qBBXKnOC7kKs2aFFYyZpkg_23_15"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">1407231000</us-gaap:Revenues>
    <fix:PercentageOfRevenueFromContractWithCustomer
      contextRef="Duration_1_1_2024_To_9_30_2024_us-gaap_StatementBusinessSegmentsAxis_fix_ExistingBuildingConstructionMember_kFgT68z3yEm6YFsca1c4sQ"
      decimals="3"
      id="Tc_tikDA9Iq6E6LOROTrIx9Qw_23_17"
      unitRef="Unit_Standard_pure_0GIr2wv4rk-T38a8Lz0A5w">0.273</fix:PercentageOfRevenueFromContractWithCustomer>
    <us-gaap:Revenues
      contextRef="Duration_1_1_2023_To_9_30_2023_us-gaap_StatementBusinessSegmentsAxis_fix_ExistingBuildingConstructionMember_n_MbMVArkEyX3wbyy5U5Rw"
      decimals="-3"
      id="Tc__DApExSFK0Goh6-2OIpbMA_23_21"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">974085000</us-gaap:Revenues>
    <fix:PercentageOfRevenueFromContractWithCustomer
      contextRef="Duration_1_1_2023_To_9_30_2023_us-gaap_StatementBusinessSegmentsAxis_fix_ExistingBuildingConstructionMember_n_MbMVArkEyX3wbyy5U5Rw"
      decimals="3"
      id="Tc_s67f1reXUkCfqRpENMfu0Q_23_23"
      unitRef="Unit_Standard_pure_0GIr2wv4rk-T38a8Lz0A5w">0.253</fix:PercentageOfRevenueFromContractWithCustomer>
    <us-gaap:Revenues
      contextRef="Duration_7_1_2024_To_9_30_2024_us-gaap_StatementBusinessSegmentsAxis_fix_ServiceProjectsMember_v1xTvZU3H0O-NNEJG5Wuag"
      decimals="-3"
      id="Tc_C3Ak6SiMJ0iFx4-rIFGA0g_24_3"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">125249000</us-gaap:Revenues>
    <fix:PercentageOfRevenueFromContractWithCustomer
      contextRef="Duration_7_1_2024_To_9_30_2024_us-gaap_StatementBusinessSegmentsAxis_fix_ServiceProjectsMember_v1xTvZU3H0O-NNEJG5Wuag"
      decimals="3"
      id="Tc_U5lC2ujsFkOZTgcTjSKZig_24_5"
      unitRef="Unit_Standard_pure_0GIr2wv4rk-T38a8Lz0A5w">0.069</fix:PercentageOfRevenueFromContractWithCustomer>
    <us-gaap:Revenues
      contextRef="Duration_7_1_2023_To_9_30_2023_us-gaap_StatementBusinessSegmentsAxis_fix_ServiceProjectsMember_BIAAdohKR0KkRoxqv355pQ"
      decimals="-3"
      id="Tc_57rA1v72lEK6qczRreTDXQ_24_9"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">117202000</us-gaap:Revenues>
    <fix:PercentageOfRevenueFromContractWithCustomer
      contextRef="Duration_7_1_2023_To_9_30_2023_us-gaap_StatementBusinessSegmentsAxis_fix_ServiceProjectsMember_BIAAdohKR0KkRoxqv355pQ"
      decimals="3"
      id="Tc_3QwllkSTykCuaN9SSTXFJA_24_11"
      unitRef="Unit_Standard_pure_0GIr2wv4rk-T38a8Lz0A5w">0.085</fix:PercentageOfRevenueFromContractWithCustomer>
    <us-gaap:Revenues
      contextRef="Duration_1_1_2024_To_9_30_2024_us-gaap_StatementBusinessSegmentsAxis_fix_ServiceProjectsMember_UXRSMj4jZEaQfly5_6v8FA"
      decimals="-3"
      id="Tc_1t7gUUvauUeRvUNBjXNtSw_24_15"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">355643000</us-gaap:Revenues>
    <fix:PercentageOfRevenueFromContractWithCustomer
      contextRef="Duration_1_1_2024_To_9_30_2024_us-gaap_StatementBusinessSegmentsAxis_fix_ServiceProjectsMember_UXRSMj4jZEaQfly5_6v8FA"
      decimals="3"
      id="Tc_r0tafU4-6UCXeB90rv_aeg_24_17"
      unitRef="Unit_Standard_pure_0GIr2wv4rk-T38a8Lz0A5w">0.069</fix:PercentageOfRevenueFromContractWithCustomer>
    <us-gaap:Revenues
      contextRef="Duration_1_1_2023_To_9_30_2023_us-gaap_StatementBusinessSegmentsAxis_fix_ServiceProjectsMember_haGwYoQcvUCiGoQWZ1VG1w"
      decimals="-3"
      id="Tc_5nTaMH_lakSa01qV6RgelA_24_21"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">335053000</us-gaap:Revenues>
    <fix:PercentageOfRevenueFromContractWithCustomer
      contextRef="Duration_1_1_2023_To_9_30_2023_us-gaap_StatementBusinessSegmentsAxis_fix_ServiceProjectsMember_haGwYoQcvUCiGoQWZ1VG1w"
      decimals="3"
      id="Tc_vUasZ4RNMEG1ElGtS86dKA_24_23"
      unitRef="Unit_Standard_pure_0GIr2wv4rk-T38a8Lz0A5w">0.087</fix:PercentageOfRevenueFromContractWithCustomer>
    <us-gaap:Revenues
      contextRef="Duration_7_1_2024_To_9_30_2024_us-gaap_StatementBusinessSegmentsAxis_fix_ServiceCallsMaintenanceAndMonitoringMember_nRP3Zz-B5UeD5mhLWvsftg"
      decimals="-3"
      id="Tc_Go8NQVoMpk2CXjBiOuKokQ_25_3"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">167794000</us-gaap:Revenues>
    <fix:PercentageOfRevenueFromContractWithCustomer
      contextRef="Duration_7_1_2024_To_9_30_2024_us-gaap_StatementBusinessSegmentsAxis_fix_ServiceCallsMaintenanceAndMonitoringMember_nRP3Zz-B5UeD5mhLWvsftg"
      decimals="3"
      id="Tc_72OJs8apG0WTU3Znzq4UJQ_25_5"
      unitRef="Unit_Standard_pure_0GIr2wv4rk-T38a8Lz0A5w">0.092</fix:PercentageOfRevenueFromContractWithCustomer>
    <us-gaap:Revenues
      contextRef="Duration_7_1_2023_To_9_30_2023_us-gaap_StatementBusinessSegmentsAxis_fix_ServiceCallsMaintenanceAndMonitoringMember_NQSFRlXpkEGM1kjrMGGdkg"
      decimals="-3"
      id="Tc_J9XOdUM9DU-5kxa_MwxrWg_25_9"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">156838000</us-gaap:Revenues>
    <fix:PercentageOfRevenueFromContractWithCustomer
      contextRef="Duration_7_1_2023_To_9_30_2023_us-gaap_StatementBusinessSegmentsAxis_fix_ServiceCallsMaintenanceAndMonitoringMember_NQSFRlXpkEGM1kjrMGGdkg"
      decimals="3"
      id="Tc_IoGSxX-lLkOw7PmVyvUEEw_25_11"
      unitRef="Unit_Standard_pure_0GIr2wv4rk-T38a8Lz0A5w">0.114</fix:PercentageOfRevenueFromContractWithCustomer>
    <us-gaap:Revenues
      contextRef="Duration_1_1_2024_To_9_30_2024_us-gaap_StatementBusinessSegmentsAxis_fix_ServiceCallsMaintenanceAndMonitoringMember_g7dgBZVClUiBSjvSBcXJLA"
      decimals="-3"
      id="Tc_-D4QGCW0P0uRmYrVFSJT0Q_25_15"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">466515000</us-gaap:Revenues>
    <fix:PercentageOfRevenueFromContractWithCustomer
      contextRef="Duration_1_1_2024_To_9_30_2024_us-gaap_StatementBusinessSegmentsAxis_fix_ServiceCallsMaintenanceAndMonitoringMember_g7dgBZVClUiBSjvSBcXJLA"
      decimals="3"
      id="Tc_w1lflx5x-kmB3h7BBByMVw_25_17"
      unitRef="Unit_Standard_pure_0GIr2wv4rk-T38a8Lz0A5w">0.090</fix:PercentageOfRevenueFromContractWithCustomer>
    <us-gaap:Revenues
      contextRef="Duration_1_1_2023_To_9_30_2023_us-gaap_StatementBusinessSegmentsAxis_fix_ServiceCallsMaintenanceAndMonitoringMember_8McghxnrdUmSrStHl4sMXQ"
      decimals="-3"
      id="Tc_2MkSXFp0pEu3mzjSvcn5Zw_25_21"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">431903000</us-gaap:Revenues>
    <fix:PercentageOfRevenueFromContractWithCustomer
      contextRef="Duration_1_1_2023_To_9_30_2023_us-gaap_StatementBusinessSegmentsAxis_fix_ServiceCallsMaintenanceAndMonitoringMember_8McghxnrdUmSrStHl4sMXQ"
      decimals="3"
      id="Tc_AHNHuhjeOkCXG9zlX0AXcw_25_23"
      unitRef="Unit_Standard_pure_0GIr2wv4rk-T38a8Lz0A5w">0.112</fix:PercentageOfRevenueFromContractWithCustomer>
    <us-gaap:Revenues
      contextRef="Duration_7_1_2024_To_9_30_2024_XquWrHsdeEmkK9F8qXf6qA"
      decimals="-3"
      id="Tc_1H0-iUcGFEO1Lqng5f2xzw_26_3"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">1812366000</us-gaap:Revenues>
    <fix:PercentageOfRevenueFromContractWithCustomer
      contextRef="Duration_7_1_2024_To_9_30_2024_XquWrHsdeEmkK9F8qXf6qA"
      decimals="3"
      id="Tc__83bNbk2i0yjlXO82ZtzSQ_26_5"
      unitRef="Unit_Standard_pure_0GIr2wv4rk-T38a8Lz0A5w">1.000</fix:PercentageOfRevenueFromContractWithCustomer>
    <us-gaap:Revenues
      contextRef="Duration_7_1_2023_To_9_30_2023_S4fUa5HYuk6ZPxhUrn5m5w"
      decimals="-3"
      id="Tc_fCGl-Oe-Ck2dE0qiSNV7wg_26_9"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">1378124000</us-gaap:Revenues>
    <fix:PercentageOfRevenueFromContractWithCustomer
      contextRef="Duration_7_1_2023_To_9_30_2023_S4fUa5HYuk6ZPxhUrn5m5w"
      decimals="3"
      id="Tc_gazq5KMkJkGjDK4y-iq0WQ_26_11"
      unitRef="Unit_Standard_pure_0GIr2wv4rk-T38a8Lz0A5w">1.000</fix:PercentageOfRevenueFromContractWithCustomer>
    <us-gaap:Revenues
      contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ"
      decimals="-3"
      id="Tc_NpBgJZOHxEaV1Z04uAEpWA_26_15"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">5159672000</us-gaap:Revenues>
    <fix:PercentageOfRevenueFromContractWithCustomer
      contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ"
      decimals="3"
      id="Tc_jiBn5-VU2kCzMTcYofGQQA_26_17"
      unitRef="Unit_Standard_pure_0GIr2wv4rk-T38a8Lz0A5w">1.000</fix:PercentageOfRevenueFromContractWithCustomer>
    <us-gaap:Revenues
      contextRef="Duration_1_1_2023_To_9_30_2023_0vpBpKZIxEC_KY5z5G8rKA"
      decimals="-3"
      id="Tc_QCs-bgw4j0SAePeELzYSQw_26_21"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">3849194000</us-gaap:Revenues>
    <fix:PercentageOfRevenueFromContractWithCustomer
      contextRef="Duration_1_1_2023_To_9_30_2023_0vpBpKZIxEC_KY5z5G8rKA"
      decimals="3"
      id="Tc_vWlOMZ5lZ0y7D_JHT0ed5w_26_23"
      unitRef="Unit_Standard_pure_0GIr2wv4rk-T38a8Lz0A5w">1.000</fix:PercentageOfRevenueFromContractWithCustomer>
    <us-gaap:ContractWithCustomerAssetAndLiabilityTableTextBlock
      contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ"
      id="Group_7S-YE160a0qkfeeymf9kgQ">&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"&gt;Contract assets and liabilities in the Consolidated Balance Sheet consisted of the following amounts as of September 30, 2024 and December 31, 2023 (in thousands):&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:middle;width:61.71%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="position:absolute;top:50%;transform:translate(0,-50%);width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.02%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:14.19%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.87%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.02%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:14.15%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:middle;width:61.71%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:17.22%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0.05pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;September 30, 2024&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.87%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0.05pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:17.18%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0.05pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;December 31, 2023&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:middle;width:61.71%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"&gt;Contract assets:&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:14.19%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.87%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:14.15%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:middle;width:61.71%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"&gt;&lt;span style="white-space:pre-wrap;"&gt;   Costs and estimated earnings in excess of billings, less allowance for credit losses&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:14.19%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"&gt; 73,934&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.87%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:14.15%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"&gt; 28,084&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:middle;width:61.71%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"&gt;Contract liabilities:&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:14.19%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.87%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:14.15%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:middle;width:61.71%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"&gt;&lt;span style="white-space:pre-wrap;"&gt;   Billings in excess of costs and estimated earnings and deferred revenue&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:14.19%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"&gt; 1,197,532&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.87%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:14.15%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"&gt; 909,538&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</us-gaap:ContractWithCustomerAssetAndLiabilityTableTextBlock>
    <us-gaap:ContractWithCustomerAssetNet
      contextRef="As_Of_9_30_2024_um13j0l3zk2ITGaiED1DFA"
      decimals="-3"
      id="Tc_0hEui9XLcESxD01uI06yGA_3_2"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">73934000</us-gaap:ContractWithCustomerAssetNet>
    <us-gaap:ContractWithCustomerAssetNet
      contextRef="As_Of_12_31_2023_X7eqeHRTF0mRLJW7InVDdA"
      decimals="-3"
      id="Tc_RNLVvvvtxU-dLEo2oBKepQ_3_5"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">28084000</us-gaap:ContractWithCustomerAssetNet>
    <us-gaap:ContractWithCustomerLiabilityCurrent
      contextRef="As_Of_9_30_2024_um13j0l3zk2ITGaiED1DFA"
      decimals="-3"
      id="Tc_u9c5pboYREq3ekszQ_Y5bQ_5_2"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">1197532000</us-gaap:ContractWithCustomerLiabilityCurrent>
    <us-gaap:ContractWithCustomerLiabilityCurrent
      contextRef="As_Of_12_31_2023_X7eqeHRTF0mRLJW7InVDdA"
      decimals="-3"
      id="Tc_hUTZ0MSg70KIIOaLuQSRrQ_5_5"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">909538000</us-gaap:ContractWithCustomerLiabilityCurrent>
    <us-gaap:ContractWithCustomerLiabilityRevenueRecognized
      contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ"
      decimals="-5"
      id="Narr_4hsH_lAum0GBFXOoFW6EaA"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">767300000</us-gaap:ContractWithCustomerLiabilityRevenueRecognized>
    <us-gaap:ContractWithCustomerLiabilityRevenueRecognized
      contextRef="Duration_1_1_2023_To_9_30_2023_0vpBpKZIxEC_KY5z5G8rKA"
      decimals="-5"
      id="Narr_ZsnUdycKaEiAnDR3GTxApw"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">482900000</us-gaap:ContractWithCustomerLiabilityRevenueRecognized>
    <us-gaap:ContractWithCustomerAssetCreditLossExpense
      contextRef="Duration_1_1_2023_To_9_30_2023_0vpBpKZIxEC_KY5z5G8rKA"
      decimals="0"
      id="Narr_-0L6qZsnVUiBY3I9KrxrlQ"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">0</us-gaap:ContractWithCustomerAssetCreditLossExpense>
    <us-gaap:ContractWithCustomerAssetCreditLossExpense
      contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ"
      decimals="0"
      id="Narr_WtDfOErNFECyS_QX70QPtQ"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">0</us-gaap:ContractWithCustomerAssetCreditLossExpense>
    <us-gaap:RevenueRemainingPerformanceObligation
      contextRef="As_Of_9_30_2024_us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis_fix_cnst_date_20240401_R4HBB7Adtki0cTpCVHmm3A"
      decimals="-7"
      id="Narr_-iRpWQZrFEyirOcw-VJc4A"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">5680000000</us-gaap:RevenueRemainingPerformanceObligation>
    <us-gaap:RevenueRemainingPerformanceObligationPercentage
      contextRef="As_Of_9_30_2024_srt_RangeAxis_srt_MinimumMember_us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis_fix_cnst_date_20240401_KhHzX-P3hUuZ9un5V7uebg"
      decimals="2"
      id="Narr_Tr0XUw2C9U2C5z97R7msZA"
      unitRef="Unit_Standard_pure_0GIr2wv4rk-T38a8Lz0A5w">0.65</us-gaap:RevenueRemainingPerformanceObligationPercentage>
    <us-gaap:RevenueRemainingPerformanceObligationPercentage
      contextRef="As_Of_9_30_2024_srt_RangeAxis_srt_MaximumMember_us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis_fix_cnst_date_20240401_BllO1xJM-EiQTJc1oaHdoQ"
      decimals="2"
      id="Narr_eD5cLhZ3wEmGoqCrax4GNQ"
      unitRef="Unit_Standard_pure_0GIr2wv4rk-T38a8Lz0A5w">0.75</us-gaap:RevenueRemainingPerformanceObligationPercentage>
    <us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1
      contextRef="As_Of_9_30_2024_us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis_fix_cnst_date_20240401_R4HBB7Adtki0cTpCVHmm3A"
      id="Narr_Tw2Lh0YnDUGB9ycKgcrxzQ">P12M</us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1>
    <fix:RenewableServiceMaintenanceAgreementsTerm
      contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ"
      id="Narr_D1B4_mc_4kSHusxzj2qZlw">P1Y</fix:RenewableServiceMaintenanceAgreementsTerm>
    <us-gaap:RevenuePracticalExpedientRemainingPerformanceObligation
      contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ"
      id="Narr_DMZTvmepbkqEwlvysvuxaA">true</us-gaap:RevenuePracticalExpedientRemainingPerformanceObligation>
    <us-gaap:FairValueDisclosuresTextBlock
      contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ"
      id="Tb_Ef0HQOdYREOif67Kk6EwEw">&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;4. Fair Value Measurements&lt;/b&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 6pt 0pt;"&gt;&lt;span style="display:inline-block;text-indent:0pt;width:36pt;"&gt;&lt;/span&gt;&lt;span style="font-style:italic;font-weight:bold;"&gt;Interest Rate Risk Management and Derivative Instruments&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"&gt;At times, we use derivative instruments to manage exposure to market risk,&#160;including&#160;interest rate risk. Unsettled amounts under our interest rate swaps, if any,&#160;are recorded in the Consolidated Balance Sheet at fair value in &#x201c;Other Receivables&#x201d; or &#x201c;Other Current Liabilities.&#x201d; Gains and losses on our interest rate swaps are recorded in the Consolidated Statement of Operations in &#x201c;Interest Expense.&#x201d; We currently do not have any derivatives that are accounted for as hedges under ASC 815.&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="display:inline-block;text-indent:0pt;width:36pt;"&gt;&lt;/span&gt;&lt;span style="font-style:italic;font-weight:bold;"&gt;Fair Value Measurement&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"&gt;We classify and disclose assets and liabilities carried at fair value in one of the following three categories:&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;width:100%;border:0pt;"&gt;&lt;tr&gt;&lt;td style="width:36pt;"&gt;&lt;/td&gt;&lt;td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;"&gt;&#x25cf;&lt;/td&gt;&lt;td style="padding:0pt;"&gt;&lt;span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;"&gt;Level&#160;1&#x2014;quoted prices in active markets for identical assets and liabilities;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;width:100%;border:0pt;"&gt;&lt;tr&gt;&lt;td style="width:36pt;"&gt;&lt;/td&gt;&lt;td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;"&gt;&#x25cf;&lt;/td&gt;&lt;td style="padding:0pt;"&gt;&lt;span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;"&gt;Level&#160;2&#x2014;observable market-based inputs or unobservable inputs that are corroborated by market data; and&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;width:100%;border:0pt;"&gt;&lt;tr&gt;&lt;td style="width:36pt;"&gt;&lt;/td&gt;&lt;td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;"&gt;&#x25cf;&lt;/td&gt;&lt;td style="padding:0pt;"&gt;&lt;span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;"&gt;Level&#160;3&#x2014;significant unobservable inputs in which little or no market data exists, therefore requiring an entity to develop its own assumptions.&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"&gt;The following table summarizes the fair values, and levels within the fair value hierarchy in which the fair value measurements are included, for assets and liabilities measured on a recurring basis as of September 30, 2024 and December 31, 2023 (in thousands):&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;width:58.98%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.81%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.86%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.81%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.81%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:58.98%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="11" style="vertical-align:bottom;white-space:nowrap;width:39.37%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;Fair&#160;Value&#160;Measurements&#160;at&#160;September 30, 2024&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:58.98%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:8.84%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;Level&#160;1&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:7.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;Level&#160;2&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:8.84%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;Level&#160;3&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:8.84%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;Total&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:58.98%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;Cash and cash equivalents&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.81%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 415,583&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.86%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; &#x2014;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.81%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; &#x2014;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.81%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 415,583&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:58.98%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;Contingent earn-out obligations&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.81%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; &#x2014;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.86%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; &#x2014;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.81%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 103,238&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.81%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 103,238&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:58.98%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:11pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:11pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:11pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.81%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:11pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:11pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:11pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.86%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:11pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:11pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:11pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.81%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:11pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:11pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:11pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.81%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:11pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:58.98%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="11" style="vertical-align:bottom;white-space:nowrap;width:39.37%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;Fair&#160;Value&#160;Measurements&#160;at&#160;December 31, 2023&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:58.98%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:8.84%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;Level&#160;1&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:7.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;Level&#160;2&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:8.84%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;Level&#160;3&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:8.84%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;Total&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:58.98%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;Cash and cash equivalents&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.81%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 205,150&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.86%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; &#x2014;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.81%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; &#x2014;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.81%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 205,150&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:58.98%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;Life insurance&#x2014;cash surrender value&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.81%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; &#x2014;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.86%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 7,473&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.81%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; &#x2014;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.81%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 7,473&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:58.98%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;Contingent earn-out obligations&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.81%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; &#x2014;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.86%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; &#x2014;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.81%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 44,222&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.81%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 44,222&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;"&gt;Cash and cash equivalents consist primarily of deposit accounts and highly rated money market funds at a variety of well-known institutions with original maturities of three months or less. The original cost of these assets approximates fair value due to their short-term maturity. We believe the carrying value of our debt associated with our revolving credit facility approximates its fair value due to the variable rate on such debt. We believe the carrying values of our notes to former owners approximate their fair values due to the relatively short remaining terms on these notes.&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;"&gt;As of December 31, 2023, we had life insurance policies covering 131 employees with a combined face value of $87.8 million. The policies are invested in several investment vehicles, and the fair value measurement of the cash surrender balance associated with these policies is determined using Level&#160;2 inputs within the fair value hierarchy and will vary with investment performance. The cash surrender value of these policies is included in &#x201c;Other Noncurrent Assets&#x201d; in our Consolidated Balance Sheets.&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"&gt;We value contingent earn-out obligations using a probability weighted discounted cash flow method. This fair value measurement is based on significant unobservable inputs in the market and thus represents a Level&#160;3 measurement within the fair value hierarchy. This analysis reflects the contractual terms of the purchase agreements (&lt;i style="font-style:italic;"&gt;e.g.&lt;/i&gt;, minimum and maximum payments, length of earn-out periods, manner of calculating any amounts due, etc.) and utilizes assumptions with regard to future cash flows and operating income, probabilities of achieving such future cash flows and operating income and a weighted average cost of capital. Significant changes in any of these assumptions could result in a significantly higher or lower potential liability. The contingent earn-out obligations are measured at fair value each reporting period, and changes in estimates of fair value are recognized in earnings. As of September 30, 2024, cash flows were discounted using a weighted average cost of capital ranging from 16.0% to 19.0%.&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"&gt;The table below presents a reconciliation of the fair value of our contingent earn-out obligations that use significant unobservable inputs (Level 3) (in thousands):&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:70.19%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:52.96%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.65%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.19%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:18.15%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.65%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.84%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:16.12%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.73%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.67%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:52.96%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.65%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:21.35%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;Nine Months Ended &lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.65%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:18.96%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;Year Ended&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.73%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.67%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:52.96%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.65%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:21.35%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;September 30, 2024&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.65%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:18.96%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;December 31, 2023&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.73%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.67%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:52.96%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;Balance at beginning of period&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.65%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Calibri','Helvetica','sans-serif';"&gt;&#160;&#160;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.19%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:18.15%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 44,222&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.65%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Calibri','Helvetica','sans-serif';"&gt;&#160;&#160;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.84%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:16.12%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 32,317&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.73%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.67%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Calibri','Helvetica','sans-serif';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:52.96%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;Issuances&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.65%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.19%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:18.15%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 51,784&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.65%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.84%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:16.12%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 4,315&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.73%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.67%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:52.96%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;Settlements&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.65%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.19%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:18.15%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt; (37,202)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.65%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.84%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:16.12%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;(16,017)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.73%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.67%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:52.96%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;Adjustments to fair value&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.65%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.19%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:18.15%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 44,434&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.65%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.84%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:16.12%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 23,607&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.73%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.67%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:52.96%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;Balance at end of period&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.65%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.19%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:18.15%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 103,238&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.65%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.84%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:16.12%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 44,222&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.73%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.67%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;</us-gaap:FairValueDisclosuresTextBlock>
    <us-gaap:ScheduleOfFairValueAssetsAndLiabilitiesMeasuredOnRecurringBasisTableTextBlock
      contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ"
      id="Tb_vAStEgffUEC2mKAleRqTuA">&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"&gt;The following table summarizes the fair values, and levels within the fair value hierarchy in which the fair value measurements are included, for assets and liabilities measured on a recurring basis as of September 30, 2024 and December 31, 2023 (in thousands):&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;width:58.98%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.81%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.86%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.81%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.81%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:58.98%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="11" style="vertical-align:bottom;white-space:nowrap;width:39.37%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;Fair&#160;Value&#160;Measurements&#160;at&#160;September 30, 2024&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:58.98%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:8.84%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;Level&#160;1&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:7.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;Level&#160;2&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:8.84%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;Level&#160;3&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:8.84%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;Total&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:58.98%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;Cash and cash equivalents&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.81%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 415,583&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.86%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; &#x2014;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.81%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; &#x2014;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.81%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 415,583&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:58.98%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;Contingent earn-out obligations&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.81%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; &#x2014;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.86%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; &#x2014;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.81%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 103,238&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.81%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 103,238&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:58.98%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:11pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:11pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:11pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.81%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:11pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:11pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:11pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.86%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:11pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:11pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:11pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.81%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:11pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:11pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:11pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.81%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:11pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:58.98%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="11" style="vertical-align:bottom;white-space:nowrap;width:39.37%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;Fair&#160;Value&#160;Measurements&#160;at&#160;December 31, 2023&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:58.98%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:8.84%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;Level&#160;1&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:7.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;Level&#160;2&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:8.84%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;Level&#160;3&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:8.84%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;Total&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:58.98%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;Cash and cash equivalents&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.81%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 205,150&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.86%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; &#x2014;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.81%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; &#x2014;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.81%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 205,150&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:58.98%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;Life insurance&#x2014;cash surrender value&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.81%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; &#x2014;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.86%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 7,473&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.81%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; &#x2014;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.81%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 7,473&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:58.98%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;Contingent earn-out obligations&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.81%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; &#x2014;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.86%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; &#x2014;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.81%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 44,222&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.81%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 44,222&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;</us-gaap:ScheduleOfFairValueAssetsAndLiabilitiesMeasuredOnRecurringBasisTableTextBlock>
    <us-gaap:CashAndCashEquivalentsFairValueDisclosure
      contextRef="As_Of_9_30_2024_us-gaap_FairValueByFairValueHierarchyLevelAxis_us-gaap_FairValueInputsLevel1Member_us-gaap_FairValueByMeasurementFrequencyAxis_us-gaap_FairValueMeasurementsRecurringMember_cYZklQkgzUO7e0HBwuxYsg"
      decimals="-3"
      id="Tc_AmpEgTsmGUK_k55eu-VrXA_3_3"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">415583000</us-gaap:CashAndCashEquivalentsFairValueDisclosure>
    <us-gaap:CashAndCashEquivalentsFairValueDisclosure
      contextRef="As_Of_9_30_2024_us-gaap_FairValueByMeasurementBasisAxis_us-gaap_EstimateOfFairValueFairValueDisclosureMember_us-gaap_FairValueByMeasurementFrequencyAxis_us-gaap_FairValueMeasurementsRecurringMember_mMGWK0XHXU-gmD_1-Ip02w"
      decimals="-3"
      id="Tc_52jsZQn6vE2pXEsZqtDPwA_3_12"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">415583000</us-gaap:CashAndCashEquivalentsFairValueDisclosure>
    <us-gaap:FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue
      contextRef="As_Of_9_30_2024_us-gaap_FairValueByFairValueHierarchyLevelAxis_us-gaap_FairValueInputsLevel3Member_us-gaap_FairValueByMeasurementFrequencyAxis_us-gaap_FairValueMeasurementsRecurringMember_5Yh2p4vMrE2MelwjCJo5zQ"
      decimals="-3"
      id="Tc_E11GX5_aHU-WEXEauu-FZw_4_9"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">103238000</us-gaap:FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue>
    <us-gaap:FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue
      contextRef="As_Of_9_30_2024_us-gaap_FairValueByMeasurementBasisAxis_us-gaap_EstimateOfFairValueFairValueDisclosureMember_us-gaap_FairValueByMeasurementFrequencyAxis_us-gaap_FairValueMeasurementsRecurringMember_mMGWK0XHXU-gmD_1-Ip02w"
      decimals="-3"
      id="Tc_MDoMsIte60OhjdCYpaKx2g_4_12"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">103238000</us-gaap:FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue>
    <us-gaap:CashAndCashEquivalentsFairValueDisclosure
      contextRef="As_Of_12_31_2023_us-gaap_FairValueByFairValueHierarchyLevelAxis_us-gaap_FairValueInputsLevel1Member_us-gaap_FairValueByMeasurementFrequencyAxis_us-gaap_FairValueMeasurementsRecurringMember_Kd0jmytlNkq1QJcuaTF_Tw"
      decimals="-3"
      id="Tc_vwEF3S7E20SzdYbjYuyzww_8_3"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">205150000</us-gaap:CashAndCashEquivalentsFairValueDisclosure>
    <us-gaap:CashAndCashEquivalentsFairValueDisclosure
      contextRef="As_Of_12_31_2023_us-gaap_FairValueByMeasurementBasisAxis_us-gaap_EstimateOfFairValueFairValueDisclosureMember_us-gaap_FairValueByMeasurementFrequencyAxis_us-gaap_FairValueMeasurementsRecurringMember_6lW7BwjU8UCeo0LTvup66g"
      decimals="-3"
      id="Tc_QsyinvJfjkiODJBp5F9Mpg_8_12"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">205150000</us-gaap:CashAndCashEquivalentsFairValueDisclosure>
    <us-gaap:CashSurrenderValueFairValueDisclosure
      contextRef="As_Of_12_31_2023_us-gaap_FairValueByFairValueHierarchyLevelAxis_us-gaap_FairValueInputsLevel2Member_us-gaap_FairValueByMeasurementFrequencyAxis_us-gaap_FairValueMeasurementsRecurringMember_f9bGEi2wcECLNMoSjsii6g"
      decimals="-3"
      id="Tc_SXTt1GD6FkmvI7mC7buOmA_9_6"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">7473000</us-gaap:CashSurrenderValueFairValueDisclosure>
    <us-gaap:CashSurrenderValueFairValueDisclosure
      contextRef="As_Of_12_31_2023_us-gaap_FairValueByMeasurementBasisAxis_us-gaap_EstimateOfFairValueFairValueDisclosureMember_us-gaap_FairValueByMeasurementFrequencyAxis_us-gaap_FairValueMeasurementsRecurringMember_6lW7BwjU8UCeo0LTvup66g"
      decimals="-3"
      id="Tc_w2qKe2JdF0amEIpRzpxWzw_9_12"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">7473000</us-gaap:CashSurrenderValueFairValueDisclosure>
    <us-gaap:FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue
      contextRef="As_Of_12_31_2023_us-gaap_FairValueByFairValueHierarchyLevelAxis_us-gaap_FairValueInputsLevel3Member_us-gaap_FairValueByMeasurementFrequencyAxis_us-gaap_FairValueMeasurementsRecurringMember_ixgQ0Wh_OUuXKIm8Z6RKuw"
      decimals="-3"
      id="Tc_mF8T_On4NkCQjY_ZgaCcyA_10_9"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">44222000</us-gaap:FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue>
    <us-gaap:FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue
      contextRef="As_Of_12_31_2023_us-gaap_FairValueByMeasurementBasisAxis_us-gaap_EstimateOfFairValueFairValueDisclosureMember_us-gaap_FairValueByMeasurementFrequencyAxis_us-gaap_FairValueMeasurementsRecurringMember_6lW7BwjU8UCeo0LTvup66g"
      decimals="-3"
      id="Tc_kTc8b2eiHE69LqebkNBlGQ_10_12"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">44222000</us-gaap:FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue>
    <fix:LifeInsuranceContractsNumberOfEmployeesCovered
      contextRef="As_Of_12_31_2023_X7eqeHRTF0mRLJW7InVDdA"
      decimals="INF"
      id="Narr_0G3kiRczoEaK0pMPlxJSig"
      unitRef="Unit_Standard_employee_4_T_xVXJeUGRyiTsD-I_ag">131</fix:LifeInsuranceContractsNumberOfEmployeesCovered>
    <fix:LifeInsuranceContractsFaceAmount
      contextRef="As_Of_12_31_2023_X7eqeHRTF0mRLJW7InVDdA"
      decimals="-5"
      id="Narr_qp4JKmfvlEaODFNzJoKp7Q"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">87800000</fix:LifeInsuranceContractsFaceAmount>
    <fix:WeightedAverageCostOfCapital
      contextRef="Duration_1_1_2024_To_9_30_2024_srt_RangeAxis_srt_MinimumMember_3wO7ciKypUqVRHiqsG5ULA"
      decimals="3"
      id="Narr_DlBIiFbTik-Ei2UVwY1AmA"
      unitRef="Unit_Standard_pure_0GIr2wv4rk-T38a8Lz0A5w">0.160</fix:WeightedAverageCostOfCapital>
    <fix:WeightedAverageCostOfCapital
      contextRef="Duration_1_1_2024_To_9_30_2024_srt_RangeAxis_srt_MaximumMember_S1BDn2duy0GGVVQoyxtpBA"
      decimals="3"
      id="Narr_YjmYuJZSzkK7xWIp4HSlyg"
      unitRef="Unit_Standard_pure_0GIr2wv4rk-T38a8Lz0A5w">0.190</fix:WeightedAverageCostOfCapital>
    <us-gaap:FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationTextBlock
      contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ"
      id="Tb_JRt4TTXNl0-NH3MxBYhBag">&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"&gt;The table below presents a reconciliation of the fair value of our contingent earn-out obligations that use significant unobservable inputs (Level 3) (in thousands):&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:70.19%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:52.96%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.65%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.19%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:18.15%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.65%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.84%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:16.12%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.73%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.67%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:52.96%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.65%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:21.35%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;Nine Months Ended &lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.65%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:18.96%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;Year Ended&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.73%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.67%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:52.96%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.65%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:21.35%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;September 30, 2024&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.65%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:18.96%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;December 31, 2023&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.73%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.67%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:52.96%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;Balance at beginning of period&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.65%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Calibri','Helvetica','sans-serif';"&gt;&#160;&#160;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.19%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:18.15%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 44,222&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.65%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Calibri','Helvetica','sans-serif';"&gt;&#160;&#160;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.84%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:16.12%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 32,317&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.73%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.67%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Calibri','Helvetica','sans-serif';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:52.96%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;Issuances&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.65%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.19%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:18.15%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 51,784&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.65%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.84%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:16.12%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 4,315&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.73%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.67%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:52.96%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;Settlements&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.65%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.19%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:18.15%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt; (37,202)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.65%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.84%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:16.12%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;(16,017)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.73%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.67%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:52.96%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;Adjustments to fair value&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.65%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.19%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:18.15%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 44,434&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.65%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.84%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:16.12%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 23,607&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.73%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.67%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:52.96%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;Balance at end of period&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.65%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.19%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:18.15%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 103,238&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.65%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.84%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:16.12%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 44,222&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.73%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.67%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;</us-gaap:FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationTextBlock>
    <us-gaap:FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue
      contextRef="As_Of_12_31_2023_us-gaap_FairValueByLiabilityClassAxis_fix_ContingentConsiderationObligationsMember_QiEcwmJcfkyCJZA_OIAaqw"
      decimals="-3"
      id="Tc_noXS8Tdy2UCJ8C3tLBiPnQ_3_3"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">44222000</us-gaap:FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue>
    <us-gaap:FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue
      contextRef="As_Of_12_31_2022_us-gaap_FairValueByLiabilityClassAxis_fix_ContingentConsiderationObligationsMember_l5io3FvirkunNcDFGrPWFg"
      decimals="-3"
      id="Tc_es60JF87XESMIQyufY3ISw_3_6"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">32317000</us-gaap:FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue>
    <us-gaap:FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityIssues
      contextRef="Duration_1_1_2024_To_9_30_2024_us-gaap_FairValueByLiabilityClassAxis_fix_ContingentConsiderationObligationsMember_lHT-Wg2JpUixTnvmQyoGPA"
      decimals="-3"
      id="Tc_B5mvDV1RLk-NFtwwGyJJuQ_4_3"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">51784000</us-gaap:FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityIssues>
    <us-gaap:FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityIssues
      contextRef="Duration_1_1_2023_To_12_31_2023_us-gaap_FairValueByLiabilityClassAxis_fix_ContingentConsiderationObligationsMember_NUKD-aaodUafCY7RklyjKA"
      decimals="-3"
      id="Tc_dBwXZxOHWkmJQkZiGrShNA_4_6"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">4315000</us-gaap:FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityIssues>
    <us-gaap:FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilitySettlements
      contextRef="Duration_1_1_2024_To_9_30_2024_us-gaap_FairValueByLiabilityClassAxis_fix_ContingentConsiderationObligationsMember_lHT-Wg2JpUixTnvmQyoGPA"
      decimals="-3"
      id="Tc_a0DqxQnmeEy4PYc4sBG82g_5_3"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">37202000</us-gaap:FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilitySettlements>
    <us-gaap:FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilitySettlements
      contextRef="Duration_1_1_2023_To_12_31_2023_us-gaap_FairValueByLiabilityClassAxis_fix_ContingentConsiderationObligationsMember_NUKD-aaodUafCY7RklyjKA"
      decimals="-3"
      id="Tc_DDirqtGH_0use1dK3M4uog_5_6"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">16017000</us-gaap:FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilitySettlements>
    <us-gaap:FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityGainLossIncludedInEarnings
      contextRef="Duration_1_1_2024_To_9_30_2024_us-gaap_FairValueByLiabilityClassAxis_fix_ContingentConsiderationObligationsMember_lHT-Wg2JpUixTnvmQyoGPA"
      decimals="-3"
      id="Tc_PX0b1JmBDEeC2QRBUUG2BQ_6_3"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">44434000</us-gaap:FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityGainLossIncludedInEarnings>
    <us-gaap:FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityGainLossIncludedInEarnings
      contextRef="Duration_1_1_2023_To_12_31_2023_us-gaap_FairValueByLiabilityClassAxis_fix_ContingentConsiderationObligationsMember_NUKD-aaodUafCY7RklyjKA"
      decimals="-3"
      id="Tc_3UHWGf7aqUqdfkmvOxn33g_6_6"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">23607000</us-gaap:FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityGainLossIncludedInEarnings>
    <us-gaap:FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue
      contextRef="As_Of_9_30_2024_us-gaap_FairValueByLiabilityClassAxis_fix_ContingentConsiderationObligationsMember_V6NueS9puE29mSfrqUvXog"
      decimals="-3"
      id="Tc_Dw9TCg2iuE6EdnZGo4pxyA_7_3"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">103238000</us-gaap:FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue>
    <us-gaap:FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue
      contextRef="As_Of_12_31_2023_us-gaap_FairValueByLiabilityClassAxis_fix_ContingentConsiderationObligationsMember_QiEcwmJcfkyCJZA_OIAaqw"
      decimals="-3"
      id="Tc_xs9VdXfUN0yrnveRrQdpRg_7_6"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">44222000</us-gaap:FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue>
    <us-gaap:BusinessCombinationDisclosureTextBlock
      contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ"
      id="Tb_ZM-wcPJ_uUik3Ca6gvjJTg">&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;5. Acquisitions&lt;/b&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="display:inline-block;text-indent:0pt;width:36pt;"&gt;&lt;/span&gt;&lt;span style="font-style:italic;font-weight:bold;"&gt;Summit Industrial Construction, LLC Acquisition&lt;/span&gt;&lt;span style="display:inline-block;width:10.1pt;"&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="display:inline-block;text-indent:0pt;width:36pt;"&gt;&lt;/span&gt;On February 1, 2024, we acquired Summit Industrial Construction, LLC (&#x201c;Summit&#x201d;). Summit is headquartered in Houston, Texas, and is a specialty industrial contractor offering engineering, design-assist and turnkey, direct hire construction services of systems serving the advanced technology, power, and industrial sectors. As a result of the &lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;acquisition, Summit is a wholly owned subsidiary of the Company reported in our mechanical segment. Revenue attributable to Summit was $256.2 million for the eight months from the acquisition date. &lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="display:inline-block;text-indent:0pt;width:36pt;"&gt;&lt;/span&gt;The following summarizes the acquisition date fair value of consideration transferred and the acquisition date fair value of the identifiable assets acquired and liabilities assumed, including an amount for goodwill (in thousands):&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="display:inline-block;text-indent:0pt;width:36pt;"&gt;&lt;/span&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;div style="padding-left:40.5pt;"&gt;&lt;table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:83.34%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;width:81.03%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.29%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:16.66%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:81.03%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;Consideration transferred:&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.29%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:16.66%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:81.03%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="white-space:pre-wrap;"&gt;  Cash paid at closing&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:middle;width:2.29%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:16.66%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 267,500&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:81.03%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="white-space:pre-wrap;"&gt;  Working capital adjustment &lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:middle;width:2.29%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="color:#ff0000;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:16.66%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 14,602&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:81.03%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="white-space:pre-wrap;"&gt;  Notes issued to former owners&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:middle;width:2.29%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:16.66%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 35,000&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:81.03%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="white-space:pre-wrap;"&gt;  Estimated fair value of contingent earn-out payments&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:middle;width:2.29%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:16.66%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 42,732&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:81.03%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:middle;width:2.29%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:16.66%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 359,834&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:81.03%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;Recognized amounts of identifiable assets acquired and liabilities assumed:&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:middle;width:2.29%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:16.66%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:81.03%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="white-space:pre-wrap;"&gt;  Cash and cash equivalents&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:middle;width:2.29%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:16.66%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 171,027&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:81.03%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="white-space:pre-wrap;"&gt;  Billed and unbilled accounts receivable&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:middle;width:2.29%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:16.66%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 59,846&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:81.03%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="white-space:pre-wrap;"&gt;  Prepaid expenses and other&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:middle;width:2.29%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:16.66%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 1,476&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:81.03%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="white-space:pre-wrap;"&gt;  Cost and estimated earnings in excess of billings&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:middle;width:2.29%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:16.66%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 578&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:81.03%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="white-space:pre-wrap;"&gt;  Property and equipment&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:middle;width:2.29%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:16.66%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 2,528&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:81.03%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="white-space:pre-wrap;"&gt;  Lease right-of-use asset&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:middle;width:2.29%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:16.66%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 2,364&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:81.03%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="white-space:pre-wrap;"&gt;  Goodwill&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.29%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:16.66%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 155,345&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:81.03%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="white-space:pre-wrap;"&gt;  Identifiable intangible assets&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:middle;width:2.29%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:16.66%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 170,100&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:81.03%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="white-space:pre-wrap;"&gt;  Other noncurrent assets&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:middle;width:2.29%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:16.66%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 136&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:81.03%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="white-space:pre-wrap;"&gt;  Accounts payable&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:middle;width:2.29%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:16.66%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt; (15,130)&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:81.03%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="white-space:pre-wrap;"&gt;  Billings in excess of costs and estimated earnings and deferred revenue&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:middle;width:2.29%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:16.66%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt; (179,895)&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:81.03%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="white-space:pre-wrap;"&gt;  Current operating lease liabilities&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:middle;width:2.29%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:16.66%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt; (1,495)&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:81.03%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="white-space:pre-wrap;"&gt;  Accrued expenses and other current liabilities&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:middle;width:2.29%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:16.66%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt; (6,293)&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:81.03%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="white-space:pre-wrap;"&gt;  Long-term operating lease liabilities&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:middle;width:2.29%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:16.66%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt; (753)&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:81.03%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:middle;width:2.29%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:16.66%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 359,834&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="display:inline-block;text-indent:0pt;width:36pt;"&gt;&lt;/span&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="display:inline-block;text-indent:0pt;width:36pt;"&gt;&lt;/span&gt;The allocation of the purchase price to the assets acquired and liabilities assumed is preliminary and, therefore, subject to change pending the completion of the final valuation of intangible assets and accrued liabilities. Goodwill represents the future economic benefits arising from other assets acquired that cannot be individually identified and separately recognized. The goodwill recognized as a result of the Summit acquisition is deductible for tax purposes.&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"&gt;&lt;span style="white-space:pre-wrap;"&gt;In estimating the fair value of the acquired intangible assets, we utilized the valuation methodology determined to be the most appropriate for the individual intangible asset. In order to estimate the fair value of the backlog and customer relationships, we utilized an excess earnings methodology, which consisted of the projected cash flows attributable to these assets discounted to present value using a risk-adjusted discount rate that represented the required rate of return. The trade name value was determined based on the relief-from-royalty method, which applies a royalty rate to the revenue stream attributable to this asset, and the resulting royalty payment is tax effected and discounted to present value. Some of the more significant estimates and assumptions inherent in determining the fair value of the identifiable intangible assets are associated with forecasting cash flows and profitability, which represent Level 3 inputs.  The primary assumptions used were generally based upon the present value of anticipated cash flows discounted at rates ranging from &lt;/span&gt;18.5% to 20.5%. Estimated years of projected earnings generally follow the range of estimated remaining useful lives for each intangible asset class. &lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"&gt;The acquired intangible assets include the following (dollars in thousands):&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;div style="padding-left:40.5pt;"&gt;&lt;table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:84.17%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;width:48.39%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.19%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:20.3%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:12.51%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:1.72%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:1.72%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:11.41%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:48.39%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.19%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:20.3%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;Valuation Method&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:12.51%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;Estimated Useful Life&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:1.72%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:1.72%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:11.41%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;Estimated Fair Value&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:48.39%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;Backlog&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.19%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:20.3%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"&gt;Excess earnings&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.51%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"&gt;1.8 years&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.41%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 35,800&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:48.39%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;Trade Name&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.19%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:20.3%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"&gt;Relief-from-royalty&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.51%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"&gt;22.9 years&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:1.72%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:1.72%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.41%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 11,300&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:48.39%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;Customer Relationships&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.19%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:20.3%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"&gt;Excess earnings&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.51%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"&gt;10 years&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:1.72%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.41%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 123,000&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:48.39%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;Total&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.19%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:20.3%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:12.51%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:1.72%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:1.72%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.41%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 170,100&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"&gt;The contingent earn-out obligation is associated with the achievement of four earnings milestones over a &lt;span style="-sec-ix-hidden:Hidden_D6Z90bw5WUGuPqOyL_t0uw;"&gt;&lt;span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;"&gt;47-month&lt;/span&gt;&lt;/span&gt; period, and the range of each estimated milestone payment is $2.6 million to $20.5 million. We determined the initial fair value of the contingent earn-out obligation based on the Monte Carlo Simulation method, which represents a Level 3 measurement.&#160;Cash flows were discounted using discount rates ranging from 18.2% to 19.5%, which we believe is appropriate and representative of a market participant assumption.&#160;Subsequent to the acquisition date, the contingent earn-out obligation is remeasured at fair value each reporting period.&#160;Changes in the estimated fair value of the contingent payments subsequent to the acquisition date are recognized immediately in earnings.&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="display:inline-block;text-indent:0pt;width:36pt;"&gt;&lt;/span&gt;&lt;span style="font-style:italic;font-weight:bold;"&gt;J &amp;amp; S Mechanical Contractors, Inc. Acquisition&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="display:inline-block;text-indent:0pt;width:36pt;"&gt;&lt;/span&gt;On February 1, 2024, we acquired all of the issued and outstanding shares of capital stock of J &amp;amp; S Mechanical Contractors, Inc. (&#x201c;J&amp;amp;S&#x201d;). J&amp;amp;S is headquartered in West Jordan, Utah, and provides mechanical construction services to commercial and industrial sectors, specializing in data center HVAC systems and hospital medical gas systems. As a result of the acquisition, J&amp;amp;S is a wholly owned subsidiary of the Company reported in our mechanical segment. Revenue attributable to J&amp;amp;S was $106.3 million for the eight months from the acquisition date. &lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="display:inline-block;text-indent:0pt;width:36pt;"&gt;&lt;/span&gt;The following summarizes the acquisition date fair value of consideration transferred and the acquisition date fair value of the identifiable assets acquired and liabilities assumed, including an amount for goodwill (in thousands):&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="display:inline-block;text-indent:0pt;width:36pt;"&gt;&lt;/span&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;div style="padding-left:40.5pt;"&gt;&lt;table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:85.59%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;width:82.58%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.43%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.97%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:82.58%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;Consideration transferred:&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.43%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.97%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:82.58%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="white-space:pre-wrap;"&gt;  Cash paid at closing&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:middle;width:3.43%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.97%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 100,000&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:82.58%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="white-space:pre-wrap;"&gt;  Working capital adjustment &lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:middle;width:3.43%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="color:#ff0000;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.97%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 1,587&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:82.58%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="white-space:pre-wrap;"&gt;  Notes issued to former owners&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:middle;width:3.43%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.97%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 10,000&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:82.58%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="white-space:pre-wrap;"&gt;  Estimated fair value of contingent earn-out payments&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:middle;width:3.43%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.97%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 9,052&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:82.58%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:middle;width:3.43%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.97%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 120,639&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:82.58%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;Recognized amounts of identifiable assets acquired and liabilities assumed:&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:middle;width:3.43%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.97%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:82.58%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="white-space:pre-wrap;"&gt;  Cash and cash equivalents&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:middle;width:3.43%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.97%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 14,802&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:82.58%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="white-space:pre-wrap;"&gt;  Billed and unbilled accounts receivable&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:middle;width:3.43%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.97%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 38,411&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:82.58%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="white-space:pre-wrap;"&gt;  Inventory&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.43%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:11pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.97%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 230&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:82.58%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="white-space:pre-wrap;"&gt;  Prepaid expenses and other&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:middle;width:3.43%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.97%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 393&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:82.58%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="white-space:pre-wrap;"&gt;  Costs and estimated earnings in excess of billings&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.43%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:11pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.97%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 728&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:82.58%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="white-space:pre-wrap;"&gt;  Property and equipment&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:middle;width:3.43%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.97%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 2,674&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:82.58%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="white-space:pre-wrap;"&gt;  Lease right-of-use asset&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:middle;width:3.43%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.97%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 4,552&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:82.58%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="white-space:pre-wrap;"&gt;  Goodwill&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.43%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.97%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 40,706&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:82.58%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="white-space:pre-wrap;"&gt;  Identifiable intangible assets&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:middle;width:3.43%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.97%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 63,300&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:82.58%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="white-space:pre-wrap;"&gt;  Other noncurrent assets&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:middle;width:3.43%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.97%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 10&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:82.58%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="white-space:pre-wrap;"&gt;  Accounts payable&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:middle;width:3.43%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.97%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt; (20,649)&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:82.58%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="white-space:pre-wrap;"&gt;  Billings in excess of costs and estimated earnings and deferred revenue&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:middle;width:3.43%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.97%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt; (19,188)&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:82.58%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="white-space:pre-wrap;"&gt;  Current operating lease liabilities&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:middle;width:3.43%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.97%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt; (133)&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:82.58%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="white-space:pre-wrap;"&gt;  Accrued expenses and other current liabilities&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:middle;width:3.43%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.97%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt; (826)&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:82.58%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="white-space:pre-wrap;"&gt;  Long-term debt&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:middle;width:3.43%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.97%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt; (59)&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:82.58%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="white-space:pre-wrap;"&gt;  Long-term operating lease liabilities&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:middle;width:3.43%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.97%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt; (4,312)&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:82.58%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:middle;width:3.43%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.97%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 120,639&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="display:inline-block;text-indent:0pt;width:36pt;"&gt;&lt;/span&gt;The allocation of the purchase price to the assets acquired and liabilities assumed is preliminary and, therefore, subject to change pending the completion of the final valuation of intangible assets and accrued liabilities. Goodwill represents the future economic benefits arising from other assets acquired that cannot be individually identified and separately recognized. The goodwill recognized as a result of the J&amp;amp;S acquisition is deductible for tax purposes.&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"&gt;In estimating the fair value of the acquired intangible assets, we utilized the valuation methodology determined to be the most appropriate for the individual intangible asset. In order to estimate the fair value of the backlog and customer relationships, we utilized an excess earnings methodology, which consisted of the projected cash flows attributable to these assets discounted to present value using a risk-adjusted discount rate that represented the required rate of return. The trade name value was determined based on the relief-from-royalty method, which applies a royalty &lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="white-space:pre-wrap;"&gt;rate to the revenue stream attributable to this asset, and the resulting royalty payment is tax effected and discounted to present value. Some of the more significant estimates and assumptions inherent in determining the fair value of the identifiable intangible assets are associated with forecasting cash flows and profitability, which represent Level 3 inputs.  The primary assumptions used were generally based upon the present value of anticipated cash flows discounted at rates ranging from &lt;/span&gt;15.5% to 17.0%. Estimated years of projected earnings generally follow the range of estimated remaining useful lives for each intangible asset class. &lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"&gt;The acquired intangible assets include the following (dollars in thousands):&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;div style="padding-left:40.5pt;"&gt;&lt;table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:85.17%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:49.12%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.24%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:19.06%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.24%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:14.76%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.25%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.21%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.08%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:49.12%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.24%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:19.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;span style="font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.24%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:14.76%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;Estimated&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.25%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.3%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;Estimated&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:49.12%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.24%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:19.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;Valuation Method&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.24%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:14.76%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;Useful Life&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.25%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.3%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;Fair Value&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:49.12%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;Backlog&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.24%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:19.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"&gt;Excess earnings&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.24%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:14.76%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"&gt;1.8 years&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.25%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.21%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 12,900&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:49.12%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;Trade Name&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.24%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:19.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"&gt;Relief-from-royalty&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.24%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:14.76%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"&gt;22 years&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.25%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.21%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 10,600&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:49.12%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;Customer Relationships&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.24%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:19.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"&gt;Excess earnings&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.24%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:14.76%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"&gt;9 years&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.25%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.21%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.08%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 39,800&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:49.12%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;Total&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.24%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:19.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.24%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:14.76%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.25%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.21%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.08%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 63,300&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"&gt;The contingent earn-out obligation is associated with the achievement of three earnings milestones over a &lt;span style="-sec-ix-hidden:Hidden_7S33M40-vka_9FZRu5HBlg;"&gt;&lt;span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;"&gt;35-month&lt;/span&gt;&lt;/span&gt; period, and the range of each estimated milestone payment is $1.1 million to $4.7 million. We determined the initial fair value of the contingent earn-out obligation based on the Monte Carlo Simulation method, which represents a Level 3 measurement.&#160;Cash flows were discounted using discount rates ranging from 15.4% to 16.5%, which we believe is appropriate and representative of a market participant assumption.&#160;Subsequent to the acquisition date, the contingent earn-out obligation is remeasured at fair value each reporting period.&#160;Changes in the estimated fair value of the contingent payments subsequent to the acquisition date are recognized immediately in earnings.&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"&gt;&lt;span style="font-style:italic;font-weight:bold;"&gt;Other Acquisitions&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"&gt;On May 1, 2024, we acquired all of the issued and outstanding membership interests of a plumbing service provider in North Carolina for a total preliminary purchase price of $39.9 million, which is reported in our mechanical segment. &lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"&gt;On October 2, 2023, we acquired all of the issued and outstanding shares of capital stock of DECCO, Inc. (&#x201c;DECCO&#x201d;), headquartered in Nashua, New Hampshire, for a total purchase price of $59.8 million, which included $48.8 million of cash paid on the closing date, $7.0 million in notes payable to the former owners, an earn-out that will be paid if certain financial targets are met after the acquisition date and a working capital adjustment. DECCO operates in the Northeastern region of the United States and performs mechanical and plumbing services with specialties in piping systems, steam, power, biotechnical processes and conveying systems, in addition to turnkey tool and equipment installation, critical equipment handling services and associated maintenance and support services. As a result of the acquisition, DECCO is a wholly owned subsidiary of the Company reported in our mechanical segment.&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"&gt;On February 1, 2023, we acquired all of the issued and outstanding shares of capital stock of Eldeco, Inc. (&#x201c;Eldeco&#x201d;), headquartered in South Carolina, for a total purchase price of $74.0 million, which included $60.8 million of cash paid on the closing date, $8.0 million in notes payable to the former owners, an earn-out that will be paid if certain financial targets are met after the acquisition date and a working capital adjustment. Eldeco performs electrical design and construction services in the Southeastern region of the United States. As a result of the acquisition, Eldeco is a wholly owned subsidiary of the Company reported in our electrical segment.&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"&gt;The results of operations of acquisitions are included in our consolidated financial statements from their respective acquisition dates. Our Consolidated Balance Sheet includes preliminary allocations of the purchase price to the assets acquired and liabilities assumed for the applicable acquisitions pending the completion of the final valuation of intangible assets and accrued liabilities. The acquisitions completed in the current and prior year were not material, individually or in the aggregate. Additional contingent purchase price (&#x201c;earn-out&#x201d;) has been or will be paid if certain acquisitions achieve predetermined profitability targets. Such earn-outs, when they are not subject to the continued employment of the sellers, are estimated as of the purchase date and included as part of the consideration paid for the acquisition. If we have an earn-out under which continued employment is a condition to receipt of payment, then the earn-out is recorded as compensation expense over the period earned. &lt;/p&gt;</us-gaap:BusinessCombinationDisclosureTextBlock>
    <us-gaap:Revenues
      contextRef="Duration_2_1_2024_To_9_30_2024_us-gaap_BusinessAcquisitionAxis_fix_SummitIndustrialConstructionLlcMember_XMYoI1-JrkOXifMp6DHBsg"
      decimals="-5"
      id="Narr_vLigMVV9MEePF-lwW74JEw"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">256200000</us-gaap:Revenues>
    <us-gaap:ScheduleOfBusinessAcquisitionsByAcquisitionTextBlock
      contextRef="Duration_1_1_2024_To_9_30_2024_us-gaap_BusinessAcquisitionAxis_fix_SummitIndustrialConstructionLlcMember_CxZRbwSqy0yVRiIvUOAx4A"
      id="Tb_RX0Kd1rR9UqQ4vLZDHC-Rg">&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="display:inline-block;text-indent:0pt;width:36pt;"&gt;&lt;/span&gt;The following summarizes the acquisition date fair value of consideration transferred and the acquisition date fair value of the identifiable assets acquired and liabilities assumed, including an amount for goodwill (in thousands):&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="display:inline-block;text-indent:0pt;width:36pt;"&gt;&lt;/span&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;div style="padding-left:40.5pt;"&gt;&lt;table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:83.34%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;width:81.03%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.29%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:16.66%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:81.03%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;Consideration transferred:&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.29%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:16.66%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:81.03%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="white-space:pre-wrap;"&gt;  Cash paid at closing&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:middle;width:2.29%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:16.66%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 267,500&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:81.03%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="white-space:pre-wrap;"&gt;  Working capital adjustment &lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:middle;width:2.29%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="color:#ff0000;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:16.66%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 14,602&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:81.03%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="white-space:pre-wrap;"&gt;  Notes issued to former owners&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:middle;width:2.29%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:16.66%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 35,000&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:81.03%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="white-space:pre-wrap;"&gt;  Estimated fair value of contingent earn-out payments&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:middle;width:2.29%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:16.66%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 42,732&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:81.03%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:middle;width:2.29%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:16.66%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 359,834&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:81.03%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;Recognized amounts of identifiable assets acquired and liabilities assumed:&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:middle;width:2.29%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:16.66%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:81.03%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="white-space:pre-wrap;"&gt;  Cash and cash equivalents&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:middle;width:2.29%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:16.66%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 171,027&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:81.03%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="white-space:pre-wrap;"&gt;  Billed and unbilled accounts receivable&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:middle;width:2.29%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:16.66%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 59,846&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:81.03%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="white-space:pre-wrap;"&gt;  Prepaid expenses and other&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:middle;width:2.29%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:16.66%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 1,476&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:81.03%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="white-space:pre-wrap;"&gt;  Cost and estimated earnings in excess of billings&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:middle;width:2.29%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:16.66%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 578&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:81.03%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="white-space:pre-wrap;"&gt;  Property and equipment&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:middle;width:2.29%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:16.66%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 2,528&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:81.03%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="white-space:pre-wrap;"&gt;  Lease right-of-use asset&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:middle;width:2.29%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:16.66%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 2,364&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:81.03%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="white-space:pre-wrap;"&gt;  Goodwill&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.29%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:16.66%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 155,345&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:81.03%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="white-space:pre-wrap;"&gt;  Identifiable intangible assets&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:middle;width:2.29%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:16.66%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 170,100&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:81.03%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="white-space:pre-wrap;"&gt;  Other noncurrent assets&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:middle;width:2.29%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:16.66%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 136&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:81.03%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="white-space:pre-wrap;"&gt;  Accounts payable&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:middle;width:2.29%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:16.66%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt; (15,130)&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:81.03%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="white-space:pre-wrap;"&gt;  Billings in excess of costs and estimated earnings and deferred revenue&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:middle;width:2.29%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:16.66%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt; (179,895)&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:81.03%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="white-space:pre-wrap;"&gt;  Current operating lease liabilities&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:middle;width:2.29%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:16.66%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt; (1,495)&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:81.03%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="white-space:pre-wrap;"&gt;  Accrued expenses and other current liabilities&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:middle;width:2.29%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:16.66%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt; (6,293)&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:81.03%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="white-space:pre-wrap;"&gt;  Long-term operating lease liabilities&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:middle;width:2.29%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:16.66%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt; (753)&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:81.03%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:middle;width:2.29%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:16.66%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 359,834&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:ScheduleOfBusinessAcquisitionsByAcquisitionTextBlock>
    <us-gaap:PaymentsToAcquireBusinessesGross
      contextRef="Duration_2_1_2024_To_2_1_2024_us-gaap_BusinessAcquisitionAxis_fix_SummitIndustrialConstructionLlcMember_S5n0ZNTvS0KLqs4fzBJX1A"
      decimals="-3"
      id="Tc_NS6ERNVXB02jMDYyDYcWTA_2_2"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">267500000</us-gaap:PaymentsToAcquireBusinessesGross>
    <fix:BusinessCombinationConsiderationTransferredWorkingCapitalAdjustment
      contextRef="Duration_2_1_2024_To_2_1_2024_us-gaap_BusinessAcquisitionAxis_fix_SummitIndustrialConstructionLlcMember_S5n0ZNTvS0KLqs4fzBJX1A"
      decimals="-3"
      id="Tc_fyHhDg-poU2WmQPTRudetw_3_2"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">14602000</fix:BusinessCombinationConsiderationTransferredWorkingCapitalAdjustment>
    <us-gaap:BusinessCombinationConsiderationTransferredLiabilitiesIncurred
      contextRef="Duration_2_1_2024_To_2_1_2024_us-gaap_BusinessAcquisitionAxis_fix_SummitIndustrialConstructionLlcMember_S5n0ZNTvS0KLqs4fzBJX1A"
      decimals="-3"
      id="Tc_LVnBv76sn0OiLyeDrLFI5w_4_2"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">35000000</us-gaap:BusinessCombinationConsiderationTransferredLiabilitiesIncurred>
    <us-gaap:BusinessCombinationContingentConsiderationLiability
      contextRef="As_Of_2_1_2024_us-gaap_BusinessAcquisitionAxis_fix_SummitIndustrialConstructionLlcMember_4nZLiHoQek-94UQ4yBtSSQ"
      decimals="-3"
      id="Tc_2-vYmZloYEGI96mOt1f0UA_5_2"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">42732000</us-gaap:BusinessCombinationContingentConsiderationLiability>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet
      contextRef="As_Of_2_1_2024_us-gaap_BusinessAcquisitionAxis_fix_SummitIndustrialConstructionLlcMember_4nZLiHoQek-94UQ4yBtSSQ"
      decimals="-3"
      id="Tc_yzVzyDlK8U-Isbv-0YS6JQ_6_2"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">359834000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents
      contextRef="As_Of_2_1_2024_us-gaap_BusinessAcquisitionAxis_fix_SummitIndustrialConstructionLlcMember_4nZLiHoQek-94UQ4yBtSSQ"
      decimals="-3"
      id="Tc_XVJ3mzJMjkyT4oR1GlUPXg_8_2"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">171027000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables
      contextRef="As_Of_2_1_2024_us-gaap_BusinessAcquisitionAxis_fix_SummitIndustrialConstructionLlcMember_4nZLiHoQek-94UQ4yBtSSQ"
      decimals="-3"
      id="Tc_OovEUzhBvkOG7Q5LxMS0-w_9_2"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">59846000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsPrepaidExpenseAndOtherAssets
      contextRef="As_Of_2_1_2024_us-gaap_BusinessAcquisitionAxis_fix_SummitIndustrialConstructionLlcMember_4nZLiHoQek-94UQ4yBtSSQ"
      decimals="-3"
      id="Tc_9LUJ3KCg5E6RrPlejDaVnA_10_2"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">1476000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsPrepaidExpenseAndOtherAssets>
    <fix:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsCostsInExcessOfBillings
      contextRef="As_Of_2_1_2024_us-gaap_BusinessAcquisitionAxis_fix_SummitIndustrialConstructionLlcMember_4nZLiHoQek-94UQ4yBtSSQ"
      decimals="-3"
      id="Tc_5dnJ8FjtXEac-g2-M8ZUUw_11_2"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">578000</fix:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsCostsInExcessOfBillings>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment
      contextRef="As_Of_2_1_2024_us-gaap_BusinessAcquisitionAxis_fix_SummitIndustrialConstructionLlcMember_4nZLiHoQek-94UQ4yBtSSQ"
      decimals="-3"
      id="Tc_ejHmGYyHbkGMrBbRE59-Ug_12_2"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">2528000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment>
    <fix:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseRightOfUseAssets
      contextRef="As_Of_2_1_2024_us-gaap_BusinessAcquisitionAxis_fix_SummitIndustrialConstructionLlcMember_4nZLiHoQek-94UQ4yBtSSQ"
      decimals="-3"
      id="Tc_x65fV-iNPUaZAMSbjBJs5Q_13_2"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">2364000</fix:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseRightOfUseAssets>
    <us-gaap:Goodwill
      contextRef="As_Of_2_1_2024_us-gaap_BusinessAcquisitionAxis_fix_SummitIndustrialConstructionLlcMember_4nZLiHoQek-94UQ4yBtSSQ"
      decimals="-3"
      id="Tc_KR2ZToa_vkmNl2aBAccAlw_14_2"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">155345000</us-gaap:Goodwill>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles
      contextRef="As_Of_2_1_2024_us-gaap_BusinessAcquisitionAxis_fix_SummitIndustrialConstructionLlcMember_4nZLiHoQek-94UQ4yBtSSQ"
      decimals="-3"
      id="Tc_XanSg2-vmEOH6YGlv57BEw_15_2"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">170100000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOtherNoncurrentAssets
      contextRef="As_Of_2_1_2024_us-gaap_BusinessAcquisitionAxis_fix_SummitIndustrialConstructionLlcMember_4nZLiHoQek-94UQ4yBtSSQ"
      decimals="-3"
      id="Tc_Q4IhyN3Y6EmXNJky6MQI2A_16_2"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">136000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOtherNoncurrentAssets>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable
      contextRef="As_Of_2_1_2024_us-gaap_BusinessAcquisitionAxis_fix_SummitIndustrialConstructionLlcMember_4nZLiHoQek-94UQ4yBtSSQ"
      decimals="-3"
      id="Tc_s0xnyP_cqUqJmvgZ-i3b8w_17_2"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">15130000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable>
    <fix:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesBillingsInExcessOfCostsAndEstimatedEarnings
      contextRef="As_Of_2_1_2024_us-gaap_BusinessAcquisitionAxis_fix_SummitIndustrialConstructionLlcMember_4nZLiHoQek-94UQ4yBtSSQ"
      decimals="-3"
      id="Tc_jz17iRohw0KbJSprv_8egw_18_2"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">179895000</fix:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesBillingsInExcessOfCostsAndEstimatedEarnings>
    <fix:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesOperatingLeaseLiabilities
      contextRef="As_Of_2_1_2024_us-gaap_BusinessAcquisitionAxis_fix_SummitIndustrialConstructionLlcMember_4nZLiHoQek-94UQ4yBtSSQ"
      decimals="-3"
      id="Tc_6s0MeSLHrkG9jO1hKGU_6Q_19_2"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">1495000</fix:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesOperatingLeaseLiabilities>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesOther
      contextRef="As_Of_2_1_2024_us-gaap_BusinessAcquisitionAxis_fix_SummitIndustrialConstructionLlcMember_4nZLiHoQek-94UQ4yBtSSQ"
      decimals="-3"
      id="Tc_8mWA4VhziUGILNqZrLmo-Q_20_2"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">6293000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesOther>
    <fix:BusinessCombinationRecognizedIdentifiableAssetAcquiredAndLiabilityAssumedOperatingLeaseObligation
      contextRef="As_Of_2_1_2024_us-gaap_BusinessAcquisitionAxis_fix_SummitIndustrialConstructionLlcMember_4nZLiHoQek-94UQ4yBtSSQ"
      decimals="-3"
      id="Tc_hHEIKCdn_EG8DQ-yC_lvuQ_21_2"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">753000</fix:BusinessCombinationRecognizedIdentifiableAssetAcquiredAndLiabilityAssumedOperatingLeaseObligation>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet
      contextRef="As_Of_2_1_2024_us-gaap_BusinessAcquisitionAxis_fix_SummitIndustrialConstructionLlcMember_4nZLiHoQek-94UQ4yBtSSQ"
      decimals="-3"
      id="Tc_3akKd66vFEu4GRPwZt1H8A_22_2"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">359834000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet>
    <fix:CashFlowDiscountRate
      contextRef="Duration_2_1_2024_To_2_1_2024_srt_RangeAxis_srt_MinimumMember_us-gaap_BusinessAcquisitionAxis_fix_SummitIndustrialConstructionLlcMember_us-gaap_MeasurementInputTypeAxis_us-gaap_MeasurementInputInceptionDiscountRateMember_jsSEzNLlEE-Ex4s5gpzSkA"
      decimals="3"
      id="Narr_wS5vEb48nkC5AWBQl8ehKA"
      unitRef="Unit_Standard_pure_0GIr2wv4rk-T38a8Lz0A5w">0.185</fix:CashFlowDiscountRate>
    <fix:CashFlowDiscountRate
      contextRef="Duration_2_1_2024_To_2_1_2024_srt_RangeAxis_srt_MaximumMember_us-gaap_BusinessAcquisitionAxis_fix_SummitIndustrialConstructionLlcMember_us-gaap_MeasurementInputTypeAxis_us-gaap_MeasurementInputInceptionDiscountRateMember_9jhFskDynU-Bp3RZFmcmmg"
      decimals="3"
      id="Narr_WosO_H6GkkqPDlOJDk0eUA"
      unitRef="Unit_Standard_pure_0GIr2wv4rk-T38a8Lz0A5w">0.205</fix:CashFlowDiscountRate>
    <us-gaap:ScheduleOfFiniteLivedIntangibleAssetsAcquiredAsPartOfBusinessCombinationTextBlock
      contextRef="Duration_1_1_2024_To_9_30_2024_us-gaap_BusinessAcquisitionAxis_fix_SummitIndustrialConstructionLlcMember_CxZRbwSqy0yVRiIvUOAx4A"
      id="Tb_91y1usHue0eaIOgIDAjLAQ">&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"&gt;The acquired intangible assets include the following (dollars in thousands):&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;div style="padding-left:40.5pt;"&gt;&lt;table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:84.17%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;width:48.39%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.19%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:20.3%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:12.51%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:1.72%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:1.72%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:11.41%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:48.39%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.19%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:20.3%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;Valuation Method&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:12.51%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;Estimated Useful Life&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:1.72%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:1.72%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:11.41%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;Estimated Fair Value&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:48.39%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;Backlog&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.19%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:20.3%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"&gt;Excess earnings&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.51%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"&gt;1.8 years&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.41%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 35,800&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:48.39%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;Trade Name&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.19%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:20.3%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"&gt;Relief-from-royalty&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.51%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"&gt;22.9 years&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:1.72%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:1.72%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.41%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 11,300&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:48.39%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;Customer Relationships&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.19%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:20.3%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"&gt;Excess earnings&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.51%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"&gt;10 years&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:1.72%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.41%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 123,000&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:48.39%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;Total&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.19%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:20.3%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:12.51%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:1.72%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:1.72%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.41%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 170,100&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:ScheduleOfFiniteLivedIntangibleAssetsAcquiredAsPartOfBusinessCombinationTextBlock>
    <us-gaap:AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife
      contextRef="Duration_2_1_2024_To_2_1_2024_us-gaap_BusinessAcquisitionAxis_fix_SummitIndustrialConstructionLlcMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_OrderOrProductionBacklogMember_XY4c7Vh_f0Wib7AmjNTmVQ"
      id="Narr_CvvlZubpTEuTZSfoOKaAAQ">P1Y9M18D</us-gaap:AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles
      contextRef="As_Of_2_1_2024_us-gaap_BusinessAcquisitionAxis_fix_SummitIndustrialConstructionLlcMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_OrderOrProductionBacklogMember_DG1vcGdP1E-NsKJirHxzmA"
      decimals="-3"
      id="Tc_Ku1xpfXTikKLM_Yte9-AoQ_2_7"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">35800000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles>
    <us-gaap:AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife
      contextRef="Duration_2_1_2024_To_2_1_2024_us-gaap_BusinessAcquisitionAxis_fix_SummitIndustrialConstructionLlcMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TradeNamesMember_lgAhxWYVXEu_Bz9p8cz9pg"
      id="Narr_qZZZElEjh0utChlMiMtC-g">P22Y10M24D</us-gaap:AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles
      contextRef="As_Of_2_1_2024_us-gaap_BusinessAcquisitionAxis_fix_SummitIndustrialConstructionLlcMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TradeNamesMember_ZEDGijrvHEGoqpZCVa3O6Q"
      decimals="-3"
      id="Tc_En3bwXIefEuVWfjQYg1nZQ_3_7"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">11300000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles>
    <us-gaap:AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife
      contextRef="Duration_2_1_2024_To_2_1_2024_us-gaap_BusinessAcquisitionAxis_fix_SummitIndustrialConstructionLlcMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_SR-BbGaHQU6crVtFm4Hs3A"
      id="Tc_ITrN-MamS0iqKzOk-i6XYA_4_4">P10Y</us-gaap:AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles
      contextRef="As_Of_2_1_2024_us-gaap_BusinessAcquisitionAxis_fix_SummitIndustrialConstructionLlcMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_E_44aqF1GEeC-off1i3zFQ"
      decimals="-3"
      id="Tc_sLVGCO2uV02glN6yElP0_w_4_7"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">123000000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles
      contextRef="As_Of_2_1_2024_us-gaap_BusinessAcquisitionAxis_fix_SummitIndustrialConstructionLlcMember_4nZLiHoQek-94UQ4yBtSSQ"
      decimals="-3"
      id="Tc_Spe6dL92YU6KoogROKSj_Q_5_7"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">170100000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles>
    <fix:BusinessCombinationNumberOfEarningsMilestones
      contextRef="As_Of_2_1_2024_us-gaap_BusinessAcquisitionAxis_fix_SummitIndustrialConstructionLlcMember_us-gaap_FairValueByLiabilityClassAxis_fix_ContingentConsiderationObligationsMember_6iSMnKlf-ESVMUiNLAe0RQ"
      decimals="INF"
      id="Narr_q6QElw53uU-h0CD1wWopPQ"
      unitRef="Unit_Standard_Milestone_OLalA_yQ5Um-7AHW7XVHqw">4</fix:BusinessCombinationNumberOfEarningsMilestones>
    <us-gaap:BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueLow
      contextRef="As_Of_2_1_2024_us-gaap_BusinessAcquisitionAxis_fix_SummitIndustrialConstructionLlcMember_us-gaap_FairValueByLiabilityClassAxis_fix_ContingentConsiderationObligationsMember_6iSMnKlf-ESVMUiNLAe0RQ"
      decimals="-5"
      id="Narr_UQwf0WaG3U-Y0ljUgvjShw"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">2600000</us-gaap:BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueLow>
    <us-gaap:BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueHigh
      contextRef="As_Of_2_1_2024_us-gaap_BusinessAcquisitionAxis_fix_SummitIndustrialConstructionLlcMember_us-gaap_FairValueByLiabilityClassAxis_fix_ContingentConsiderationObligationsMember_6iSMnKlf-ESVMUiNLAe0RQ"
      decimals="-5"
      id="Narr_XPCkf2ZHrU2Zb3uBojZJng"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">20500000</us-gaap:BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueHigh>
    <fix:CashFlowDiscountRate
      contextRef="Duration_2_1_2024_To_2_1_2024_srt_RangeAxis_srt_MinimumMember_us-gaap_BusinessAcquisitionAxis_fix_SummitIndustrialConstructionLlcMember_us-gaap_FairValueByLiabilityClassAxis_fix_ContingentConsiderationObligationsMember_us-gaap_MeasurementInputTypeAxis_us-gaap_MeasurementInputInceptionDiscountRateMember_omOpY3LNbk21p0z2y9Cidw"
      decimals="3"
      id="Narr_Z2UZvqZYt0mOkGOc1gvYiQ"
      unitRef="Unit_Standard_pure_0GIr2wv4rk-T38a8Lz0A5w">0.182</fix:CashFlowDiscountRate>
    <fix:CashFlowDiscountRate
      contextRef="Duration_2_1_2024_To_2_1_2024_srt_RangeAxis_srt_MaximumMember_us-gaap_BusinessAcquisitionAxis_fix_SummitIndustrialConstructionLlcMember_us-gaap_FairValueByLiabilityClassAxis_fix_ContingentConsiderationObligationsMember_us-gaap_MeasurementInputTypeAxis_us-gaap_MeasurementInputInceptionDiscountRateMember_dhJ80I6zTE-y2GJjn5aLWQ"
      decimals="3"
      id="Narr_rYftAAxZ7EisyYyBlvln2A"
      unitRef="Unit_Standard_pure_0GIr2wv4rk-T38a8Lz0A5w">0.195</fix:CashFlowDiscountRate>
    <us-gaap:Revenues
      contextRef="Duration_2_1_2024_To_9_30_2024_us-gaap_BusinessAcquisitionAxis_fix_JSMechanicalContractorsIncMember_iwZyJ5KkDkS-Op4hGo6UaQ"
      decimals="-5"
      id="Narr_xaztpRLRTEmYKEeIfVVWEA"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">106300000</us-gaap:Revenues>
    <us-gaap:ScheduleOfBusinessAcquisitionsByAcquisitionTextBlock
      contextRef="Duration_1_1_2024_To_9_30_2024_us-gaap_BusinessAcquisitionAxis_fix_JSMechanicalContractorsIncMember_4Tqmm51vwU24UcfZGJNKoA"
      id="Tb_qtEzinAPzECklzlH5NN8BQ">&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="display:inline-block;text-indent:0pt;width:36pt;"&gt;&lt;/span&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;div style="padding-left:40.5pt;"&gt;&lt;table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:85.59%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;width:82.58%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.43%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.97%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:82.58%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;Consideration transferred:&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.43%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.97%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:82.58%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="white-space:pre-wrap;"&gt;  Cash paid at closing&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:middle;width:3.43%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.97%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 100,000&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:82.58%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="white-space:pre-wrap;"&gt;  Working capital adjustment &lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:middle;width:3.43%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="color:#ff0000;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.97%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 1,587&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:82.58%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="white-space:pre-wrap;"&gt;  Notes issued to former owners&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:middle;width:3.43%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.97%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 10,000&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:82.58%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="white-space:pre-wrap;"&gt;  Estimated fair value of contingent earn-out payments&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:middle;width:3.43%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.97%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 9,052&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:82.58%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:middle;width:3.43%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.97%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 120,639&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:82.58%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;Recognized amounts of identifiable assets acquired and liabilities assumed:&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:middle;width:3.43%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.97%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:82.58%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="white-space:pre-wrap;"&gt;  Cash and cash equivalents&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:middle;width:3.43%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.97%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 14,802&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:82.58%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="white-space:pre-wrap;"&gt;  Billed and unbilled accounts receivable&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:middle;width:3.43%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.97%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 38,411&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:82.58%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="white-space:pre-wrap;"&gt;  Inventory&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.43%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:11pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.97%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 230&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:82.58%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="white-space:pre-wrap;"&gt;  Prepaid expenses and other&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:middle;width:3.43%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.97%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 393&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:82.58%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="white-space:pre-wrap;"&gt;  Costs and estimated earnings in excess of billings&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.43%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:11pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.97%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 728&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:82.58%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="white-space:pre-wrap;"&gt;  Property and equipment&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:middle;width:3.43%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.97%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 2,674&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:82.58%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="white-space:pre-wrap;"&gt;  Lease right-of-use asset&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:middle;width:3.43%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.97%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 4,552&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:82.58%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="white-space:pre-wrap;"&gt;  Goodwill&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.43%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.97%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 40,706&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:82.58%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="white-space:pre-wrap;"&gt;  Identifiable intangible assets&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:middle;width:3.43%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.97%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 63,300&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:82.58%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="white-space:pre-wrap;"&gt;  Other noncurrent assets&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:middle;width:3.43%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.97%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 10&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:82.58%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="white-space:pre-wrap;"&gt;  Accounts payable&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:middle;width:3.43%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.97%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt; (20,649)&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:82.58%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="white-space:pre-wrap;"&gt;  Billings in excess of costs and estimated earnings and deferred revenue&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:middle;width:3.43%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.97%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt; (19,188)&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:82.58%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="white-space:pre-wrap;"&gt;  Current operating lease liabilities&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:middle;width:3.43%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.97%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt; (133)&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:82.58%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="white-space:pre-wrap;"&gt;  Accrued expenses and other current liabilities&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:middle;width:3.43%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.97%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt; (826)&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:82.58%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="white-space:pre-wrap;"&gt;  Long-term debt&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:middle;width:3.43%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.97%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt; (59)&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:82.58%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="white-space:pre-wrap;"&gt;  Long-term operating lease liabilities&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:middle;width:3.43%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.97%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt; (4,312)&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:82.58%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:middle;width:3.43%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.97%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 120,639&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;</us-gaap:ScheduleOfBusinessAcquisitionsByAcquisitionTextBlock>
    <us-gaap:PaymentsToAcquireBusinessesGross
      contextRef="Duration_2_1_2024_To_2_1_2024_us-gaap_BusinessAcquisitionAxis_fix_JSMechanicalContractorsIncMember_vbpAmjpzQ0i17zj1l6LoZQ"
      decimals="-3"
      id="Tc_OSIetporbUOEmez-Q3idNQ_2_2"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">100000000</us-gaap:PaymentsToAcquireBusinessesGross>
    <fix:BusinessCombinationConsiderationTransferredWorkingCapitalAdjustment
      contextRef="Duration_2_1_2024_To_2_1_2024_us-gaap_BusinessAcquisitionAxis_fix_JSMechanicalContractorsIncMember_vbpAmjpzQ0i17zj1l6LoZQ"
      decimals="-3"
      id="Tc_9qaPri5CHEyFZK5yHTwqsg_3_2"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">1587000</fix:BusinessCombinationConsiderationTransferredWorkingCapitalAdjustment>
    <us-gaap:BusinessCombinationConsiderationTransferredLiabilitiesIncurred
      contextRef="Duration_2_1_2024_To_2_1_2024_us-gaap_BusinessAcquisitionAxis_fix_JSMechanicalContractorsIncMember_vbpAmjpzQ0i17zj1l6LoZQ"
      decimals="-3"
      id="Tc_JQzjLayWe0uIPRfY19cEqA_4_2"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">10000000</us-gaap:BusinessCombinationConsiderationTransferredLiabilitiesIncurred>
    <us-gaap:BusinessCombinationContingentConsiderationLiability
      contextRef="As_Of_2_1_2024_us-gaap_BusinessAcquisitionAxis_fix_JSMechanicalContractorsIncMember_-UFNMak94EiLKWp3uwuxKA"
      decimals="-3"
      id="Tc_M3JodK7XzESdMdkofahfDg_5_2"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">9052000</us-gaap:BusinessCombinationContingentConsiderationLiability>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet
      contextRef="As_Of_2_1_2024_us-gaap_BusinessAcquisitionAxis_fix_JSMechanicalContractorsIncMember_-UFNMak94EiLKWp3uwuxKA"
      decimals="-3"
      id="Tc_n4I0Hs8cbEes8lx44Dqt9Q_6_2"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">120639000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents
      contextRef="As_Of_2_1_2024_us-gaap_BusinessAcquisitionAxis_fix_JSMechanicalContractorsIncMember_-UFNMak94EiLKWp3uwuxKA"
      decimals="-3"
      id="Tc_ohcYrKdro0KuiByCCVm-3Q_8_2"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">14802000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables
      contextRef="As_Of_2_1_2024_us-gaap_BusinessAcquisitionAxis_fix_JSMechanicalContractorsIncMember_-UFNMak94EiLKWp3uwuxKA"
      decimals="-3"
      id="Tc_yrLdlbmPK0uAw3xwpBAv8w_9_2"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">38411000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedInventory
      contextRef="As_Of_2_1_2024_us-gaap_BusinessAcquisitionAxis_fix_JSMechanicalContractorsIncMember_-UFNMak94EiLKWp3uwuxKA"
      decimals="-3"
      id="Tc_9dYcEAHZRUqt-P3NZ6wyxA_10_2"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">230000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedInventory>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsPrepaidExpenseAndOtherAssets
      contextRef="As_Of_2_1_2024_us-gaap_BusinessAcquisitionAxis_fix_JSMechanicalContractorsIncMember_-UFNMak94EiLKWp3uwuxKA"
      decimals="-3"
      id="Tc_LubhmX6kl0W1hKXTusNm8g_11_2"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">393000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsPrepaidExpenseAndOtherAssets>
    <fix:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsCostsInExcessOfBillings
      contextRef="As_Of_2_1_2024_us-gaap_BusinessAcquisitionAxis_fix_JSMechanicalContractorsIncMember_-UFNMak94EiLKWp3uwuxKA"
      decimals="-3"
      id="Tc_mgMg9MObYEuc8iSW5ccDUA_12_2"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">728000</fix:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsCostsInExcessOfBillings>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment
      contextRef="As_Of_2_1_2024_us-gaap_BusinessAcquisitionAxis_fix_JSMechanicalContractorsIncMember_-UFNMak94EiLKWp3uwuxKA"
      decimals="-3"
      id="Tc_phr65IbExUGD-guWekEZuQ_13_2"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">2674000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment>
    <fix:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseRightOfUseAssets
      contextRef="As_Of_2_1_2024_us-gaap_BusinessAcquisitionAxis_fix_JSMechanicalContractorsIncMember_-UFNMak94EiLKWp3uwuxKA"
      decimals="-3"
      id="Tc_W7D-BVRmUkqk9WYegcrkVA_14_2"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">4552000</fix:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseRightOfUseAssets>
    <us-gaap:Goodwill
      contextRef="As_Of_2_1_2024_us-gaap_BusinessAcquisitionAxis_fix_JSMechanicalContractorsIncMember_-UFNMak94EiLKWp3uwuxKA"
      decimals="-3"
      id="Tc_GWL2GMEljk-I8rLHaQTtFg_15_2"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">40706000</us-gaap:Goodwill>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles
      contextRef="As_Of_2_1_2024_us-gaap_BusinessAcquisitionAxis_fix_JSMechanicalContractorsIncMember_-UFNMak94EiLKWp3uwuxKA"
      decimals="-3"
      id="Tc_SplQGLGM20mI1FMeZKtdrg_16_2"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">63300000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOtherNoncurrentAssets
      contextRef="As_Of_2_1_2024_us-gaap_BusinessAcquisitionAxis_fix_JSMechanicalContractorsIncMember_-UFNMak94EiLKWp3uwuxKA"
      decimals="-3"
      id="Tc_PJjyyX7rw0uswXQVuN2uzQ_17_2"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">10000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOtherNoncurrentAssets>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable
      contextRef="As_Of_2_1_2024_us-gaap_BusinessAcquisitionAxis_fix_JSMechanicalContractorsIncMember_-UFNMak94EiLKWp3uwuxKA"
      decimals="-3"
      id="Tc_XNyulKgt3UOW9Apj7gwtyA_18_2"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">20649000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable>
    <fix:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesBillingsInExcessOfCostsAndEstimatedEarnings
      contextRef="As_Of_2_1_2024_us-gaap_BusinessAcquisitionAxis_fix_JSMechanicalContractorsIncMember_-UFNMak94EiLKWp3uwuxKA"
      decimals="-3"
      id="Tc_A3vKTTlihkCDV5d42PQrig_19_2"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">19188000</fix:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesBillingsInExcessOfCostsAndEstimatedEarnings>
    <fix:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesOperatingLeaseLiabilities
      contextRef="As_Of_2_1_2024_us-gaap_BusinessAcquisitionAxis_fix_JSMechanicalContractorsIncMember_-UFNMak94EiLKWp3uwuxKA"
      decimals="-3"
      id="Tc_DhN-5vKfPUStH3dKH2wVxw_20_2"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">133000</fix:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesOperatingLeaseLiabilities>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesOther
      contextRef="As_Of_2_1_2024_us-gaap_BusinessAcquisitionAxis_fix_JSMechanicalContractorsIncMember_-UFNMak94EiLKWp3uwuxKA"
      decimals="-3"
      id="Tc_bMK4MRdsOU2EBNgpoXmGmw_21_2"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">826000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesOther>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNoncurrentLiabilitiesLongTermDebt
      contextRef="As_Of_2_1_2024_us-gaap_BusinessAcquisitionAxis_fix_JSMechanicalContractorsIncMember_-UFNMak94EiLKWp3uwuxKA"
      decimals="-3"
      id="Tc_oXDMWkrItkuGu_Bn9m5gMg_22_2"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">59000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNoncurrentLiabilitiesLongTermDebt>
    <fix:BusinessCombinationRecognizedIdentifiableAssetAcquiredAndLiabilityAssumedOperatingLeaseObligation
      contextRef="As_Of_2_1_2024_us-gaap_BusinessAcquisitionAxis_fix_JSMechanicalContractorsIncMember_-UFNMak94EiLKWp3uwuxKA"
      decimals="-3"
      id="Tc_FlmP-TZqLkivf7uhVlXFIw_23_2"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">4312000</fix:BusinessCombinationRecognizedIdentifiableAssetAcquiredAndLiabilityAssumedOperatingLeaseObligation>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet
      contextRef="As_Of_2_1_2024_us-gaap_BusinessAcquisitionAxis_fix_JSMechanicalContractorsIncMember_-UFNMak94EiLKWp3uwuxKA"
      decimals="-3"
      id="Tc_aX9NRUx0v0WSCos-O717qw_24_2"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">120639000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet>
    <fix:CashFlowDiscountRate
      contextRef="Duration_2_1_2024_To_2_1_2024_srt_RangeAxis_srt_MinimumMember_us-gaap_BusinessAcquisitionAxis_fix_JSMechanicalContractorsIncMember_us-gaap_MeasurementInputTypeAxis_us-gaap_MeasurementInputInceptionDiscountRateMember_E08FgkC7SU-_6ToMlCXhxQ"
      decimals="3"
      id="Narr_EM94ZKfcs0iEYIRXz7Yj3w"
      unitRef="Unit_Standard_pure_0GIr2wv4rk-T38a8Lz0A5w">0.155</fix:CashFlowDiscountRate>
    <fix:CashFlowDiscountRate
      contextRef="Duration_2_1_2024_To_2_1_2024_srt_RangeAxis_srt_MaximumMember_us-gaap_BusinessAcquisitionAxis_fix_JSMechanicalContractorsIncMember_us-gaap_MeasurementInputTypeAxis_us-gaap_MeasurementInputInceptionDiscountRateMember_3_7veEW0vUGYAhsysIAMDg"
      decimals="3"
      id="Narr_w0RXE48JWEmDc4C5WtxblA"
      unitRef="Unit_Standard_pure_0GIr2wv4rk-T38a8Lz0A5w">0.170</fix:CashFlowDiscountRate>
    <us-gaap:ScheduleOfFiniteLivedIntangibleAssetsAcquiredAsPartOfBusinessCombinationTextBlock
      contextRef="Duration_1_1_2024_To_9_30_2024_us-gaap_BusinessAcquisitionAxis_fix_JSMechanicalContractorsIncMember_4Tqmm51vwU24UcfZGJNKoA"
      id="Tb_0_1VC9KemU6WPdyGSAyKmA">&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"&gt;The acquired intangible assets include the following (dollars in thousands):&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;div style="padding-left:40.5pt;"&gt;&lt;table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:85.17%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:49.12%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.24%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:19.06%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.24%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:14.76%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.25%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.21%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.08%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:49.12%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.24%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:19.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;span style="font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.24%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:14.76%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;Estimated&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.25%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.3%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;Estimated&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:49.12%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.24%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:19.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;Valuation Method&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.24%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:14.76%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;Useful Life&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.25%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.3%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;Fair Value&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:49.12%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;Backlog&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.24%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:19.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"&gt;Excess earnings&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.24%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:14.76%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"&gt;1.8 years&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.25%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.21%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 12,900&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:49.12%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;Trade Name&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.24%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:19.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"&gt;Relief-from-royalty&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.24%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:14.76%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"&gt;22 years&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.25%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.21%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 10,600&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:49.12%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;Customer Relationships&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.24%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:19.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"&gt;Excess earnings&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.24%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:14.76%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"&gt;9 years&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.25%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.21%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.08%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 39,800&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:49.12%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;Total&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.24%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:19.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.24%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:14.76%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.25%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.21%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.08%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 63,300&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:ScheduleOfFiniteLivedIntangibleAssetsAcquiredAsPartOfBusinessCombinationTextBlock>
    <us-gaap:AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife
      contextRef="Duration_2_1_2024_To_2_1_2024_us-gaap_BusinessAcquisitionAxis_fix_JSMechanicalContractorsIncMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_OrderOrProductionBacklogMember_J4SGwOYkg0erGQ6tMtF4oQ"
      id="Narr_jFBI57HLr0m_CMWfH0vpyw">P1Y9M18D</us-gaap:AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles
      contextRef="As_Of_2_1_2024_us-gaap_BusinessAcquisitionAxis_fix_JSMechanicalContractorsIncMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_OrderOrProductionBacklogMember_e3s3Gydg70m4gr5DlLZ2jA"
      decimals="-3"
      id="Tc_3xDi78286UmkQMe53byJhg_3_7"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">12900000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles>
    <us-gaap:AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife
      contextRef="Duration_2_1_2024_To_2_1_2024_us-gaap_BusinessAcquisitionAxis_fix_JSMechanicalContractorsIncMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TradeNamesMember_fM79lywvg0u8_5fg8WgnBg"
      id="Tc_8aF9VGV3xUCrnm-FYetcJA_4_4">P22Y</us-gaap:AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles
      contextRef="As_Of_2_1_2024_us-gaap_BusinessAcquisitionAxis_fix_JSMechanicalContractorsIncMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TradeNamesMember_UbdNcFSzgE6eQY8Lq0nsUQ"
      decimals="-3"
      id="Tc_N7WpGUx3oka2bDOZ7UuWXQ_4_7"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">10600000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles>
    <us-gaap:AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife
      contextRef="Duration_2_1_2024_To_2_1_2024_us-gaap_BusinessAcquisitionAxis_fix_JSMechanicalContractorsIncMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_DCSiQ8QzcESU4zRgTrHB3A"
      id="Tc_AVM904NjcUyO6ihYT44gQQ_5_4">P9Y</us-gaap:AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles
      contextRef="As_Of_2_1_2024_us-gaap_BusinessAcquisitionAxis_fix_JSMechanicalContractorsIncMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_E5wMVmpO-EaMwtCFJaOzjg"
      decimals="-3"
      id="Tc_hLHAiHsk30ah3_e-Pb6Jsg_5_7"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">39800000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles
      contextRef="As_Of_2_1_2024_us-gaap_BusinessAcquisitionAxis_fix_JSMechanicalContractorsIncMember_-UFNMak94EiLKWp3uwuxKA"
      decimals="-3"
      id="Tc_2p3nO-0tBkib9ABwCqFgOw_6_7"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">63300000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles>
    <fix:BusinessCombinationNumberOfEarningsMilestones
      contextRef="As_Of_2_1_2024_us-gaap_BusinessAcquisitionAxis_fix_JSMechanicalContractorsIncMember_us-gaap_FairValueByLiabilityClassAxis_fix_ContingentConsiderationObligationsMember_elY5K7I58U6YVrlQHSZljw"
      decimals="INF"
      id="Narr_WWeQH7N3jkyK8FJ4tN2Xbw"
      unitRef="Unit_Standard_Milestone_OLalA_yQ5Um-7AHW7XVHqw">3</fix:BusinessCombinationNumberOfEarningsMilestones>
    <us-gaap:BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueLow
      contextRef="As_Of_2_1_2024_us-gaap_BusinessAcquisitionAxis_fix_JSMechanicalContractorsIncMember_us-gaap_FairValueByLiabilityClassAxis_fix_ContingentConsiderationObligationsMember_elY5K7I58U6YVrlQHSZljw"
      decimals="-5"
      id="Narr_OupTiIDPh0OS6hbpd6Otpw"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">1100000</us-gaap:BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueLow>
    <us-gaap:BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueHigh
      contextRef="As_Of_2_1_2024_us-gaap_BusinessAcquisitionAxis_fix_JSMechanicalContractorsIncMember_us-gaap_FairValueByLiabilityClassAxis_fix_ContingentConsiderationObligationsMember_elY5K7I58U6YVrlQHSZljw"
      decimals="-5"
      id="Narr_YMvygKAbgkOc5Cs55aLRfA"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">4700000</us-gaap:BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueHigh>
    <fix:CashFlowDiscountRate
      contextRef="Duration_2_1_2024_To_2_1_2024_srt_RangeAxis_srt_MinimumMember_us-gaap_BusinessAcquisitionAxis_fix_JSMechanicalContractorsIncMember_us-gaap_FairValueByLiabilityClassAxis_fix_ContingentConsiderationObligationsMember_us-gaap_MeasurementInputTypeAxis_us-gaap_MeasurementInputInceptionDiscountRateMember_Z4PzYqr85UuHGkurckYlsA"
      decimals="3"
      id="Narr_9Q2OpfgR9UKOsOM0PjnBDA"
      unitRef="Unit_Standard_pure_0GIr2wv4rk-T38a8Lz0A5w">0.154</fix:CashFlowDiscountRate>
    <fix:CashFlowDiscountRate
      contextRef="Duration_2_1_2024_To_2_1_2024_srt_RangeAxis_srt_MaximumMember_us-gaap_BusinessAcquisitionAxis_fix_JSMechanicalContractorsIncMember_us-gaap_FairValueByLiabilityClassAxis_fix_ContingentConsiderationObligationsMember_us-gaap_MeasurementInputTypeAxis_us-gaap_MeasurementInputInceptionDiscountRateMember_1iGhRmFgn0SNe3F9sRA-Hw"
      decimals="3"
      id="Narr_9RYasRTrx0WFkDhqkJL9tg"
      unitRef="Unit_Standard_pure_0GIr2wv4rk-T38a8Lz0A5w">0.165</fix:CashFlowDiscountRate>
    <us-gaap:BusinessCombinationConsiderationTransferred1
      contextRef="Duration_5_1_2024_To_5_1_2024_us-gaap_BusinessAcquisitionAxis_fix_MechanicalContractorNorthCarolinaMember_GFQfbwtaoU6aQ2eCa6Ydxg"
      decimals="-5"
      id="Narr_1Th667BGn0atdHACdCXDSw"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">39900000</us-gaap:BusinessCombinationConsiderationTransferred1>
    <us-gaap:BusinessCombinationConsiderationTransferred1
      contextRef="Duration_10_2_2023_To_10_2_2023_us-gaap_BusinessAcquisitionAxis_fix_DeccoIncMember_Dx8j_lCNK0GxxJ_7YlmX8g"
      decimals="-5"
      id="Narr_CHo8ON1QUkCY-V91psFhBQ"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">59800000</us-gaap:BusinessCombinationConsiderationTransferred1>
    <us-gaap:PaymentsToAcquireBusinessesGross
      contextRef="Duration_10_2_2023_To_10_2_2023_us-gaap_BusinessAcquisitionAxis_fix_DeccoIncMember_Dx8j_lCNK0GxxJ_7YlmX8g"
      decimals="-5"
      id="Narr_kvFIOD0vVUWi_yVO2Jrfvw"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">48800000</us-gaap:PaymentsToAcquireBusinessesGross>
    <us-gaap:BusinessCombinationConsiderationTransferredLiabilitiesIncurred
      contextRef="Duration_10_2_2023_To_10_2_2023_us-gaap_BusinessAcquisitionAxis_fix_DeccoIncMember_Dx8j_lCNK0GxxJ_7YlmX8g"
      decimals="-5"
      id="Narr_AD7_4WpN1ki_Ks6d__trCg"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">7000000.0</us-gaap:BusinessCombinationConsiderationTransferredLiabilitiesIncurred>
    <us-gaap:BusinessCombinationConsiderationTransferred1
      contextRef="Duration_2_1_2023_To_2_1_2023_us-gaap_BusinessAcquisitionAxis_fix_EldecoincMember_yjnrZ-2c_E2gP329DQLXDQ"
      decimals="-5"
      id="Narr_2-viNxPAbEaf0w4jm0kB8A"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">74000000.0</us-gaap:BusinessCombinationConsiderationTransferred1>
    <us-gaap:PaymentsToAcquireBusinessesGross
      contextRef="Duration_2_1_2023_To_2_1_2023_us-gaap_BusinessAcquisitionAxis_fix_EldecoincMember_yjnrZ-2c_E2gP329DQLXDQ"
      decimals="-5"
      id="Narr_jPv_43NAFkW8KXjjCo6dtA"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">60800000</us-gaap:PaymentsToAcquireBusinessesGross>
    <us-gaap:BusinessCombinationConsiderationTransferredLiabilitiesIncurred
      contextRef="Duration_2_1_2023_To_2_1_2023_us-gaap_BusinessAcquisitionAxis_fix_EldecoincMember_yjnrZ-2c_E2gP329DQLXDQ"
      decimals="-5"
      id="Narr_pvD7x3uAY06MuCwWt3Cu9g"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">8000000.0</us-gaap:BusinessCombinationConsiderationTransferredLiabilitiesIncurred>
    <us-gaap:GoodwillAndIntangibleAssetsDisclosureTextBlock
      contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ"
      id="Tb_XBtxlKZk-0OuiXVDpwZGOw">&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;6. Goodwill and Identifiable Intangible Assets, Net&lt;/b&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"&gt;&lt;span style="font-style:italic;font-weight:bold;"&gt;Goodwill&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"&gt;&lt;span style="font-style:italic;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"&gt;The changes in the carrying amount of goodwill are as follows (in thousands):&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:-0.20061874%;padding-left:0pt;padding-right:0pt;width:100%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;width:58.58%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.63%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.42%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.1%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.63%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.35%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.8%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.63%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.78%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:58.58%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.63%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:14.53%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;Mechanical Segment&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.63%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:13.15%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;Electrical Segment&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.63%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:8.81%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;Total&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:58.58%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;Balance at December 31, 2022&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.63%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.42%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.1%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 363,929&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.63%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.35%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.8%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 247,860&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.63%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.78%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 611,789&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:58.58%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;Acquisitions and purchase price adjustments (See Note&#160;5)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.63%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.42%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.1%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 29,347&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.63%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.35%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.8%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 25,698&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.63%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.02%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.78%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 55,045&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:58.58%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;Balance at December 31, 2023&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.63%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.42%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.1%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 393,276&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.63%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.35%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.8%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 273,558&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.63%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.78%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 666,834&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:58.58%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;Acquisitions and purchase price adjustments (See Note&#160;5)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.63%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.42%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.1%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 208,159&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.63%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.35%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.8%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 200&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.63%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.02%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.78%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 208,359&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:58.58%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;Balance at September 30, 2024&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.63%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.42%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.1%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 601,435&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.63%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.35%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.8%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 273,758&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.63%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.78%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 875,193&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"&gt;&lt;span style="font-style:italic;font-weight:bold;"&gt;Identifiable Intangible Assets, Net&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"&gt;&lt;span style="font-style:italic;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"&gt;At September 30, 2024, future amortization expense of identifiable intangible assets is as follows (in thousands):&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:60%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;width:81.36%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.42%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.88%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.03%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.29%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:81.36%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;Year ending December 31&#x2014;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.42%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&#160;&#160;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.88%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.03%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&#160;&#160;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.29%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:81.36%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;"&gt;2024 (remainder of the year)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.42%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.88%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:11pt;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.03%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 22,042&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.29%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:81.36%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;"&gt;2025&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.42%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.88%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.03%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 66,576&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.29%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:81.36%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;"&gt;2026&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.42%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.88%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.03%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 55,961&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.29%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:81.36%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;"&gt;2027&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.42%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.88%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.03%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 53,650&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.29%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:81.36%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;"&gt;2028&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.42%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.88%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.03%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 52,103&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.29%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:81.36%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;"&gt;Thereafter&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.42%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.88%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.03%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 206,127&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.29%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:81.36%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 18pt;"&gt;Total&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.42%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.88%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.03%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 456,459&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.29%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;</us-gaap:GoodwillAndIntangibleAssetsDisclosureTextBlock>
    <us-gaap:ScheduleOfGoodwillTextBlock
      contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ"
      id="Tb_3OhzuhT3w0i7-w4YlvDndA">&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"&gt;The changes in the carrying amount of goodwill are as follows (in thousands):&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:-0.20061874%;padding-left:0pt;padding-right:0pt;width:100%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;width:58.58%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.63%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.42%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.1%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.63%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.35%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.8%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.63%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.78%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:58.58%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.63%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:14.53%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;Mechanical Segment&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.63%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:13.15%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;Electrical Segment&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.63%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:8.81%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;Total&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:58.58%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;Balance at December 31, 2022&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.63%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.42%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.1%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 363,929&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.63%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.35%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.8%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 247,860&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.63%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.78%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 611,789&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:58.58%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;Acquisitions and purchase price adjustments (See Note&#160;5)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.63%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.42%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.1%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 29,347&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.63%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.35%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.8%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 25,698&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.63%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.02%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.78%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 55,045&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:58.58%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;Balance at December 31, 2023&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.63%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.42%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.1%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 393,276&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.63%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.35%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.8%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 273,558&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.63%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.78%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 666,834&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:58.58%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;Acquisitions and purchase price adjustments (See Note&#160;5)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.63%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.42%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.1%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 208,159&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.63%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.35%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.8%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 200&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.63%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.02%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.78%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 208,359&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:58.58%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;Balance at September 30, 2024&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.63%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.42%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.1%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 601,435&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.63%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.35%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.8%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 273,758&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.63%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.78%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 875,193&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</us-gaap:ScheduleOfGoodwillTextBlock>
    <us-gaap:Goodwill
      contextRef="As_Of_12_31_2022_us-gaap_StatementBusinessSegmentsAxis_fix_MechanicalSegmentMember_-a4MCWI0AkC8_ejEkzppLA"
      decimals="-3"
      id="Tc_G4cacls3fkG9uTbfLJuJyg_2_3"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">363929000</us-gaap:Goodwill>
    <us-gaap:Goodwill
      contextRef="As_Of_12_31_2022_us-gaap_StatementBusinessSegmentsAxis_fix_ElectricalSegmentMember_arrUsxZ46USNASy8oYXSFg"
      decimals="-3"
      id="Tc_EZlhM-7XsEuEvY6KHxzZ8Q_2_6"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">247860000</us-gaap:Goodwill>
    <us-gaap:Goodwill
      contextRef="As_Of_12_31_2022_-q309bsKT0i3jZ5ZPwDgew"
      decimals="-3"
      id="Tc_NeJnWEEM_kOzWGXphWzYow_2_9"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">611789000</us-gaap:Goodwill>
    <us-gaap:GoodwillAcquiredDuringPeriod
      contextRef="Duration_1_1_2023_To_12_31_2023_us-gaap_StatementBusinessSegmentsAxis_fix_MechanicalSegmentMember_sIHEWlasEkWrIKV3BjH9Yg"
      decimals="-3"
      id="Tc_whgvZsue9EqFV2H_ReGBzA_3_3"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">29347000</us-gaap:GoodwillAcquiredDuringPeriod>
    <us-gaap:GoodwillAcquiredDuringPeriod
      contextRef="Duration_1_1_2023_To_12_31_2023_us-gaap_StatementBusinessSegmentsAxis_fix_ElectricalSegmentMember_OGp-N20eBkKNWuA9tDPA-A"
      decimals="-3"
      id="Tc_P2DQAFzFBE6_5RgSgNCY6w_3_6"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">25698000</us-gaap:GoodwillAcquiredDuringPeriod>
    <us-gaap:GoodwillAcquiredDuringPeriod
      contextRef="Duration_1_1_2023_To_12_31_2023_BLO39KDJ406SXE2fHbCX8Q"
      decimals="-3"
      id="Tc_P6nzoUNNYEqTSEeeU2JWyg_3_9"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">55045000</us-gaap:GoodwillAcquiredDuringPeriod>
    <us-gaap:Goodwill
      contextRef="As_Of_12_31_2023_us-gaap_StatementBusinessSegmentsAxis_fix_MechanicalSegmentMember_ZJFhNQD-0EukltC7W7dFWw"
      decimals="-3"
      id="Tc_0OweuyqUU0GH_0HQM2vuXw_4_3"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">393276000</us-gaap:Goodwill>
    <us-gaap:Goodwill
      contextRef="As_Of_12_31_2023_us-gaap_StatementBusinessSegmentsAxis_fix_ElectricalSegmentMember_Zmipb459G0WsxnuQZ3rZ7w"
      decimals="-3"
      id="Tc_uPcNc5qU-kmGsKl7CRp0Ow_4_6"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">273558000</us-gaap:Goodwill>
    <us-gaap:Goodwill
      contextRef="As_Of_12_31_2023_X7eqeHRTF0mRLJW7InVDdA"
      decimals="-3"
      id="Tc_dHQAaeEo4EGGW2X2gMj2bg_4_9"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">666834000</us-gaap:Goodwill>
    <us-gaap:GoodwillAcquiredDuringPeriod
      contextRef="Duration_1_1_2024_To_9_30_2024_us-gaap_StatementBusinessSegmentsAxis_fix_MechanicalSegmentMember_V8JBIWI_BEON_oMqzNwwcQ"
      decimals="-3"
      id="Tc_vZUKfb4v2U-aCsYnqT8Grw_5_3"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">208159000</us-gaap:GoodwillAcquiredDuringPeriod>
    <us-gaap:GoodwillAcquiredDuringPeriod
      contextRef="Duration_1_1_2024_To_9_30_2024_us-gaap_StatementBusinessSegmentsAxis_fix_ElectricalSegmentMember_CPvGEZODSU23C4fWc01EEA"
      decimals="-3"
      id="Tc_Uuvhu1OqiE-MXOv0WqW3Qw_5_6"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">200000</us-gaap:GoodwillAcquiredDuringPeriod>
    <us-gaap:GoodwillAcquiredDuringPeriod
      contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ"
      decimals="-3"
      id="Tc_BUEDwfx6l0CNHzNfGgCpsw_5_9"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">208359000</us-gaap:GoodwillAcquiredDuringPeriod>
    <us-gaap:Goodwill
      contextRef="As_Of_9_30_2024_us-gaap_StatementBusinessSegmentsAxis_fix_MechanicalSegmentMember_gOl7vnNOE0Oa2WJW-H9y3w"
      decimals="-3"
      id="Tc_0Z5sOGwZuUmEesgQK3kkZQ_6_3"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">601435000</us-gaap:Goodwill>
    <us-gaap:Goodwill
      contextRef="As_Of_9_30_2024_us-gaap_StatementBusinessSegmentsAxis_fix_ElectricalSegmentMember_CMh8lOiUM0mkJyMFRKjiQw"
      decimals="-3"
      id="Tc__1WCb-AOb0yQSast6pPEGA_6_6"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">273758000</us-gaap:Goodwill>
    <us-gaap:Goodwill
      contextRef="As_Of_9_30_2024_um13j0l3zk2ITGaiED1DFA"
      decimals="-3"
      id="Tc_sThsd-AAuEO9kC571jVTEg_6_9"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">875193000</us-gaap:Goodwill>
    <us-gaap:ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock
      contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ"
      id="Tb_ehHA_RuzbkuGCqPgNelqKQ">&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"&gt;At September 30, 2024, future amortization expense of identifiable intangible assets is as follows (in thousands):&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:60%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;width:81.36%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.42%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.88%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.03%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.29%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:81.36%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;Year ending December 31&#x2014;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.42%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&#160;&#160;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.88%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.03%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&#160;&#160;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.29%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:81.36%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;"&gt;2024 (remainder of the year)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.42%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.88%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:11pt;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.03%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 22,042&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.29%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:81.36%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;"&gt;2025&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.42%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.88%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.03%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 66,576&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.29%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:81.36%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;"&gt;2026&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.42%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.88%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.03%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 55,961&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.29%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:81.36%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;"&gt;2027&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.42%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.88%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.03%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 53,650&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.29%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:81.36%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;"&gt;2028&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.42%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.88%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.03%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 52,103&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.29%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:81.36%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;"&gt;Thereafter&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.42%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.88%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.03%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 206,127&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.29%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:81.36%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 18pt;"&gt;Total&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.42%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.88%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.03%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 456,459&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.29%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;</us-gaap:ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock>
    <us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseRemainderOfFiscalYear
      contextRef="As_Of_9_30_2024_um13j0l3zk2ITGaiED1DFA"
      decimals="-3"
      id="Tc_NLvWgpmJ-0CuxMor8IK84w_2_3"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">22042000</us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseRemainderOfFiscalYear>
    <us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths
      contextRef="As_Of_9_30_2024_um13j0l3zk2ITGaiED1DFA"
      decimals="-3"
      id="Tc_osP--1Ji8kqPCx46Bx0vdQ_3_3"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">66576000</us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths>
    <us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo
      contextRef="As_Of_9_30_2024_um13j0l3zk2ITGaiED1DFA"
      decimals="-3"
      id="Tc_iWgX0eXZAEOg-I7NKonQDw_4_3"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">55961000</us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo>
    <us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearThree
      contextRef="As_Of_9_30_2024_um13j0l3zk2ITGaiED1DFA"
      decimals="-3"
      id="Tc_g6w99wHQKUaMEcg5HClPKQ_5_3"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">53650000</us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearThree>
    <us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearFour
      contextRef="As_Of_9_30_2024_um13j0l3zk2ITGaiED1DFA"
      decimals="-3"
      id="Tc_TX8374BQVUikIL2flYy4WQ_6_3"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">52103000</us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearFour>
    <fix:FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFour
      contextRef="As_Of_9_30_2024_um13j0l3zk2ITGaiED1DFA"
      decimals="-3"
      id="Tc_XcwCAByYxUy-WgqOHGymdQ_7_3"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">206127000</fix:FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFour>
    <us-gaap:FiniteLivedIntangibleAssetsNet
      contextRef="As_Of_9_30_2024_um13j0l3zk2ITGaiED1DFA"
      decimals="-3"
      id="Tc_Mzbo_No4vE22d-OM6hhqCQ_8_3"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">456459000</us-gaap:FiniteLivedIntangibleAssetsNet>
    <us-gaap:DebtDisclosureTextBlock
      contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ"
      id="Tb_oIBpQy7XbkSl4gUB6HiOpg">&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;7. Debt Obligations&lt;/b&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"&gt;Debt obligations consist of the following (in thousands):&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:79.99%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;width:70.79%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:2.05%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.81%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.76%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.05%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.27%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:0.51%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:70.79%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:2.05%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:12.57%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;September 30, &lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.05%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.99%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;December 31, &lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:0.51%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:70.79%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:2.05%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:12.57%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;2024 &lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.05%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.99%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;2023&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:0.51%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:70.79%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;Revolving credit facility&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:2.05%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.81%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.76%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; &#x2014;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.05%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.27%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; &#x2014;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:0.51%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:70.79%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;Notes to former owners&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:2.05%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.81%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.76%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 67,593&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.05%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.27%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 44,070&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:0.51%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:70.79%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;Other debt&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:2.05%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.81%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.76%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 768&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.05%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.27%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 142&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:0.51%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:70.79%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;"&gt;Total debt&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:2.05%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;"&gt;&lt;span style="margin-left:0pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.81%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.76%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 68,361&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.05%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.27%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 44,212&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:0.51%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;"&gt;&lt;span style="margin-left:0pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:70.79%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;"&gt;Less&#x2014;current portion&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:2.05%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;"&gt;&lt;span style="margin-left:0pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.81%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.76%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt; (6,046)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.05%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.27%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt; (4,867)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:0.51%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;"&gt;&lt;span style="margin-left:0pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:70.79%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;"&gt;Total long-term portion of debt&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:2.05%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;"&gt;&lt;span style="margin-left:0pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.81%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.76%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 62,315&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.05%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.72%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.27%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 39,345&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:0.51%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;"&gt;&lt;span style="margin-left:0pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 0pt 36pt;"&gt;&lt;span style="font-style:italic;font-weight:bold;"&gt;Revolving Credit Facility &lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"&gt;We have an $850.0 million senior credit facility (the &#x201c;Facility&#x201d;) provided by a syndicate of banks, which is composed of a revolving credit line guaranteed by certain of our subsidiaries. The Facility also provides for an accordion or increase option not to exceed the greater of (a) $250 million and (b) 1.0x Credit Facility Adjusted EBITDA (as defined below), as well as a sublimit of up to $175.0 million issuable in the form of letters of credit. The Facility expires in July 2027 and is secured by a first lien on substantially all of our personal property except for assets related to projects subject to surety bonds and the equity of, and assets held by, certain unrestricted subsidiaries and our wholly owned captive insurance company, and a second lien on our assets related to projects subject to surety bonds. As of September 30, 2024, we had no outstanding borrowings on the revolving credit facility, $80.0&#160;million in letters of credit outstanding and $770.0&#160;million of credit available.&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"&gt;There are two interest rate options for borrowings under the Facility, the Base Rate Loan (as defined in the Facility) option and the Secured Overnight Financing Rate (&#x201c;SOFR&#x201d;) Loan option. These rates are floating rates &lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;determined by the broad financial markets, meaning they can and do move up and down from time to time. Additional margins are then added to these two rates: &lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;width:53.32%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:7.13%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.71%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:7.55%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.74%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:6.5%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.74%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:6.39%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.71%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:6.79%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.71%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:53.32%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="9" style="vertical-align:bottom;white-space:nowrap;width:43.31%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;Net Leverage Ratio&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.71%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;span style="font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:53.32%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:7.13%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;Less&#160;than&#160;&lt;/b&gt;&lt;b style="font-weight:bold;"&gt;&lt;br/&gt;&lt;/b&gt;&lt;b style="font-weight:bold;"&gt;1.00&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.71%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:7.55%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;1.00&#160;to&#160;less than 1.75&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.74%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:6.5%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;1.75&#160;to less than&#160;2.50&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.74%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:6.39%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;2.50&#160;to less than 3.00&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.71%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:6.79%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;3.00 or greater&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.71%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:53.32%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;Additional Per Annum Interest Margin Added Under:&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.13%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.71%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.55%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.74%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.5%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.74%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.39%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.71%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.79%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.71%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:53.32%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;"&gt;Base Rate Loan Option&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.13%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;0.00 &lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.71%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;%&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.55%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 0.25&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.74%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;%&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.5%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 0.50&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.74%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;%&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.39%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 0.75&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.71%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;%&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.79%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 1.00&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.71%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;%&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:53.32%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;"&gt;SOFR Loan Option&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.13%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 1.00&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.71%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;%&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.55%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 1.25&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.74%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;%&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.5%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 1.50&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.74%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;%&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.39%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 1.75&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.71%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;%&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.79%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 2.00&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.71%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;%&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"&gt;There were no outstanding borrowings on the revolving credit facility as of September 30, 2024 and December 31, 2023.&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"&gt;Certain of our vendors require letters of credit to ensure reimbursement for amounts they are disbursing on our behalf, such as to beneficiaries under our self-funded insurance programs. We have also occasionally used letters of credit to guarantee performance under our contracts and to ensure payment to our subcontractors and vendors under those contracts. Our lenders issue such letters of credit through the Facility. A letter of credit commits the lenders to pay specified amounts to the holder of the letter of credit if the holder demonstrates that we have failed to perform specified actions. If this were to occur, we would be required to reimburse the lenders for amounts they fund to honor the letter of credit holder&#x2019;s claim. Absent a claim, there is no payment or reserving of funds by us in connection with a letter of credit. However, because a claim on a letter of credit would require immediate reimbursement by us to our lenders, letters of credit are treated as a use of Facility capacity. The letter of credit fees range from 1.00% to 2.00% per annum, based on the Net Leverage Ratio.&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"&gt;Commitment fees are payable on the portion of the revolving loan capacity not in use for borrowings or letters of credit at any given time. These fees range from 0.15% to 0.25% per annum, based on the Net Leverage Ratio.&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"&gt;The Facility contains financial covenants defining various financial measures and the levels of these measures with which we must comply. Covenant compliance is assessed as of each quarter end. We were in compliance with all of our financial covenants as of September 30, 2024.&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-style:italic;font-weight:bold;"&gt;Notes to Former Owners&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;"&gt;As part of the consideration used to acquire eight companies, we have outstanding notes to the former owners. Together, these notes had an outstanding balance of $67.6 million as of September 30, 2024. At September 30, 2024, future principal payments of notes to former owners by maturity year are as follows (dollars in thousands):&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"&gt;&lt;span style="font-size:0pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:79.99%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;width:52.88%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.06%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.86%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:19.49%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.06%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:16.1%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.53%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:52.88%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:3.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:21.36%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;Balance at&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:19.63%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;Range of Stated&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:52.88%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:3.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:21.36%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;September 30, 2024&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:19.63%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt; Interest Rates&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:52.88%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;"&gt;2025&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.86%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:11pt;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:19.49%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 5,968&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:16.1%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;2.3 - 2.5&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.53%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:11pt;"&gt;%&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:52.88%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;"&gt;2026&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.86%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:19.49%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 30,625&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:16.1%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;2.5 - 5.5&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.53%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:11pt;"&gt;%&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:52.88%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;"&gt;2027&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.86%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:19.49%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 26,000&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:16.1%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 5.5&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.53%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:11pt;"&gt;%&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:52.88%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;"&gt;2028&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.86%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:19.49%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 5,000&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:16.1%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 5.5&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.53%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:11pt;"&gt;%&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:52.88%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 18pt;"&gt;Total&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.86%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:19.49%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 67,593&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:16.1%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.53%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:11pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:1pt;text-indent:36pt;margin:0pt;"&gt;F&lt;/p&gt;</us-gaap:DebtDisclosureTextBlock>
    <us-gaap:ScheduleOfDebtTableTextBlock
      contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ"
      id="Tb_AcyoUYxyrkOdY78-3b30GA">&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"&gt;Debt obligations consist of the following (in thousands):&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:79.99%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;width:70.79%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:2.05%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.81%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.76%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.05%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.27%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:0.51%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:70.79%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:2.05%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:12.57%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;September 30, &lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.05%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.99%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;December 31, &lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:0.51%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:70.79%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:2.05%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:12.57%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;2024 &lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.05%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.99%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;2023&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:0.51%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:70.79%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;Revolving credit facility&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:2.05%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.81%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.76%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; &#x2014;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.05%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.27%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; &#x2014;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:0.51%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:70.79%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;Notes to former owners&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:2.05%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.81%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.76%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 67,593&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.05%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.27%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 44,070&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:0.51%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:70.79%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;Other debt&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:2.05%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.81%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.76%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 768&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.05%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.27%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 142&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:0.51%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:70.79%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;"&gt;Total debt&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:2.05%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;"&gt;&lt;span style="margin-left:0pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.81%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.76%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 68,361&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.05%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.27%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 44,212&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:0.51%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;"&gt;&lt;span style="margin-left:0pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:70.79%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;"&gt;Less&#x2014;current portion&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:2.05%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;"&gt;&lt;span style="margin-left:0pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.81%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.76%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt; (6,046)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.05%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.27%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt; (4,867)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:0.51%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;"&gt;&lt;span style="margin-left:0pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:70.79%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;"&gt;Total long-term portion of debt&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:2.05%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;"&gt;&lt;span style="margin-left:0pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.81%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.76%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 62,315&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.05%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.72%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.27%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 39,345&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:0.51%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;"&gt;&lt;span style="margin-left:0pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</us-gaap:ScheduleOfDebtTableTextBlock>
    <us-gaap:NotesAndLoansPayable
      contextRef="As_Of_9_30_2024_us-gaap_DebtInstrumentAxis_fix_SubordinateDebtAndPromissoryNoteMember_XSQD6UqffkiEduCjJs-FPQ"
      decimals="-3"
      id="Tc_cFLCtzoVZ0yg_rpnUeo7uw_4_3"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">67593000</us-gaap:NotesAndLoansPayable>
    <us-gaap:NotesAndLoansPayable
      contextRef="As_Of_12_31_2023_us-gaap_DebtInstrumentAxis_fix_SubordinateDebtAndPromissoryNoteMember_0FKP3iOUfECrhZe1nFqndw"
      decimals="-3"
      id="Tc_bPlOv8ZgD0eEppdWtBBx8w_4_6"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">44070000</us-gaap:NotesAndLoansPayable>
    <fix:OtherDebtLongTermAndShortTermCombinedAmount
      contextRef="As_Of_9_30_2024_um13j0l3zk2ITGaiED1DFA"
      decimals="-3"
      id="Tc_YsQXWMPtOk6E2UvILpexjg_5_3"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">768000</fix:OtherDebtLongTermAndShortTermCombinedAmount>
    <fix:OtherDebtLongTermAndShortTermCombinedAmount
      contextRef="As_Of_12_31_2023_X7eqeHRTF0mRLJW7InVDdA"
      decimals="-3"
      id="Tc_kU0vgs9q8kiOCntOvn7mKA_5_6"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">142000</fix:OtherDebtLongTermAndShortTermCombinedAmount>
    <us-gaap:LongTermDebtAndCapitalLeaseObligationsIncludingCurrentMaturities
      contextRef="As_Of_9_30_2024_um13j0l3zk2ITGaiED1DFA"
      decimals="-3"
      id="Tc_kfFYs8vwNkqOeOWnJePuyA_6_3"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">68361000</us-gaap:LongTermDebtAndCapitalLeaseObligationsIncludingCurrentMaturities>
    <us-gaap:LongTermDebtAndCapitalLeaseObligationsIncludingCurrentMaturities
      contextRef="As_Of_12_31_2023_X7eqeHRTF0mRLJW7InVDdA"
      decimals="-3"
      id="Tc_NwXx4kYTpkydaLz8oraudQ_6_6"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">44212000</us-gaap:LongTermDebtAndCapitalLeaseObligationsIncludingCurrentMaturities>
    <us-gaap:LongTermDebtAndCapitalLeaseObligationsCurrent
      contextRef="As_Of_9_30_2024_um13j0l3zk2ITGaiED1DFA"
      decimals="-3"
      id="Tc_YKq9rNGFvkCzROaQwpsw9Q_7_3"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">6046000</us-gaap:LongTermDebtAndCapitalLeaseObligationsCurrent>
    <us-gaap:LongTermDebtAndCapitalLeaseObligationsCurrent
      contextRef="As_Of_12_31_2023_X7eqeHRTF0mRLJW7InVDdA"
      decimals="-3"
      id="Tc_2Dn2I2EKT0Skapw-fT14Fg_7_6"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">4867000</us-gaap:LongTermDebtAndCapitalLeaseObligationsCurrent>
    <us-gaap:LongTermDebtAndCapitalLeaseObligations
      contextRef="As_Of_9_30_2024_um13j0l3zk2ITGaiED1DFA"
      decimals="-3"
      id="Tc_Oki_fnEGqU-BbawWV0Z3dg_8_3"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">62315000</us-gaap:LongTermDebtAndCapitalLeaseObligations>
    <us-gaap:LongTermDebtAndCapitalLeaseObligations
      contextRef="As_Of_12_31_2023_X7eqeHRTF0mRLJW7InVDdA"
      decimals="-3"
      id="Tc_ruSnmFHRwkS5K_FkFXgLPw_8_6"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">39345000</us-gaap:LongTermDebtAndCapitalLeaseObligations>
    <us-gaap:LineOfCreditFacilityMaximumBorrowingCapacity
      contextRef="As_Of_9_30_2024_us-gaap_CreditFacilityAxis_us-gaap_RevolvingCreditFacilityMember_us-gaap_DebtInstrumentAxis_fix_SeniorRevolvingCreditFacilityMember_U6rrLCv-g0eNhWu_TkXWLw"
      decimals="-5"
      id="Narr_tsZyEJPWpkq-hBqNVtx9GA"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">850000000.0</us-gaap:LineOfCreditFacilityMaximumBorrowingCapacity>
    <fix:LineOfCreditBorrowingCapacityAccordionOption
      contextRef="As_Of_9_30_2024_srt_RangeAxis_srt_MaximumMember_us-gaap_CreditFacilityAxis_us-gaap_RevolvingCreditFacilityMember_us-gaap_DebtInstrumentAxis_fix_SeniorRevolvingCreditFacilityMember_Vx-A-TxtU06VSg1tAhtGXA"
      decimals="-6"
      id="Narr_7sUl4iV--Ui8O_UC0SKFJQ"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">250000000</fix:LineOfCreditBorrowingCapacityAccordionOption>
    <us-gaap:LineOfCreditFacilityMaximumBorrowingCapacity
      contextRef="As_Of_9_30_2024_us-gaap_CreditFacilityAxis_us-gaap_RevolvingCreditFacilityMember_us-gaap_DebtInstrumentAxis_us-gaap_LetterOfCreditMember_0w5GbMjA8EKON7jMWSL4iw"
      decimals="-5"
      id="Narr_nMv-Am7B902nKbYhb3EPMQ"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">175000000.0</us-gaap:LineOfCreditFacilityMaximumBorrowingCapacity>
    <us-gaap:LineOfCredit
      contextRef="As_Of_9_30_2024_us-gaap_CreditFacilityAxis_us-gaap_RevolvingCreditFacilityMember_us-gaap_DebtInstrumentAxis_fix_SeniorRevolvingCreditFacilityMember_U6rrLCv-g0eNhWu_TkXWLw"
      decimals="-5"
      id="Narr_-bz-luuOwkWIwV_rI7iJdA"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">0</us-gaap:LineOfCredit>
    <us-gaap:LettersOfCreditOutstandingAmount
      contextRef="As_Of_9_30_2024_us-gaap_CreditFacilityAxis_us-gaap_RevolvingCreditFacilityMember_us-gaap_DebtInstrumentAxis_fix_SeniorRevolvingCreditFacilityMember_U6rrLCv-g0eNhWu_TkXWLw"
      decimals="-5"
      id="Narr_uoyiX2SZLEaZofF8gFrzGw"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">80000000.0</us-gaap:LettersOfCreditOutstandingAmount>
    <us-gaap:LineOfCreditFacilityRemainingBorrowingCapacity
      contextRef="As_Of_9_30_2024_us-gaap_CreditFacilityAxis_us-gaap_RevolvingCreditFacilityMember_us-gaap_DebtInstrumentAxis_fix_SeniorRevolvingCreditFacilityMember_U6rrLCv-g0eNhWu_TkXWLw"
      decimals="-5"
      id="Narr_GcWUaffeAkCVDr5Nyvt5pg"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">770000000.0</us-gaap:LineOfCreditFacilityRemainingBorrowingCapacity>
    <fix:ScheduleOfAdditionalMarginsTableTextBlock
      contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ"
      id="Tb_8zkumUvIYE6WAmxpkeFWUw">&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;width:53.32%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:7.13%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.71%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:7.55%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.74%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:6.5%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.74%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:6.39%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.71%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:6.79%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.71%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:53.32%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="9" style="vertical-align:bottom;white-space:nowrap;width:43.31%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;Net Leverage Ratio&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.71%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;span style="font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:53.32%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:7.13%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;Less&#160;than&#160;&lt;/b&gt;&lt;b style="font-weight:bold;"&gt;&lt;br/&gt;&lt;/b&gt;&lt;b style="font-weight:bold;"&gt;1.00&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.71%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:7.55%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;1.00&#160;to&#160;less than 1.75&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.74%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:6.5%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;1.75&#160;to less than&#160;2.50&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.74%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:6.39%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;2.50&#160;to less than 3.00&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.71%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:6.79%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;3.00 or greater&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.71%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:53.32%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;Additional Per Annum Interest Margin Added Under:&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.13%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.71%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.55%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.74%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.5%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.74%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.39%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.71%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.79%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.71%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:53.32%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;"&gt;Base Rate Loan Option&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.13%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;0.00 &lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.71%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;%&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.55%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 0.25&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.74%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;%&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.5%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 0.50&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.74%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;%&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.39%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 0.75&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.71%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;%&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.79%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 1.00&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.71%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;%&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:53.32%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;"&gt;SOFR Loan Option&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.13%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 1.00&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.71%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;%&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.55%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 1.25&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.74%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;%&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.5%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 1.50&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.74%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;%&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.39%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 1.75&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.71%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;%&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.79%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 2.00&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.71%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;%&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</fix:ScheduleOfAdditionalMarginsTableTextBlock>
    <us-gaap:DebtInstrumentBasisSpreadOnVariableRate1
      contextRef="Duration_1_1_2024_To_9_30_2024_fix_DebtCovenantRatioAxis_fix_DebtCovenantRatioRangeOneMember_us-gaap_CreditFacilityAxis_us-gaap_RevolvingCreditFacilityMember_us-gaap_VariableRateAxis_us-gaap_BaseRateMember_euITv3b3C0Cpyv9J0nPDUQ"
      decimals="4"
      id="Tc_WO0HxvPWB0awPmmcQ5REgQ_4_2"
      unitRef="Unit_Standard_pure_0GIr2wv4rk-T38a8Lz0A5w">0.0000</us-gaap:DebtInstrumentBasisSpreadOnVariableRate1>
    <us-gaap:DebtInstrumentBasisSpreadOnVariableRate1
      contextRef="Duration_1_1_2024_To_9_30_2024_fix_DebtCovenantRatioAxis_fix_DebtCovenantRatioRangeTwoMember_us-gaap_CreditFacilityAxis_us-gaap_RevolvingCreditFacilityMember_us-gaap_VariableRateAxis_us-gaap_BaseRateMember_dIavi5Tf7kK0AqbqTFpRCA"
      decimals="4"
      id="Tc_MVAGoLApC0u3MkTg8jQmCQ_4_4"
      unitRef="Unit_Standard_pure_0GIr2wv4rk-T38a8Lz0A5w">0.0025</us-gaap:DebtInstrumentBasisSpreadOnVariableRate1>
    <us-gaap:DebtInstrumentBasisSpreadOnVariableRate1
      contextRef="Duration_1_1_2024_To_9_30_2024_fix_DebtCovenantRatioAxis_fix_DebtCovenantRatioRangeThreeMember_us-gaap_CreditFacilityAxis_us-gaap_RevolvingCreditFacilityMember_us-gaap_VariableRateAxis_us-gaap_BaseRateMember_PxGRy-w8oUOGfS7CcwrYEQ"
      decimals="4"
      id="Tc_1R44GZ0jy0WEaALtOJ7CUw_4_6"
      unitRef="Unit_Standard_pure_0GIr2wv4rk-T38a8Lz0A5w">0.0050</us-gaap:DebtInstrumentBasisSpreadOnVariableRate1>
    <us-gaap:DebtInstrumentBasisSpreadOnVariableRate1
      contextRef="Duration_1_1_2024_To_9_30_2024_fix_DebtCovenantRatioAxis_fix_DebtCovenantRatioRangeFourMember_us-gaap_CreditFacilityAxis_us-gaap_RevolvingCreditFacilityMember_us-gaap_VariableRateAxis_us-gaap_BaseRateMember_w32L56YUnEucGsNruJgppA"
      decimals="4"
      id="Tc_EuAMWKUctk-HdsIH-jd3NQ_4_8"
      unitRef="Unit_Standard_pure_0GIr2wv4rk-T38a8Lz0A5w">0.0075</us-gaap:DebtInstrumentBasisSpreadOnVariableRate1>
    <us-gaap:DebtInstrumentBasisSpreadOnVariableRate1
      contextRef="Duration_1_1_2024_To_9_30_2024_fix_DebtCovenantRatioAxis_fix_DebtCovenantRatioRangeFiveMember_us-gaap_CreditFacilityAxis_us-gaap_RevolvingCreditFacilityMember_us-gaap_VariableRateAxis_us-gaap_BaseRateMember_2NZsBDbXOUOCqovL-tm5PA"
      decimals="4"
      id="Tc_rFy5MShNz0eP1GTJU5mBVw_4_10"
      unitRef="Unit_Standard_pure_0GIr2wv4rk-T38a8Lz0A5w">0.0100</us-gaap:DebtInstrumentBasisSpreadOnVariableRate1>
    <us-gaap:DebtInstrumentBasisSpreadOnVariableRate1
      contextRef="Duration_1_1_2024_To_9_30_2024_fix_DebtCovenantRatioAxis_fix_DebtCovenantRatioRangeOneMember_us-gaap_CreditFacilityAxis_us-gaap_RevolvingCreditFacilityMember_us-gaap_VariableRateAxis_us-gaap_SecuredOvernightFinancingRateSofrMember_4qAfbGq9YUS-CNDVj6lX_g"
      decimals="4"
      id="Tc_s32qQm_kd0Gmfcd2O9Klng_5_2"
      unitRef="Unit_Standard_pure_0GIr2wv4rk-T38a8Lz0A5w">0.0100</us-gaap:DebtInstrumentBasisSpreadOnVariableRate1>
    <us-gaap:DebtInstrumentBasisSpreadOnVariableRate1
      contextRef="Duration_1_1_2024_To_9_30_2024_fix_DebtCovenantRatioAxis_fix_DebtCovenantRatioRangeTwoMember_us-gaap_CreditFacilityAxis_us-gaap_RevolvingCreditFacilityMember_us-gaap_VariableRateAxis_us-gaap_SecuredOvernightFinancingRateSofrMember_piwyt78j20OZTYNyDxHCYA"
      decimals="4"
      id="Tc_znL-_5kst0inidjDl2l6Jw_5_4"
      unitRef="Unit_Standard_pure_0GIr2wv4rk-T38a8Lz0A5w">0.0125</us-gaap:DebtInstrumentBasisSpreadOnVariableRate1>
    <us-gaap:DebtInstrumentBasisSpreadOnVariableRate1
      contextRef="Duration_1_1_2024_To_9_30_2024_fix_DebtCovenantRatioAxis_fix_DebtCovenantRatioRangeThreeMember_us-gaap_CreditFacilityAxis_us-gaap_RevolvingCreditFacilityMember_us-gaap_VariableRateAxis_us-gaap_SecuredOvernightFinancingRateSofrMember_tBj9V7cBBUWwlrV1Pen_Xg"
      decimals="4"
      id="Tc_TAHL2rGuUk6TDs_kuyqdxA_5_6"
      unitRef="Unit_Standard_pure_0GIr2wv4rk-T38a8Lz0A5w">0.0150</us-gaap:DebtInstrumentBasisSpreadOnVariableRate1>
    <us-gaap:DebtInstrumentBasisSpreadOnVariableRate1
      contextRef="Duration_1_1_2024_To_9_30_2024_fix_DebtCovenantRatioAxis_fix_DebtCovenantRatioRangeFourMember_us-gaap_CreditFacilityAxis_us-gaap_RevolvingCreditFacilityMember_us-gaap_VariableRateAxis_us-gaap_SecuredOvernightFinancingRateSofrMember_7kOu2Za0hEqrgLFNy6oSZA"
      decimals="4"
      id="Tc_ZH_beU_OgUSgZwJC14L70Q_5_8"
      unitRef="Unit_Standard_pure_0GIr2wv4rk-T38a8Lz0A5w">0.0175</us-gaap:DebtInstrumentBasisSpreadOnVariableRate1>
    <us-gaap:DebtInstrumentBasisSpreadOnVariableRate1
      contextRef="Duration_1_1_2024_To_9_30_2024_fix_DebtCovenantRatioAxis_fix_DebtCovenantRatioRangeFiveMember_us-gaap_CreditFacilityAxis_us-gaap_RevolvingCreditFacilityMember_us-gaap_VariableRateAxis_us-gaap_SecuredOvernightFinancingRateSofrMember_s6sKxL1LTEupcC2UEz935A"
      decimals="4"
      id="Tc_iwcObciw2E6KnPXYfNKOpQ_5_10"
      unitRef="Unit_Standard_pure_0GIr2wv4rk-T38a8Lz0A5w">0.0200</us-gaap:DebtInstrumentBasisSpreadOnVariableRate1>
    <us-gaap:LineOfCredit
      contextRef="As_Of_6_30_2024_us-gaap_CreditFacilityAxis_us-gaap_RevolvingCreditFacilityMember_-F87Z11Jpk6QmdRLV_C52g"
      decimals="-5"
      id="Narr_m3A7BEaR00i6M5s2GdqAkg"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">0</us-gaap:LineOfCredit>
    <us-gaap:LineOfCredit
      contextRef="As_Of_9_30_2024_us-gaap_CreditFacilityAxis_us-gaap_RevolvingCreditFacilityMember_E6oVXDAxSE-DOVuvfsnYPQ"
      decimals="-5"
      id="Narr_vHOXeoU62UifTIvhJLWijg"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">0</us-gaap:LineOfCredit>
    <us-gaap:LineOfCredit
      contextRef="As_Of_12_31_2023_us-gaap_CreditFacilityAxis_us-gaap_RevolvingCreditFacilityMember_lWML2av1jEuhx_9kBGRmkQ"
      decimals="-5"
      id="Narr_PULIDjmFjU6OI8fgnS3fug"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">0</us-gaap:LineOfCredit>
    <us-gaap:DebtInstrumentBasisSpreadOnVariableRate1
      contextRef="Duration_1_1_2024_To_9_30_2024_srt_RangeAxis_srt_MinimumMember_us-gaap_DebtInstrumentAxis_us-gaap_LetterOfCreditMember_Sxjt1WXSdkS06xcBdFFXsw"
      decimals="4"
      id="Narr_hXTadUfK10-tOMKeOlaFzQ"
      unitRef="Unit_Standard_pure_0GIr2wv4rk-T38a8Lz0A5w">0.0100</us-gaap:DebtInstrumentBasisSpreadOnVariableRate1>
    <us-gaap:DebtInstrumentBasisSpreadOnVariableRate1
      contextRef="Duration_1_1_2024_To_9_30_2024_srt_RangeAxis_srt_MaximumMember_us-gaap_DebtInstrumentAxis_us-gaap_LetterOfCreditMember_sFO9_7LDT0-9J9IiMcimag"
      decimals="4"
      id="Narr_AC3nrLApwUuLDAW89yj1Uw"
      unitRef="Unit_Standard_pure_0GIr2wv4rk-T38a8Lz0A5w">0.0200</us-gaap:DebtInstrumentBasisSpreadOnVariableRate1>
    <us-gaap:LineOfCreditFacilityUnusedCapacityCommitmentFeePercentage
      contextRef="Duration_1_1_2024_To_9_30_2024_srt_RangeAxis_srt_MinimumMember_us-gaap_CreditFacilityAxis_us-gaap_RevolvingCreditFacilityMember_9jwsIiTizkCuq9i4hkJodA"
      decimals="4"
      id="Narr_belwkVY1TEyGQa_BxwlZKA"
      unitRef="Unit_Standard_pure_0GIr2wv4rk-T38a8Lz0A5w">0.0015</us-gaap:LineOfCreditFacilityUnusedCapacityCommitmentFeePercentage>
    <us-gaap:LineOfCreditFacilityUnusedCapacityCommitmentFeePercentage
      contextRef="Duration_1_1_2024_To_9_30_2024_srt_RangeAxis_srt_MaximumMember_us-gaap_CreditFacilityAxis_us-gaap_RevolvingCreditFacilityMember_XE34UnVimU6RyWu3ZGxTzQ"
      decimals="4"
      id="Narr_MxbIuN9P1kKyPbrez7H4fw"
      unitRef="Unit_Standard_pure_0GIr2wv4rk-T38a8Lz0A5w">0.0025</us-gaap:LineOfCreditFacilityUnusedCapacityCommitmentFeePercentage>
    <fix:CumulativeNumberOfCompaniesAcquiredOutstandingNotesToFormerOwners
      contextRef="As_Of_9_30_2024_us-gaap_DebtInstrumentAxis_fix_SubordinateDebtAndPromissoryNoteMember_XSQD6UqffkiEduCjJs-FPQ"
      decimals="INF"
      id="Narr_GIOVsZj-70uR2MUGBBCJPA"
      unitRef="Unit_Standard_item_PbUC2ubErUqwW8N_vj70-g">8</fix:CumulativeNumberOfCompaniesAcquiredOutstandingNotesToFormerOwners>
    <us-gaap:NotesAndLoansPayable
      contextRef="As_Of_9_30_2024_us-gaap_DebtInstrumentAxis_fix_SubordinateDebtAndPromissoryNoteMember_XSQD6UqffkiEduCjJs-FPQ"
      decimals="-5"
      id="Narr_-G9M0KTYDUet1aVqh7xisA"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">67600000</us-gaap:NotesAndLoansPayable>
    <us-gaap:ScheduleOfMaturitiesOfLongTermDebtTableTextBlock
      contextRef="Duration_1_1_2024_To_9_30_2024_us-gaap_DebtInstrumentAxis_fix_SubordinateDebtAndPromissoryNoteMember_qpkd_dEisUWksMOTrrt-ew"
      id="Group_1UqFVoqsMk2MZGZP5skmoA">At September 30, 2024, future principal payments of notes to former owners by maturity year are as follows (dollars in thousands):&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"&gt;&lt;span style="font-size:0pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:79.99%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;width:52.88%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.06%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.86%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:19.49%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.06%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:16.1%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.53%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:52.88%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:3.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:21.36%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;Balance at&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:19.63%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;Range of Stated&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:52.88%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:3.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:21.36%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;September 30, 2024&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:19.63%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt; Interest Rates&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:52.88%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;"&gt;2025&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.86%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:11pt;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:19.49%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 5,968&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:16.1%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;2.3 - 2.5&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.53%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:11pt;"&gt;%&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:52.88%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;"&gt;2026&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.86%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:19.49%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 30,625&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:16.1%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;2.5 - 5.5&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.53%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:11pt;"&gt;%&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:52.88%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;"&gt;2027&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.86%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:19.49%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 26,000&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:16.1%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 5.5&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.53%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:11pt;"&gt;%&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:52.88%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;"&gt;2028&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.86%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:19.49%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 5,000&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:16.1%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 5.5&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.53%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:11pt;"&gt;%&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:52.88%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 18pt;"&gt;Total&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.86%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:19.49%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 67,593&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:16.1%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.53%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:11pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</us-gaap:ScheduleOfMaturitiesOfLongTermDebtTableTextBlock>
    <us-gaap:NotesAndLoansPayable
      contextRef="As_Of_9_30_2024_fix_DebtMaturityDateAxis_fix_MaturityYearTwoMember_us-gaap_DebtInstrumentAxis_fix_SubordinateDebtAndPromissoryNoteMember_skGkSkrrj0m22UCbee6nbg"
      decimals="-3"
      id="Tc_pkyVKxtMlE-srrHOAeGDWQ_3_3"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">5968000</us-gaap:NotesAndLoansPayable>
    <us-gaap:DebtInstrumentInterestRateStatedPercentage
      contextRef="As_Of_9_30_2024_fix_DebtMaturityDateAxis_fix_MaturityYearTwoMember_srt_RangeAxis_srt_MinimumMember_us-gaap_DebtInstrumentAxis_fix_SubordinateDebtAndPromissoryNoteMember_KojyVCN3cEmLx0QkqiRh8w"
      decimals="3"
      id="Narr_QJc-cmoKiUyL7CozesEqcQ"
      unitRef="Unit_Standard_pure_0GIr2wv4rk-T38a8Lz0A5w">0.023</us-gaap:DebtInstrumentInterestRateStatedPercentage>
    <us-gaap:DebtInstrumentInterestRateStatedPercentage
      contextRef="As_Of_9_30_2024_fix_DebtMaturityDateAxis_fix_MaturityYearTwoMember_srt_RangeAxis_srt_MaximumMember_us-gaap_DebtInstrumentAxis_fix_SubordinateDebtAndPromissoryNoteMember_Eql9x3iYsUqpttrRsDjGAw"
      decimals="3"
      id="Narr_KD4pD37c2U-HyRH6n20TCQ"
      unitRef="Unit_Standard_pure_0GIr2wv4rk-T38a8Lz0A5w">0.025</us-gaap:DebtInstrumentInterestRateStatedPercentage>
    <us-gaap:NotesAndLoansPayable
      contextRef="As_Of_9_30_2024_fix_DebtMaturityDateAxis_fix_MaturityYearThreeMember_us-gaap_DebtInstrumentAxis_fix_SubordinateDebtAndPromissoryNoteMember_fwN5F61NGkugv8GyHLBReg"
      decimals="-3"
      id="Tc_E5zv0WDfJkqwh84_rCNDRA_4_3"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">30625000</us-gaap:NotesAndLoansPayable>
    <us-gaap:DebtInstrumentInterestRateStatedPercentage
      contextRef="As_Of_9_30_2024_fix_DebtMaturityDateAxis_fix_MaturityYearThreeMember_srt_RangeAxis_srt_MinimumMember_us-gaap_DebtInstrumentAxis_fix_SubordinateDebtAndPromissoryNoteMember_5PjgbMBB_Uia6vIHc4mrdA"
      decimals="3"
      id="Narr_Cz6RrpF_1UqxSWDq5hpEUQ"
      unitRef="Unit_Standard_pure_0GIr2wv4rk-T38a8Lz0A5w">0.025</us-gaap:DebtInstrumentInterestRateStatedPercentage>
    <us-gaap:DebtInstrumentInterestRateStatedPercentage
      contextRef="As_Of_9_30_2024_fix_DebtMaturityDateAxis_fix_MaturityYearThreeMember_srt_RangeAxis_srt_MaximumMember_us-gaap_DebtInstrumentAxis_fix_SubordinateDebtAndPromissoryNoteMember_NBdJfeqzu0yjSKA-VJbqwg"
      decimals="3"
      id="Narr_U1oiRof2CUqufCGNB2pAQQ"
      unitRef="Unit_Standard_pure_0GIr2wv4rk-T38a8Lz0A5w">0.055</us-gaap:DebtInstrumentInterestRateStatedPercentage>
    <us-gaap:NotesAndLoansPayable
      contextRef="As_Of_9_30_2024_fix_DebtMaturityDateAxis_fix_MaturityYearFourMember_us-gaap_DebtInstrumentAxis_fix_SubordinateDebtAndPromissoryNoteMember_mt7zqU7oSE2UCMwTRSK82g"
      decimals="-3"
      id="Tc_TcCrQCwBE02tcaavOXeOhQ_5_3"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">26000000</us-gaap:NotesAndLoansPayable>
    <us-gaap:DebtInstrumentInterestRateStatedPercentage
      contextRef="As_Of_9_30_2024_fix_DebtMaturityDateAxis_fix_MaturityYearFourMember_us-gaap_DebtInstrumentAxis_fix_SubordinateDebtAndPromissoryNoteMember_mt7zqU7oSE2UCMwTRSK82g"
      decimals="3"
      id="Tc_aJ28Rexe6E6u66L2dXhW8w_5_5"
      unitRef="Unit_Standard_pure_0GIr2wv4rk-T38a8Lz0A5w">0.055</us-gaap:DebtInstrumentInterestRateStatedPercentage>
    <us-gaap:NotesAndLoansPayable
      contextRef="As_Of_9_30_2024_fix_DebtMaturityDateAxis_fix_MaturityYearFiveMember_us-gaap_DebtInstrumentAxis_fix_SubordinateDebtAndPromissoryNoteMember_KBZY_j_KFE-GwjSjJgLy8g"
      decimals="-3"
      id="Tc_DHu_qglSj0mhOZ9LSOG6vw_6_3"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">5000000</us-gaap:NotesAndLoansPayable>
    <us-gaap:DebtInstrumentInterestRateStatedPercentage
      contextRef="As_Of_9_30_2024_fix_DebtMaturityDateAxis_fix_MaturityYearFiveMember_us-gaap_DebtInstrumentAxis_fix_SubordinateDebtAndPromissoryNoteMember_KBZY_j_KFE-GwjSjJgLy8g"
      decimals="3"
      id="Tc_qdu62PVXpEGE6Yq3GZ1zJg_6_5"
      unitRef="Unit_Standard_pure_0GIr2wv4rk-T38a8Lz0A5w">0.055</us-gaap:DebtInstrumentInterestRateStatedPercentage>
    <us-gaap:NotesAndLoansPayable
      contextRef="As_Of_9_30_2024_us-gaap_DebtInstrumentAxis_fix_SubordinateDebtAndPromissoryNoteMember_XSQD6UqffkiEduCjJs-FPQ"
      decimals="-3"
      id="Tc_MKCEYG6uQECgygXHH4jtVA_7_3"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">67593000</us-gaap:NotesAndLoansPayable>
    <us-gaap:LesseeOperatingLeasesTextBlock
      contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ"
      id="Tb_6RRwlPfS-UuRq3y9MgQPrA">&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;8. Leases&lt;/b&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"&gt;We lease certain facilities, vehicles and equipment primarily under noncancelable operating leases. The most significant portion of these noncancelable operating leases is for the facilities occupied by our corporate office and our operating locations. Leases with an initial term of 12 months or less are not recorded in the Consolidated Balance Sheet. We do not separate lease components from their associated non-lease components pursuant to lease accounting guidance. We have certain leases with variable payments based on an index as well as short-term leases on equipment and facilities. Variable lease expense and short-term lease expense aggregated to $26.4 million and $17.0 million for the three months ended September 30, 2024 and 2023, respectively. Variable lease expense and short-term lease expense &lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;aggregated to $67.1 million and $38.8 million in the first nine months of 2024 and 2023, respectively. These expenses were primarily related to short-term equipment rentals. Lease right-of-use assets and liabilities are recognized at commencement date based on the present value of lease payments over the lease term. As most of our leases do not provide an implicit rate, we generally use our incremental borrowing rate based on the information available at commencement date in determining the present value of lease payments. The weighted average discount rate for our operating leases as of September 30, 2024 and December 31, 2023 was 6.0% and 5.8%, respectively. We recognize operating lease expense, including escalating lease payments and lease incentives, on a straight-line basis over the lease term. Operating lease expense for the three months ended September 30, 2024 and 2023 was $37.1 million and $25.7 million, respectively. Operating lease expense for the nine months ended September 30, 2024 and 2023 was $98.6 million and $61.7 million, respectively.&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"&gt;The lease terms generally range from &lt;span style="-sec-ix-hidden:Hidden_ObkJycMSt02VXygggL-EOg;"&gt;&lt;span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;"&gt;three&lt;/span&gt;&lt;/span&gt; to ten years. Some leases include one or more options to renew, which may be exercised to extend the lease term. We include the exercise of lease renewal options in the lease term when it is reasonably certain that we will exercise the option and such exercise is at our sole discretion. In the third quarter of 2023, we commenced two large real estate leases to support our expected growth in off-site construction, with lease terms longer than our typical terms. The weighted average remaining lease term for our operating leases was 11.1 years at September 30, 2024 and 10.9 years at December 31, 2023.&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"&gt;A majority of the Company&#x2019;s real property leases are with individuals or entities with whom we have no other business relationship. However, in certain instances the Company enters into real property leases with current or former employees. Rent paid to related parties for the three months ended September 30, 2024 and 2023 was approximately $2.4 million and $1.9 million, respectively. Rent paid to related parties for the nine months ended September 30, 2024 and 2023 was approximately $7.1 million and $5.6 million, respectively.&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"&gt;If we decide to cancel or terminate a lease before the end of its term, we would typically owe the lessor the remaining lease payments under the term of the lease. Our lease agreements do not contain any material residual value guarantees or material restrictive covenants. On rare occasions, we rent or sublease certain real estate assets that we no longer use to third parties.&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"&gt;The following table summarizes the operating lease assets and liabilities included in the Consolidated Balance Sheet as follows (in thousands):&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:75%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:60.43%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.15%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:15.19%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.47%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.04%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:14.69%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:60.43%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.15%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:15.19%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.47%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.04%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:14.69%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:middle;width:60.43%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:18.35%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;September 30, 2024&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.47%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;span style="font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:17.73%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;December 31, 2023&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:middle;width:60.43%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;Operating lease right-of-use assets&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.15%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:15.19%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 225,301&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.47%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.04%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:14.69%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 205,712&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:middle;width:60.43%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;Operating lease liabilities:&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.15%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:15.19%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.47%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.04%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:14.69%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:middle;width:60.43%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="-sec-ix-hidden:Hidden_CXTdk2oMZES1sCPvqd8w5w;"&gt;&lt;span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;white-space:pre-wrap;"&gt;   Other current liabilities&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.15%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:15.19%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 26,979&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.47%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.04%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:14.69%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 24,426&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:middle;width:60.43%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="white-space:pre-wrap;"&gt;   Long-term operating lease liabilities&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.15%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:15.19%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 208,268&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.47%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.04%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:14.69%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 188,136&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:middle;width:60.43%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;Total operating lease liabilities&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.15%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:15.19%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 235,247&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.47%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.04%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:14.69%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 212,562&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"&gt;The maturities of operating lease liabilities are as follows (in thousands):&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:79.99%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;width:85.46%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:2.54%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:1.54%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:10.44%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:85.46%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;Year ending December 31&#x2014;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:2.54%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:1.54%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:10.44%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;"&gt;&lt;span style="margin-left:0pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:85.46%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;"&gt;2024 (excluding the nine months ended September 30, 2024)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:2.54%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;"&gt;&lt;span style="margin-left:0pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:1.54%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.44%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0pt 0pt;"&gt; 10,146&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:85.46%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;"&gt;2025&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:2.54%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;"&gt;&lt;span style="margin-left:0pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:1.54%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.44%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0pt 0pt;"&gt; 39,434&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:85.46%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;"&gt;2026&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:2.54%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;"&gt;&lt;span style="margin-left:0pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:1.54%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.44%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0pt 0pt;"&gt; 35,646&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:85.46%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;"&gt;2027&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:2.54%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;"&gt;&lt;span style="margin-left:0pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:1.54%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.44%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0pt 0pt;"&gt; 31,101&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:85.46%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;"&gt;2028&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:2.54%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;"&gt;&lt;span style="margin-left:0pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:1.54%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.44%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0pt 0pt;"&gt; 27,234&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:85.46%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;"&gt;Thereafter&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:2.54%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;"&gt;&lt;span style="margin-left:0pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:1.54%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.44%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0pt 0pt;"&gt; 189,877&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:85.46%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 24pt;"&gt;Total lease payments&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:2.54%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 24pt;"&gt;&lt;span style="margin-left:0pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:1.54%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.44%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0pt 0pt;"&gt; 333,438&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:85.46%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 24pt;"&gt;Less&#x2014;present value discount&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:2.54%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 24pt;"&gt;&lt;span style="margin-left:0pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:1.54%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.44%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt; (98,191)&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:85.46%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 24pt;"&gt;Present value of operating lease liabilities&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:2.54%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 24pt;"&gt;&lt;span style="margin-left:0pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:1.54%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.44%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0pt 0pt;"&gt; 235,247&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"&gt;Supplemental information related to operating leases was as follows (in thousands):&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:middle;width:48.32%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="position:absolute;top:50%;transform:translate(0,-50%);width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.29%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.68%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.28%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.59%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.25%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.22%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.61%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.24%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.21%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:48.32%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="5" style="vertical-align:bottom;white-space:nowrap;width:25.47%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;Three Months Ended September 30, &lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="5" style="vertical-align:bottom;white-space:nowrap;width:24.55%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;Nine Months Ended September 30, &lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:48.32%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.9%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;2024&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.68%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.88%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;2023&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;2024&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.61%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.46%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;2023&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:middle;width:48.32%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;Cash paid for amounts included in the measurement of operating lease liabilities&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.29%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 10,061&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.68%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.28%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.59%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 7,293&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.25%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.22%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 29,377&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.61%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.24%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.21%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 21,362&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:middle;width:48.32%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;Operating lease right-of-use assets obtained in exchange for lease liabilities&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.29%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 6,657&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.68%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.28%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.59%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 82,352&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.25%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.22%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 41,989&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.61%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.24%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.21%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 98,102&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;</us-gaap:LesseeOperatingLeasesTextBlock>
    <us-gaap:LesseeLeasesPolicyTextBlock
      contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ"
      id="Tb_Z6pJLQhuikez2YQeUvvprQ">&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"&gt;We lease certain facilities, vehicles and equipment primarily under noncancelable operating leases. The most significant portion of these noncancelable operating leases is for the facilities occupied by our corporate office and our operating locations. Leases with an initial term of 12 months or less are not recorded in the Consolidated Balance Sheet. We do not separate lease components from their associated non-lease components pursuant to lease accounting guidance. We have certain leases with variable payments based on an index as well as short-term leases on equipment and facilities. Variable lease expense and short-term lease expense aggregated to $26.4 million and $17.0 million for the three months ended September 30, 2024 and 2023, respectively. Variable lease expense and short-term lease expense &lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;aggregated to $67.1 million and $38.8 million in the first nine months of 2024 and 2023, respectively. These expenses were primarily related to short-term equipment rentals. Lease right-of-use assets and liabilities are recognized at commencement date based on the present value of lease payments over the lease term. As most of our leases do not provide an implicit rate, we generally use our incremental borrowing rate based on the information available at commencement date in determining the present value of lease payments. The weighted average discount rate for our operating leases as of September 30, 2024 and December 31, 2023 was 6.0% and 5.8%, respectively. We recognize operating lease expense, including escalating lease payments and lease incentives, on a straight-line basis over the lease term. Operating lease expense for the three months ended September 30, 2024 and 2023 was $37.1 million and $25.7 million, respectively. Operating lease expense for the nine months ended September 30, 2024 and 2023 was $98.6 million and $61.7 million, respectively.&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"&gt;The lease terms generally range from &lt;span style="-sec-ix-hidden:Hidden_ObkJycMSt02VXygggL-EOg;"&gt;&lt;span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;"&gt;three&lt;/span&gt;&lt;/span&gt; to ten years. Some leases include one or more options to renew, which may be exercised to extend the lease term. We include the exercise of lease renewal options in the lease term when it is reasonably certain that we will exercise the option and such exercise is at our sole discretion. In the third quarter of 2023, we commenced two large real estate leases to support our expected growth in off-site construction, with lease terms longer than our typical terms. The weighted average remaining lease term for our operating leases was 11.1 years at September 30, 2024 and 10.9 years at December 31, 2023.&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"&gt;A majority of the Company&#x2019;s real property leases are with individuals or entities with whom we have no other business relationship. However, in certain instances the Company enters into real property leases with current or former employees. Rent paid to related parties for the three months ended September 30, 2024 and 2023 was approximately $2.4 million and $1.9 million, respectively. Rent paid to related parties for the nine months ended September 30, 2024 and 2023 was approximately $7.1 million and $5.6 million, respectively.&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"&gt;If we decide to cancel or terminate a lease before the end of its term, we would typically owe the lessor the remaining lease payments under the term of the lease. Our lease agreements do not contain any material residual value guarantees or material restrictive covenants. On rare occasions, we rent or sublease certain real estate assets that we no longer use to third parties.&lt;/p&gt;</us-gaap:LesseeLeasesPolicyTextBlock>
    <fix:VariableLeaseAndShortTermLeaseCost
      contextRef="Duration_7_1_2024_To_9_30_2024_XquWrHsdeEmkK9F8qXf6qA"
      decimals="-5"
      id="Narr_A3HE3xlQWEqUcoUy6dUdCQ"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">26400000</fix:VariableLeaseAndShortTermLeaseCost>
    <fix:VariableLeaseAndShortTermLeaseCost
      contextRef="Duration_7_1_2023_To_9_30_2023_S4fUa5HYuk6ZPxhUrn5m5w"
      decimals="-5"
      id="Narr_q26G_7vUF0CMfszOPalcCw"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">17000000.0</fix:VariableLeaseAndShortTermLeaseCost>
    <fix:VariableLeaseAndShortTermLeaseCost
      contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ"
      decimals="-5"
      id="Narr_brewVj2oQEO3w9TRwaZE0w"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">67100000</fix:VariableLeaseAndShortTermLeaseCost>
    <fix:VariableLeaseAndShortTermLeaseCost
      contextRef="Duration_1_1_2023_To_9_30_2023_0vpBpKZIxEC_KY5z5G8rKA"
      decimals="-5"
      id="Narr_Sw4-FywCNEGbq-C-TNHlJg"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">38800000</fix:VariableLeaseAndShortTermLeaseCost>
    <us-gaap:OperatingLeaseWeightedAverageDiscountRatePercent
      contextRef="As_Of_9_30_2024_um13j0l3zk2ITGaiED1DFA"
      decimals="3"
      id="Narr_LnFdr12HIkix5kUC9FQSlA"
      unitRef="Unit_Standard_pure_0GIr2wv4rk-T38a8Lz0A5w">0.060</us-gaap:OperatingLeaseWeightedAverageDiscountRatePercent>
    <us-gaap:OperatingLeaseWeightedAverageDiscountRatePercent
      contextRef="As_Of_12_31_2023_X7eqeHRTF0mRLJW7InVDdA"
      decimals="3"
      id="Narr_gVy-xPh2PEaBE7KqQAAJog"
      unitRef="Unit_Standard_pure_0GIr2wv4rk-T38a8Lz0A5w">0.058</us-gaap:OperatingLeaseWeightedAverageDiscountRatePercent>
    <us-gaap:OperatingLeaseExpense
      contextRef="Duration_7_1_2024_To_9_30_2024_XquWrHsdeEmkK9F8qXf6qA"
      decimals="-5"
      id="Narr_GfoVkejXt0y2YuJLVObjag"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">37100000</us-gaap:OperatingLeaseExpense>
    <us-gaap:OperatingLeaseExpense
      contextRef="Duration_7_1_2023_To_9_30_2023_S4fUa5HYuk6ZPxhUrn5m5w"
      decimals="-5"
      id="Narr__bS2Ruy9kUmSyl9ULZnGDw"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">25700000</us-gaap:OperatingLeaseExpense>
    <us-gaap:OperatingLeaseExpense
      contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ"
      decimals="-5"
      id="Narr_bCxOR3cyg0OxomVzT-AxDg"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">98600000</us-gaap:OperatingLeaseExpense>
    <us-gaap:OperatingLeaseExpense
      contextRef="Duration_1_1_2023_To_9_30_2023_0vpBpKZIxEC_KY5z5G8rKA"
      decimals="-5"
      id="Narr_a4H_v2QNlEuR-EFBc8-xJw"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">61700000</us-gaap:OperatingLeaseExpense>
    <us-gaap:LesseeOperatingLeaseTermOfContract
      contextRef="As_Of_9_30_2024_srt_RangeAxis_srt_MaximumMember_id1gXBxYjkO3jpdyCLZ7Aw"
      id="Narr_yfcG0ZBMFEOff9GnkDRfTg">P10Y</us-gaap:LesseeOperatingLeaseTermOfContract>
    <fix:NumberOfOptionsToRenew
      contextRef="Duration_1_1_2024_To_9_30_2024_srt_RangeAxis_srt_MinimumMember_3wO7ciKypUqVRHiqsG5ULA"
      decimals="INF"
      id="Narr_djZ_cG4ur0SfOGd7yCU_VQ"
      unitRef="Unit_Standard_Option_qbxE96-DSUeFUvu6RD_SkA">1</fix:NumberOfOptionsToRenew>
    <us-gaap:LesseeOperatingLeaseExistenceOfOptionToExtend
      contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ"
      id="Narr_YE9CM6kbcEieZ1Y1UGd05Q">true</us-gaap:LesseeOperatingLeaseExistenceOfOptionToExtend>
    <fix:NumberOfOffSiteConstructionRealEstateLeasesCommenced
      contextRef="As_Of_9_30_2023_Cz0YiFrEwkyvL950Hk4Vxw"
      decimals="INF"
      id="Narr_vcrVnsRPoEKumKFp14aRFw"
      unitRef="Unit_Standard_lease_U5sIX0HP0UOmAQUpJ4dJYg">2</fix:NumberOfOffSiteConstructionRealEstateLeasesCommenced>
    <us-gaap:OperatingLeaseWeightedAverageRemainingLeaseTerm1
      contextRef="As_Of_9_30_2024_um13j0l3zk2ITGaiED1DFA"
      id="Narr_1zaYb1PotUCoVxzPH65f5w">P11Y1M6D</us-gaap:OperatingLeaseWeightedAverageRemainingLeaseTerm1>
    <us-gaap:OperatingLeaseWeightedAverageRemainingLeaseTerm1
      contextRef="As_Of_12_31_2023_X7eqeHRTF0mRLJW7InVDdA"
      id="Narr_u3TPuesD40ysFuvsH14uuw">P10Y10M24D</us-gaap:OperatingLeaseWeightedAverageRemainingLeaseTerm1>
    <us-gaap:PaymentsForRent
      contextRef="Duration_7_1_2024_To_9_30_2024_XquWrHsdeEmkK9F8qXf6qA"
      decimals="-5"
      id="Narr_r5wb_TMvRUaf-XAPJ-jEDQ"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">2400000</us-gaap:PaymentsForRent>
    <us-gaap:PaymentsForRent
      contextRef="Duration_7_1_2023_To_9_30_2023_S4fUa5HYuk6ZPxhUrn5m5w"
      decimals="-5"
      id="Narr_RZXf1H-kh02M9OY95a_oVw"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">1900000</us-gaap:PaymentsForRent>
    <us-gaap:PaymentsForRent
      contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ"
      decimals="-5"
      id="Narr_tmZNPuOfBkORhCvC-eXF-Q"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">7100000</us-gaap:PaymentsForRent>
    <us-gaap:PaymentsForRent
      contextRef="Duration_1_1_2023_To_9_30_2023_0vpBpKZIxEC_KY5z5G8rKA"
      decimals="-5"
      id="Narr_hFZqCuumZUGSHaesG61JSw"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">5600000</us-gaap:PaymentsForRent>
    <fix:ScheduleOfLeaseAssetsAndLiabilitiesTableTextBlock
      contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ"
      id="Tb_GU7zDOmja0O6-AOtf4kygg">&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"&gt;The following table summarizes the operating lease assets and liabilities included in the Consolidated Balance Sheet as follows (in thousands):&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:75%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:60.43%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.15%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:15.19%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.47%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.04%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:14.69%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:60.43%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.15%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:15.19%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.47%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.04%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:14.69%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:middle;width:60.43%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:18.35%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;September 30, 2024&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.47%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;span style="font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:17.73%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;December 31, 2023&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:middle;width:60.43%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;Operating lease right-of-use assets&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.15%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:15.19%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 225,301&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.47%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.04%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:14.69%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 205,712&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:middle;width:60.43%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;Operating lease liabilities:&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.15%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:15.19%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.47%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.04%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:14.69%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:middle;width:60.43%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="-sec-ix-hidden:Hidden_CXTdk2oMZES1sCPvqd8w5w;"&gt;&lt;span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;white-space:pre-wrap;"&gt;   Other current liabilities&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.15%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:15.19%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 26,979&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.47%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.04%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:14.69%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 24,426&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:middle;width:60.43%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="white-space:pre-wrap;"&gt;   Long-term operating lease liabilities&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.15%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:15.19%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 208,268&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.47%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.04%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:14.69%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 188,136&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:middle;width:60.43%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;Total operating lease liabilities&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.15%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:15.19%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 235,247&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.47%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.04%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:14.69%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 212,562&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</fix:ScheduleOfLeaseAssetsAndLiabilitiesTableTextBlock>
    <us-gaap:OperatingLeaseRightOfUseAsset
      contextRef="As_Of_9_30_2024_um13j0l3zk2ITGaiED1DFA"
      decimals="-3"
      id="Tc_qeq-OZePz0uEkqvXH53mEQ_3_2"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">225301000</us-gaap:OperatingLeaseRightOfUseAsset>
    <us-gaap:OperatingLeaseRightOfUseAsset
      contextRef="As_Of_12_31_2023_X7eqeHRTF0mRLJW7InVDdA"
      decimals="-3"
      id="Tc_0miaFAOfkEK-h_dJAJ9K5w_3_5"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">205712000</us-gaap:OperatingLeaseRightOfUseAsset>
    <us-gaap:OperatingLeaseLiabilityCurrent
      contextRef="As_Of_9_30_2024_um13j0l3zk2ITGaiED1DFA"
      decimals="-3"
      id="Tc_NL4YE5SisEuZc0Nt8q9ARw_5_2"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">26979000</us-gaap:OperatingLeaseLiabilityCurrent>
    <us-gaap:OperatingLeaseLiabilityCurrent
      contextRef="As_Of_12_31_2023_X7eqeHRTF0mRLJW7InVDdA"
      decimals="-3"
      id="Tc_x-CzvfQU20-GZev6-cikGw_5_5"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">24426000</us-gaap:OperatingLeaseLiabilityCurrent>
    <us-gaap:OperatingLeaseLiabilityNoncurrent
      contextRef="As_Of_9_30_2024_um13j0l3zk2ITGaiED1DFA"
      decimals="-3"
      id="Tc_o6rye5ZdwUy7vRlOCp7R8g_6_2"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">208268000</us-gaap:OperatingLeaseLiabilityNoncurrent>
    <us-gaap:OperatingLeaseLiabilityNoncurrent
      contextRef="As_Of_12_31_2023_X7eqeHRTF0mRLJW7InVDdA"
      decimals="-3"
      id="Tc_4s988d-t2UKl2_25qkRtYQ_6_5"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">188136000</us-gaap:OperatingLeaseLiabilityNoncurrent>
    <us-gaap:OperatingLeaseLiability
      contextRef="As_Of_9_30_2024_um13j0l3zk2ITGaiED1DFA"
      decimals="-3"
      id="Tc_YaX3WIASS0KX4WQat0kwuQ_7_2"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">235247000</us-gaap:OperatingLeaseLiability>
    <us-gaap:OperatingLeaseLiability
      contextRef="As_Of_12_31_2023_X7eqeHRTF0mRLJW7InVDdA"
      decimals="-3"
      id="Tc_2IP-3fvuv0ycgcTTM3yc4A_7_5"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">212562000</us-gaap:OperatingLeaseLiability>
    <us-gaap:LesseeOperatingLeaseLiabilityMaturityTableTextBlock
      contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ"
      id="Tb_84f2hEtVd0CoonCTtSmolw">&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"&gt;The maturities of operating lease liabilities are as follows (in thousands):&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:79.99%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;width:85.46%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:2.54%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:1.54%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:10.44%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:85.46%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;Year ending December 31&#x2014;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:2.54%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:1.54%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:10.44%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;"&gt;&lt;span style="margin-left:0pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:85.46%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;"&gt;2024 (excluding the nine months ended September 30, 2024)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:2.54%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;"&gt;&lt;span style="margin-left:0pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:1.54%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.44%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0pt 0pt;"&gt; 10,146&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:85.46%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;"&gt;2025&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:2.54%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;"&gt;&lt;span style="margin-left:0pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:1.54%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.44%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0pt 0pt;"&gt; 39,434&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:85.46%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;"&gt;2026&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:2.54%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;"&gt;&lt;span style="margin-left:0pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:1.54%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.44%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0pt 0pt;"&gt; 35,646&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:85.46%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;"&gt;2027&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:2.54%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;"&gt;&lt;span style="margin-left:0pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:1.54%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.44%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0pt 0pt;"&gt; 31,101&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:85.46%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;"&gt;2028&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:2.54%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;"&gt;&lt;span style="margin-left:0pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:1.54%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.44%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0pt 0pt;"&gt; 27,234&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:85.46%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;"&gt;Thereafter&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:2.54%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;"&gt;&lt;span style="margin-left:0pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:1.54%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.44%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0pt 0pt;"&gt; 189,877&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:85.46%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 24pt;"&gt;Total lease payments&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:2.54%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 24pt;"&gt;&lt;span style="margin-left:0pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:1.54%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.44%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0pt 0pt;"&gt; 333,438&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:85.46%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 24pt;"&gt;Less&#x2014;present value discount&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:2.54%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 24pt;"&gt;&lt;span style="margin-left:0pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:1.54%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.44%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt; (98,191)&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:85.46%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 24pt;"&gt;Present value of operating lease liabilities&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:2.54%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 24pt;"&gt;&lt;span style="margin-left:0pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:1.54%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.44%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0pt 0pt;"&gt; 235,247&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</us-gaap:LesseeOperatingLeaseLiabilityMaturityTableTextBlock>
    <us-gaap:LesseeOperatingLeaseLiabilityPaymentsRemainderOfFiscalYear
      contextRef="As_Of_9_30_2024_um13j0l3zk2ITGaiED1DFA"
      decimals="-3"
      id="Tc_VyqptZOGZUCad3a0i_XYlQ_2_3"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">10146000</us-gaap:LesseeOperatingLeaseLiabilityPaymentsRemainderOfFiscalYear>
    <us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths
      contextRef="As_Of_9_30_2024_um13j0l3zk2ITGaiED1DFA"
      decimals="-3"
      id="Tc_AKKtgTaBgUy6W7VWFb0r3A_3_3"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">39434000</us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths>
    <us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearTwo
      contextRef="As_Of_9_30_2024_um13j0l3zk2ITGaiED1DFA"
      decimals="-3"
      id="Tc_Zl_vks7bgUuMSufI6dAzkA_4_3"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">35646000</us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearTwo>
    <us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearThree
      contextRef="As_Of_9_30_2024_um13j0l3zk2ITGaiED1DFA"
      decimals="-3"
      id="Tc_FqFvVggv5EC3e3IwY_2_Pw_5_3"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">31101000</us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearThree>
    <us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearFour
      contextRef="As_Of_9_30_2024_um13j0l3zk2ITGaiED1DFA"
      decimals="-3"
      id="Tc_q-c66-7MHkCDLcQ3BGqHTQ_6_3"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">27234000</us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearFour>
    <fix:LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFour
      contextRef="As_Of_9_30_2024_um13j0l3zk2ITGaiED1DFA"
      decimals="-3"
      id="Tc_JeyuGxsV4kCq5vHcJ329Ww_7_3"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">189877000</fix:LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFour>
    <us-gaap:LesseeOperatingLeaseLiabilityPaymentsDue
      contextRef="As_Of_9_30_2024_um13j0l3zk2ITGaiED1DFA"
      decimals="-3"
      id="Tc_Eczfd0VvT0OulzB6oCnOrA_8_3"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">333438000</us-gaap:LesseeOperatingLeaseLiabilityPaymentsDue>
    <us-gaap:LesseeOperatingLeaseLiabilityUndiscountedExcessAmount
      contextRef="As_Of_9_30_2024_um13j0l3zk2ITGaiED1DFA"
      decimals="-3"
      id="Tc_RHeUr1IrpkWAPUi_c6wpyg_9_3"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">98191000</us-gaap:LesseeOperatingLeaseLiabilityUndiscountedExcessAmount>
    <us-gaap:OperatingLeaseLiability
      contextRef="As_Of_9_30_2024_um13j0l3zk2ITGaiED1DFA"
      decimals="-3"
      id="Tc_ZYn57v9Fi0iNXkdI3F3GcQ_10_3"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">235247000</us-gaap:OperatingLeaseLiability>
    <fix:ScheduleOfSupplementalInformationRelatedToLeasesTableTextBlock
      contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ"
      id="Tb_l8eFiqoYUk-M-RrFGWXyog">&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"&gt;Supplemental information related to operating leases was as follows (in thousands):&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:middle;width:48.32%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="position:absolute;top:50%;transform:translate(0,-50%);width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.29%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.68%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.28%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.59%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.25%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.22%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.61%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.24%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.21%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:48.32%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="5" style="vertical-align:bottom;white-space:nowrap;width:25.47%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;Three Months Ended September 30, &lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="5" style="vertical-align:bottom;white-space:nowrap;width:24.55%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;Nine Months Ended September 30, &lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:48.32%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.9%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;2024&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.68%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.88%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;2023&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;2024&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.61%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.46%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;2023&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:middle;width:48.32%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;Cash paid for amounts included in the measurement of operating lease liabilities&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.29%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 10,061&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.68%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.28%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.59%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 7,293&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.25%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.22%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 29,377&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.61%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.24%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.21%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 21,362&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:middle;width:48.32%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;Operating lease right-of-use assets obtained in exchange for lease liabilities&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.29%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 6,657&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.68%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.28%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.59%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 82,352&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.25%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.22%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 41,989&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.61%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.24%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.21%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 98,102&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;</fix:ScheduleOfSupplementalInformationRelatedToLeasesTableTextBlock>
    <us-gaap:OperatingLeasePayments
      contextRef="Duration_7_1_2024_To_9_30_2024_XquWrHsdeEmkK9F8qXf6qA"
      decimals="-3"
      id="Tc_sOcs_NZI-E2_bmteDgP9yA_3_2"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">10061000</us-gaap:OperatingLeasePayments>
    <us-gaap:OperatingLeasePayments
      contextRef="Duration_7_1_2023_To_9_30_2023_S4fUa5HYuk6ZPxhUrn5m5w"
      decimals="-3"
      id="Tc_ZAZFvT3CZkOXjPkiHRCuOw_3_5"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">7293000</us-gaap:OperatingLeasePayments>
    <us-gaap:OperatingLeasePayments
      contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ"
      decimals="-3"
      id="Tc_LhWfiFhXdk6rUWyl9QxKsg_3_8"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">29377000</us-gaap:OperatingLeasePayments>
    <us-gaap:OperatingLeasePayments
      contextRef="Duration_1_1_2023_To_9_30_2023_0vpBpKZIxEC_KY5z5G8rKA"
      decimals="-3"
      id="Tc_E5LbKfqWlUS-29uK_4A-Ew_3_11"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">21362000</us-gaap:OperatingLeasePayments>
    <us-gaap:RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability
      contextRef="Duration_7_1_2024_To_9_30_2024_XquWrHsdeEmkK9F8qXf6qA"
      decimals="-3"
      id="Tc_iZD1ePGFVUK-lBSDzQK5sw_4_2"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">6657000</us-gaap:RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability>
    <us-gaap:RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability
      contextRef="Duration_7_1_2023_To_9_30_2023_S4fUa5HYuk6ZPxhUrn5m5w"
      decimals="-3"
      id="Tc_p3FjGqhccUGt-UhYgFLp0w_4_5"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">82352000</us-gaap:RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability>
    <us-gaap:RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability
      contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ"
      decimals="-3"
      id="Tc_3vi4hHs4H06fixP57Msm7w_4_8"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">41989000</us-gaap:RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability>
    <us-gaap:RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability
      contextRef="Duration_1_1_2023_To_9_30_2023_0vpBpKZIxEC_KY5z5G8rKA"
      decimals="-3"
      id="Tc_P3kSSbNlvkaKkmxfbaNL_A_4_11"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">98102000</us-gaap:RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability>
    <us-gaap:CommitmentsAndContingenciesDisclosureTextBlock
      contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ"
      id="Tb_vvwT2FxilUuYCA7fG4fLqA">&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;9. Commitments and Contingencies&lt;/b&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 0pt 36pt;"&gt;&lt;span style="font-style:italic;font-weight:bold;margin-left:0pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 0pt 36pt;"&gt;&lt;span style="font-style:italic;font-weight:bold;"&gt;Claims and Lawsuits&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"&gt;We are subject to certain legal and regulatory claims, including lawsuits arising in the normal course of business. We maintain various insurance coverages to minimize financial risk associated with these claims. We have estimated and provided accruals for probable losses and related legal fees associated with certain litigation in the accompanying consolidated financial statements. While we cannot predict the outcome of these proceedings, in management&#x2019;s opinion and based on reports of counsel, any liability arising from these matters individually and in the aggregate will not have a material effect on our operating results, cash flows or financial condition, after giving effect to provisions already recorded.&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"&gt;In the first quarter of 2023, we recorded a pre-tax gain of $6.8 million from legal developments and settlements that primarily relate to disputes with customers regarding the outcome of completed projects as well as an obligation to perform subcontract work under two executed letters of intent for subsequent projects that we believed were not enforceable. The pre-tax gain of $6.8 million was recorded as an increase in gross profit of $6.6 million, a reduction in SG&amp;amp;A of $0.7 million, an increase in interest income of $1.3 million and an increase in the change in fair value of contingent earn-out obligations expense of $1.8 million in our Consolidated Statements of Operations.&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"&gt;As of September 30, 2024, we recorded an accrual for unresolved matters, which is not material to our financial statements, based on our analysis of likely outcomes related to the respective matters; however, it is possible that the ultimate outcome and associated costs will deviate from our estimates and that, in the event of an unexpectedly adverse outcome, we may experience additional costs and expenses in future periods.&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 0pt 36pt;"&gt;&lt;span style="margin-left:0pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 0pt 36pt;"&gt;&lt;span style="font-style:italic;font-weight:bold;"&gt;Surety&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"&gt;Many customers, particularly in connection with new construction, require us to post performance and payment bonds issued by a financial institution known as a surety. If we fail to perform under the terms of a contract or to pay subcontractors and vendors who provided goods or services under a contract, the customer may demand that the surety make payments or provide services under the bond. We must reimburse the surety for any expenses or outlays it incurs. &lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"&gt;Current market conditions for surety markets and bonding capacity are adequate, with acceptable terms and conditions. Historically, approximately 10% to 20% of our business has required bonds. While we currently have strong surety relationships to support our bonding needs, future market conditions or changes in the sureties&#x2019; assessment of our operating and financial risk could cause the sureties to decline to issue bonds for our work. If that were to occur, the alternatives include doing more business that does not require bonds, posting other forms of collateral for project performance, such as letters of credit or cash, and seeking bonding capacity from other sureties. We would likely also encounter concerns from customers, suppliers and other market participants as to our creditworthiness. While we believe our general operating and financial characteristics would enable us to ultimately respond effectively to an interruption in the availability of bonding capacity, such an interruption would likely cause our revenue and profits to decline in the near term.&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 0pt 36pt;"&gt;&lt;span style="font-style:italic;font-weight:bold;"&gt;Self-Insurance&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"&gt;We are substantially self-insured for workers&#x2019; compensation, employer&#x2019;s liability, auto liability, general liability and employee group health claims, in view of the relatively high per-incident deductibles we absorb under our insurance arrangements for these risks. Losses are estimated and accrued based upon known facts, historical trends and industry &lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;averages. Estimated losses in excess of our deductible, which have not already been paid, are included in our accrual with a corresponding receivable from our insurance carrier. Loss estimates associated with the larger and longer-developing risks, such as workers&#x2019; compensation, auto liability and general liability, are reviewed by a third-party actuary quarterly.&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;</us-gaap:CommitmentsAndContingenciesDisclosureTextBlock>
    <us-gaap:GainLossRelatedToLitigationSettlement
      contextRef="Duration_1_1_2023_To_3_31_2023_us-gaap_LossContingenciesByNatureOfContingencyAxis_fix_DisputeWithCustomerMember_bDYxGk5BM02TJTfRtOn_AA"
      decimals="-5"
      id="Narr_Z2LWDL51eEayoxuoxqcUGQ"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">6800000</us-gaap:GainLossRelatedToLitigationSettlement>
    <us-gaap:GainLossRelatedToLitigationSettlement
      contextRef="Duration_1_1_2023_To_3_31_2023_us-gaap_LossContingenciesByNatureOfContingencyAxis_fix_DisputeWithCustomerMember_bDYxGk5BM02TJTfRtOn_AA"
      decimals="-5"
      id="Narr_yQ1g6RtExE2T7iuiua8c3Q"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">6800000</us-gaap:GainLossRelatedToLitigationSettlement>
    <us-gaap:GainLossRelatedToLitigationSettlement
      contextRef="Duration_1_1_2023_To_3_31_2023_us-gaap_IncomeStatementLocationAxis_fix_GrossProfitMember_us-gaap_LossContingenciesByNatureOfContingencyAxis_fix_DisputeWithCustomerMember_tF_jasNoLEOUH0zZxyqiUg"
      decimals="-5"
      id="Narr_2jAdAdp9okCH3O724YeYmw"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">6600000</us-gaap:GainLossRelatedToLitigationSettlement>
    <us-gaap:GainLossRelatedToLitigationSettlement
      contextRef="Duration_1_1_2023_To_3_31_2023_us-gaap_IncomeStatementLocationAxis_us-gaap_SellingGeneralAndAdministrativeExpensesMember_us-gaap_LossContingenciesByNatureOfContingencyAxis_fix_DisputeWithCustomerMember_xrkRNEHpmE6z7qbWjo9S-A"
      decimals="-5"
      id="Narr_FvEwIePIUUmeADNBcxOf3w"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">-700000</us-gaap:GainLossRelatedToLitigationSettlement>
    <us-gaap:GainLossRelatedToLitigationSettlement
      contextRef="Duration_1_1_2023_To_3_31_2023_us-gaap_IncomeStatementLocationAxis_us-gaap_InterestIncomeMember_us-gaap_LossContingenciesByNatureOfContingencyAxis_fix_DisputeWithCustomerMember_fYWoQjLFtkuLvfPKSv0Eug"
      decimals="-5"
      id="Narr__pCivzyrIkCtQbXrZsUF2w"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">1300000</us-gaap:GainLossRelatedToLitigationSettlement>
    <us-gaap:GainLossRelatedToLitigationSettlement
      contextRef="Duration_1_1_2023_To_3_31_2023_us-gaap_IncomeStatementLocationAxis_fix_BusinessCombinationContingentConsiderationChangeInContingentConsiderationLiabilityMember_us-gaap_LossContingenciesByNatureOfContingencyAxis_fix_DisputeWithCustomerMember_W_Dvrlx8X0K4cRCKRmGtlQ"
      decimals="-5"
      id="Narr_kORjp8DE4E6efB6KRwUqig"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">-1800000</us-gaap:GainLossRelatedToLitigationSettlement>
    <fix:PercentageOfBusinessWhichHasRequiredBonds
      contextRef="Duration_1_1_2024_To_9_30_2024_srt_RangeAxis_srt_MinimumMember_us-gaap_LossContingenciesByNatureOfContingencyAxis_us-gaap_SuretyBondMember_u-DTSuPKZ0yIEXxgdm3JPA"
      decimals="2"
      id="Narr_ndjdDe0P1Ei702w45Zezag"
      unitRef="Unit_Standard_pure_0GIr2wv4rk-T38a8Lz0A5w">0.10</fix:PercentageOfBusinessWhichHasRequiredBonds>
    <fix:PercentageOfBusinessWhichHasRequiredBonds
      contextRef="Duration_1_1_2024_To_9_30_2024_srt_RangeAxis_srt_MaximumMember_us-gaap_LossContingenciesByNatureOfContingencyAxis_us-gaap_SuretyBondMember_vo8hvaWZp0aEPxrNNFY3Dw"
      decimals="2"
      id="Narr_V_jIQlle2UupUOyNoG9l9g"
      unitRef="Unit_Standard_pure_0GIr2wv4rk-T38a8Lz0A5w">0.20</fix:PercentageOfBusinessWhichHasRequiredBonds>
    <us-gaap:StockholdersEquityNoteDisclosureTextBlock
      contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ"
      id="Tb_M8BDGHM5WUmaU2tzkfwpqA">&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;10. Stockholders&#x2019; Equity&lt;/b&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 0pt 36pt;"&gt;&lt;span style="font-style:italic;font-weight:bold;margin-left:0pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 0pt 36pt;"&gt;&lt;span style="font-style:italic;font-weight:bold;"&gt;Earnings Per Share&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"&gt;Basic earnings per share (&#x201c;EPS&#x201d;) is computed by dividing net income by the weighted average number of shares of common stock outstanding during the year. Diluted EPS is computed considering the dilutive effect of stock options, restricted stock, restricted stock units and performance stock units. The vesting of unvested, contingently issuable performance stock units is based on the achievement of certain earnings per share targets and total shareholder return. These shares are considered contingently issuable shares for purposes of calculating diluted earnings per share. These shares are not included in the diluted earnings per share denominator until the performance criteria are met, if it is assumed that the end of the reporting period was the end of the contingency period.&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"&gt;Unvested restricted stock, restricted stock units and performance stock units are included in diluted earnings per share, weighted outstanding until the shares and units vest. Upon vesting, the vested restricted stock, restricted stock units and performance stock units are included in basic earnings per share weighted outstanding from the vesting date.&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"&gt;There were zero anti-dilutive stock options excluded from the calculation of diluted EPS for the three and nine months ended September 30, 2024 and 2023. &lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"&gt;The following table reconciles the number of shares outstanding with the number of shares used in computing basic and diluted earnings per share for each of the periods presented (in thousands):&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:90%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;width:60.12%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.82%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.39%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.82%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.64%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.82%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.4%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.82%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.65%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.45%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:60.12%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.82%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;white-space:nowrap;width:17.86%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;Three Months Ended &lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.82%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;white-space:nowrap;width:17.88%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;Nine Months Ended &lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.45%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:60.12%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.82%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;white-space:nowrap;width:17.86%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;September 30, &lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.82%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;white-space:nowrap;width:17.88%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;September 30, &lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.45%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:60.12%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.82%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.39%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;2024&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.82%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.64%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;2023&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.82%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.4%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;2024&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.82%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.65%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;2023&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.45%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:60.12%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;Common shares outstanding, end of period&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.82%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.39%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 35,593&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.82%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.64%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 35,760&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.82%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.4%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 35,593&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.82%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.65%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 35,760&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.45%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:60.12%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;Effect of using weighted average common shares outstanding&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.82%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.39%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 76&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.82%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.64%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 60&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.82%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.4%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 125&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.82%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.65%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 59&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.45%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:60.12%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;Shares used in computing earnings per share&#x2014;basic&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.82%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.39%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 35,669&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.82%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.64%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 35,820&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.82%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.4%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 35,718&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.82%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.65%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 35,819&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.45%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:60.12%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;Effect of shares issuable under stock option plans based on the treasury stock method&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.82%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.39%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 30&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.82%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.64%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 28&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.82%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.4%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 30&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.82%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.65%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 26&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.45%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:60.12%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;Effect of restricted and contingently issuable shares&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.82%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.39%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 56&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.82%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.64%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 69&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.82%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.4%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 56&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.82%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.65%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 65&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.45%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:60.12%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;Shares used in computing earnings per share&#x2014;diluted&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.82%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.39%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 35,755&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.82%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.64%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 35,917&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.82%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.4%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 35,804&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.82%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.65%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 35,910&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.45%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 0pt 36pt;"&gt;&lt;span style="font-style:italic;font-weight:bold;"&gt;Share Repurchase Program&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 0pt 36pt;"&gt;&lt;span style="margin-left:0pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"&gt;On March&#160;29, 2007, our Board of Directors (the &#x201c;Board&#x201d;) approved a stock repurchase program to acquire up to 1.0&#160;million shares of our outstanding common stock. Subsequently, the Board has from time to time increased the number of shares that may be acquired under the program and approved extensions of the program. On August 7, 2024, the Board approved an extension to the program by increasing the shares authorized for repurchase by 0.4 million shares. Since the inception of the repurchase program, the Board has approved 11.4&#160;million shares to be repurchased. As of September 30, 2024, we have repurchased a cumulative total of 10.4&#160;million shares at an average price of $29.99 per share under the repurchase program.&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"&gt;The share repurchases will be made from time to time at our discretion in the open market or privately negotiated transactions, as permitted by securities laws and other legal requirements, and subject to market conditions and other factors. The Board may modify, suspend, extend or terminate the program at any time. During the nine months ended September 30, 2024, we repurchased 0.1 million shares for approximately $42.3 million at an average price of $310.02 per share. &lt;/p&gt;</us-gaap:StockholdersEquityNoteDisclosureTextBlock>
    <us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount
      contextRef="Duration_1_1_2023_To_9_30_2023_0vpBpKZIxEC_KY5z5G8rKA"
      decimals="-5"
      id="Narr_gkd1_UPXr0q5r-I14yo-_g"
      unitRef="Unit_Standard_shares_YK1c03HsOkOiDLLsAeYHoA">0</us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount>
    <us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount
      contextRef="Duration_7_1_2023_To_9_30_2023_S4fUa5HYuk6ZPxhUrn5m5w"
      decimals="-5"
      id="Narr_Zetefe9jtEWvujOlWdC5ww"
      unitRef="Unit_Standard_shares_YK1c03HsOkOiDLLsAeYHoA">0</us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount>
    <us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount
      contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ"
      decimals="-5"
      id="Narr_F-bqOKqUWkymeZS0VI-Zpw"
      unitRef="Unit_Standard_shares_YK1c03HsOkOiDLLsAeYHoA">0</us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount>
    <us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount
      contextRef="Duration_7_1_2024_To_9_30_2024_XquWrHsdeEmkK9F8qXf6qA"
      decimals="-5"
      id="Narr_PA7yVzhJWk6SW0PQcnxOEg"
      unitRef="Unit_Standard_shares_YK1c03HsOkOiDLLsAeYHoA">0</us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount>
    <us-gaap:ScheduleOfWeightedAverageNumberOfSharesTableTextBlock
      contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ"
      id="Tb_IhT0TQlK3Ua-pMTzudWBqw">&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"&gt;The following table reconciles the number of shares outstanding with the number of shares used in computing basic and diluted earnings per share for each of the periods presented (in thousands):&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:90%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;width:60.12%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.82%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.39%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.82%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.64%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.82%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.4%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.82%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.65%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.45%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:60.12%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.82%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;white-space:nowrap;width:17.86%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;Three Months Ended &lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.82%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;white-space:nowrap;width:17.88%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;Nine Months Ended &lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.45%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:60.12%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.82%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;white-space:nowrap;width:17.86%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;September 30, &lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.82%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;white-space:nowrap;width:17.88%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;September 30, &lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.45%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:60.12%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.82%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.39%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;2024&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.82%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.64%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;2023&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.82%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.4%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;2024&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.82%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.65%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;2023&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.45%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:60.12%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;Common shares outstanding, end of period&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.82%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.39%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 35,593&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.82%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.64%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 35,760&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.82%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.4%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 35,593&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.82%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.65%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 35,760&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.45%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:60.12%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;Effect of using weighted average common shares outstanding&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.82%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.39%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 76&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.82%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.64%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 60&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.82%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.4%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 125&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.82%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.65%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 59&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.45%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:60.12%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;Shares used in computing earnings per share&#x2014;basic&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.82%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.39%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 35,669&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.82%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.64%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 35,820&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.82%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.4%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 35,718&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.82%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.65%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 35,819&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.45%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:60.12%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;Effect of shares issuable under stock option plans based on the treasury stock method&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.82%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.39%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 30&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.82%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.64%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 28&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.82%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.4%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 30&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.82%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.65%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 26&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.45%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:60.12%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;Effect of restricted and contingently issuable shares&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.82%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.39%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 56&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.82%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.64%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 69&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.82%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.4%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 56&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.82%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.65%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 65&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.45%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:60.12%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;Shares used in computing earnings per share&#x2014;diluted&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.82%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.39%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 35,755&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.82%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.64%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 35,917&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.82%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.4%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 35,804&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.82%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.65%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 35,910&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.45%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</us-gaap:ScheduleOfWeightedAverageNumberOfSharesTableTextBlock>
    <us-gaap:CommonStockSharesOutstanding
      contextRef="As_Of_9_30_2024_um13j0l3zk2ITGaiED1DFA"
      decimals="-3"
      id="Tc_iB0aQ4BFUkGjtTIbvTF1QQ_4_2"
      unitRef="Unit_Standard_shares_YK1c03HsOkOiDLLsAeYHoA">35593000</us-gaap:CommonStockSharesOutstanding>
    <us-gaap:CommonStockSharesOutstanding
      contextRef="As_Of_9_30_2023_Cz0YiFrEwkyvL950Hk4Vxw"
      decimals="-3"
      id="Tc_1c3nWC4s_kqn9fTl6H7ecQ_4_4"
      unitRef="Unit_Standard_shares_YK1c03HsOkOiDLLsAeYHoA">35760000</us-gaap:CommonStockSharesOutstanding>
    <us-gaap:CommonStockSharesOutstanding
      contextRef="As_Of_9_30_2024_um13j0l3zk2ITGaiED1DFA"
      decimals="-3"
      id="Tc_lowf-3cfFUWksx4nOMZg5Q_4_6"
      unitRef="Unit_Standard_shares_YK1c03HsOkOiDLLsAeYHoA">35593000</us-gaap:CommonStockSharesOutstanding>
    <us-gaap:CommonStockSharesOutstanding
      contextRef="As_Of_9_30_2023_Cz0YiFrEwkyvL950Hk4Vxw"
      decimals="-3"
      id="Tc_NnTpoKgrnEiDgUycO0LGlg_4_8"
      unitRef="Unit_Standard_shares_YK1c03HsOkOiDLLsAeYHoA">35760000</us-gaap:CommonStockSharesOutstanding>
    <fix:EffectOfUsingWeightedAverageCommonSharesOutstanding
      contextRef="Duration_7_1_2024_To_9_30_2024_XquWrHsdeEmkK9F8qXf6qA"
      decimals="-3"
      id="Tc_MgrN1pFaf06nS1Ryh8GCmw_5_2"
      unitRef="Unit_Standard_shares_YK1c03HsOkOiDLLsAeYHoA">76000</fix:EffectOfUsingWeightedAverageCommonSharesOutstanding>
    <fix:EffectOfUsingWeightedAverageCommonSharesOutstanding
      contextRef="Duration_7_1_2023_To_9_30_2023_S4fUa5HYuk6ZPxhUrn5m5w"
      decimals="-3"
      id="Tc_hv8CN1P870uLKXT-dergRw_5_4"
      unitRef="Unit_Standard_shares_YK1c03HsOkOiDLLsAeYHoA">60000</fix:EffectOfUsingWeightedAverageCommonSharesOutstanding>
    <fix:EffectOfUsingWeightedAverageCommonSharesOutstanding
      contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ"
      decimals="-3"
      id="Tc_Z9NLvq4odkGVeokAojke6g_5_6"
      unitRef="Unit_Standard_shares_YK1c03HsOkOiDLLsAeYHoA">125000</fix:EffectOfUsingWeightedAverageCommonSharesOutstanding>
    <fix:EffectOfUsingWeightedAverageCommonSharesOutstanding
      contextRef="Duration_1_1_2023_To_9_30_2023_0vpBpKZIxEC_KY5z5G8rKA"
      decimals="-3"
      id="Tc_5GXJVExr1E6_EOush8o4Xg_5_8"
      unitRef="Unit_Standard_shares_YK1c03HsOkOiDLLsAeYHoA">59000</fix:EffectOfUsingWeightedAverageCommonSharesOutstanding>
    <us-gaap:WeightedAverageNumberOfSharesOutstandingBasic
      contextRef="Duration_7_1_2024_To_9_30_2024_XquWrHsdeEmkK9F8qXf6qA"
      decimals="-3"
      id="Tc_fuM5St-Azk-DRikP3qeZqA_6_2"
      unitRef="Unit_Standard_shares_YK1c03HsOkOiDLLsAeYHoA">35669000</us-gaap:WeightedAverageNumberOfSharesOutstandingBasic>
    <us-gaap:WeightedAverageNumberOfSharesOutstandingBasic
      contextRef="Duration_7_1_2023_To_9_30_2023_S4fUa5HYuk6ZPxhUrn5m5w"
      decimals="-3"
      id="Tc_ruzA9mQUqk6pt-SfKxwtyQ_6_4"
      unitRef="Unit_Standard_shares_YK1c03HsOkOiDLLsAeYHoA">35820000</us-gaap:WeightedAverageNumberOfSharesOutstandingBasic>
    <us-gaap:WeightedAverageNumberOfSharesOutstandingBasic
      contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ"
      decimals="-3"
      id="Tc_OMcjrQgJUkCcLCPHOMJ13Q_6_6"
      unitRef="Unit_Standard_shares_YK1c03HsOkOiDLLsAeYHoA">35718000</us-gaap:WeightedAverageNumberOfSharesOutstandingBasic>
    <us-gaap:WeightedAverageNumberOfSharesOutstandingBasic
      contextRef="Duration_1_1_2023_To_9_30_2023_0vpBpKZIxEC_KY5z5G8rKA"
      decimals="-3"
      id="Tc_dkXhGcJGoUGDtMpuqDMy2Q_6_8"
      unitRef="Unit_Standard_shares_YK1c03HsOkOiDLLsAeYHoA">35819000</us-gaap:WeightedAverageNumberOfSharesOutstandingBasic>
    <us-gaap:IncrementalCommonSharesAttributableToShareBasedPaymentArrangements
      contextRef="Duration_7_1_2024_To_9_30_2024_XquWrHsdeEmkK9F8qXf6qA"
      decimals="-3"
      id="Tc_bVemL20t-U-JTKphAofNsA_7_2"
      unitRef="Unit_Standard_shares_YK1c03HsOkOiDLLsAeYHoA">30000</us-gaap:IncrementalCommonSharesAttributableToShareBasedPaymentArrangements>
    <us-gaap:IncrementalCommonSharesAttributableToShareBasedPaymentArrangements
      contextRef="Duration_7_1_2023_To_9_30_2023_S4fUa5HYuk6ZPxhUrn5m5w"
      decimals="-3"
      id="Tc_H-UBizJM70yiDTdaJfV73Q_7_4"
      unitRef="Unit_Standard_shares_YK1c03HsOkOiDLLsAeYHoA">28000</us-gaap:IncrementalCommonSharesAttributableToShareBasedPaymentArrangements>
    <us-gaap:IncrementalCommonSharesAttributableToShareBasedPaymentArrangements
      contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ"
      decimals="-3"
      id="Tc_cm-Vai5Ba0CjKIB7fQgHBA_7_6"
      unitRef="Unit_Standard_shares_YK1c03HsOkOiDLLsAeYHoA">30000</us-gaap:IncrementalCommonSharesAttributableToShareBasedPaymentArrangements>
    <us-gaap:IncrementalCommonSharesAttributableToShareBasedPaymentArrangements
      contextRef="Duration_1_1_2023_To_9_30_2023_0vpBpKZIxEC_KY5z5G8rKA"
      decimals="-3"
      id="Tc_-IxMr2vLik-a3XjaL_ZWqg_7_8"
      unitRef="Unit_Standard_shares_YK1c03HsOkOiDLLsAeYHoA">26000</us-gaap:IncrementalCommonSharesAttributableToShareBasedPaymentArrangements>
    <us-gaap:IncrementalCommonSharesAttributableToContingentlyIssuableShares
      contextRef="Duration_7_1_2024_To_9_30_2024_XquWrHsdeEmkK9F8qXf6qA"
      decimals="-3"
      id="Tc_ixcSghWC2EWw-1ylNKLMOw_8_2"
      unitRef="Unit_Standard_shares_YK1c03HsOkOiDLLsAeYHoA">56000</us-gaap:IncrementalCommonSharesAttributableToContingentlyIssuableShares>
    <us-gaap:IncrementalCommonSharesAttributableToContingentlyIssuableShares
      contextRef="Duration_7_1_2023_To_9_30_2023_S4fUa5HYuk6ZPxhUrn5m5w"
      decimals="-3"
      id="Tc_7tuFXL_SNU-7z516FyEVZA_8_4"
      unitRef="Unit_Standard_shares_YK1c03HsOkOiDLLsAeYHoA">69000</us-gaap:IncrementalCommonSharesAttributableToContingentlyIssuableShares>
    <us-gaap:IncrementalCommonSharesAttributableToContingentlyIssuableShares
      contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ"
      decimals="-3"
      id="Tc_OwhARJK-G0WY7m2z0E1GiQ_8_6"
      unitRef="Unit_Standard_shares_YK1c03HsOkOiDLLsAeYHoA">56000</us-gaap:IncrementalCommonSharesAttributableToContingentlyIssuableShares>
    <us-gaap:IncrementalCommonSharesAttributableToContingentlyIssuableShares
      contextRef="Duration_1_1_2023_To_9_30_2023_0vpBpKZIxEC_KY5z5G8rKA"
      decimals="-3"
      id="Tc_BnfkV0EqRUqhE76I7MAKiA_8_8"
      unitRef="Unit_Standard_shares_YK1c03HsOkOiDLLsAeYHoA">65000</us-gaap:IncrementalCommonSharesAttributableToContingentlyIssuableShares>
    <us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding
      contextRef="Duration_7_1_2024_To_9_30_2024_XquWrHsdeEmkK9F8qXf6qA"
      decimals="-3"
      id="Tc_bBiQtNlkTkaeeyevtiiKog_9_2"
      unitRef="Unit_Standard_shares_YK1c03HsOkOiDLLsAeYHoA">35755000</us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding>
    <us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding
      contextRef="Duration_7_1_2023_To_9_30_2023_S4fUa5HYuk6ZPxhUrn5m5w"
      decimals="-3"
      id="Tc_fQH392I43061FdkTTqvV8A_9_4"
      unitRef="Unit_Standard_shares_YK1c03HsOkOiDLLsAeYHoA">35917000</us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding>
    <us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding
      contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ"
      decimals="-3"
      id="Tc_2bTfCUFIUkyt3HT8c_fcrg_9_6"
      unitRef="Unit_Standard_shares_YK1c03HsOkOiDLLsAeYHoA">35804000</us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding>
    <us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding
      contextRef="Duration_1_1_2023_To_9_30_2023_0vpBpKZIxEC_KY5z5G8rKA"
      decimals="-3"
      id="Tc_VSp3VP_CtE6VFFhpGEEN0g_9_8"
      unitRef="Unit_Standard_shares_YK1c03HsOkOiDLLsAeYHoA">35910000</us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding>
    <srt:StockRepurchaseProgramNumberOfSharesAuthorizedToBeRepurchased
      contextRef="As_Of_3_29_2007_us-gaap_PlanNameAxis_fix_StockRepurchaseProgram2007Member_IxnfDnQA_k-o75uXlRzSfQ"
      decimals="-5"
      id="Narr_8Qqai_0dnUuAGyse3UtUbw"
      unitRef="Unit_Standard_shares_YK1c03HsOkOiDLLsAeYHoA">1000000.0</srt:StockRepurchaseProgramNumberOfSharesAuthorizedToBeRepurchased>
    <srt:StockRepurchaseProgramNumberOfSharesAuthorizedToBeRepurchased
      contextRef="As_Of_8_7_2024_us-gaap_PlanNameAxis_fix_StockRepurchaseProgram2007Member_zuupYSp1G0-EXbeu-NSt3g"
      decimals="-5"
      id="Narr_RTjsiJR8lEGgx_bNoUiQww"
      unitRef="Unit_Standard_shares_YK1c03HsOkOiDLLsAeYHoA">400000</srt:StockRepurchaseProgramNumberOfSharesAuthorizedToBeRepurchased>
    <srt:StockRepurchaseProgramNumberOfSharesAuthorizedToBeRepurchased
      contextRef="As_Of_9_30_2024_us-gaap_PlanNameAxis_fix_StockRepurchaseProgram2007Member_v-c1j9gAuk-TEjUkrEyayg"
      decimals="-5"
      id="Narr_OVESo2EUhUya4SX60CVn6g"
      unitRef="Unit_Standard_shares_YK1c03HsOkOiDLLsAeYHoA">11400000</srt:StockRepurchaseProgramNumberOfSharesAuthorizedToBeRepurchased>
    <us-gaap:TreasuryStockSharesAcquired
      contextRef="Duration_3_29_2007_To_9_30_2024_us-gaap_PlanNameAxis_fix_StockRepurchaseProgram2007Member_M1s8HVAzp0WW5UGq9xvC5w"
      decimals="-5"
      id="Narr_kjkrgKl23UOHqIisVya4tw"
      unitRef="Unit_Standard_shares_YK1c03HsOkOiDLLsAeYHoA">10400000</us-gaap:TreasuryStockSharesAcquired>
    <us-gaap:TreasuryStockAcquiredAverageCostPerShare
      contextRef="Duration_3_29_2007_To_9_30_2024_us-gaap_PlanNameAxis_fix_StockRepurchaseProgram2007Member_M1s8HVAzp0WW5UGq9xvC5w"
      decimals="2"
      id="Narr_714cn2B-TU293eoftxuKxA"
      unitRef="Unit_Divide_USD_shares_0ZfRDiWNfk6kp61F6IdjQA">29.99</us-gaap:TreasuryStockAcquiredAverageCostPerShare>
    <us-gaap:TreasuryStockSharesAcquired
      contextRef="Duration_1_1_2024_To_9_30_2024_srt_RangeAxis_srt_MaximumMember_us-gaap_PlanNameAxis_fix_StockRepurchaseProgram2007Member_Ov88TD7fr0q4sout0EvbgQ"
      decimals="-5"
      id="Narr_0ooY1iDH8EOR_LxN828PSQ"
      unitRef="Unit_Standard_shares_YK1c03HsOkOiDLLsAeYHoA">100000</us-gaap:TreasuryStockSharesAcquired>
    <us-gaap:PaymentsForRepurchaseOfCommonStock
      contextRef="Duration_1_1_2024_To_9_30_2024_us-gaap_PlanNameAxis_fix_StockRepurchaseProgram2007Member_uKGUpz4UMU-zuY1h4cUX2Q"
      decimals="-5"
      id="Narr_dK_BFeEs0U6FVQHhYaKjdw"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">42300000</us-gaap:PaymentsForRepurchaseOfCommonStock>
    <us-gaap:TreasuryStockAcquiredAverageCostPerShare
      contextRef="Duration_1_1_2024_To_9_30_2024_us-gaap_PlanNameAxis_fix_StockRepurchaseProgram2007Member_uKGUpz4UMU-zuY1h4cUX2Q"
      decimals="2"
      id="Narr_Fexgdi1urEyEvhZAtEOjPA"
      unitRef="Unit_Divide_USD_shares_0ZfRDiWNfk6kp61F6IdjQA">310.02</us-gaap:TreasuryStockAcquiredAverageCostPerShare>
    <us-gaap:SegmentReportingDisclosureTextBlock
      contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ"
      id="Tb_EnDJAxzDMkGNAm_jS7uQSw">&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 12pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;11. Segment Information&lt;/b&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"&gt;Our activities are within the mechanical services industry and the electrical services industry, which represent our two reportable segments. We aggregate our operating segments into two reportable segments, as the operating segments meet all of the aggregation criteria. The following tables present information about our reportable segments (in thousands):&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:89%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;width:34.37%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.39%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.39%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.65%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.99%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:34.37%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="11" style="vertical-align:bottom;white-space:nowrap;width:62.8%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;Three Months Ended September 30, 2024&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:34.37%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:2.82%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;width:13.11%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;Mechanical Segment&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:2.82%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;width:13.11%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;Electrical Segment&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:2.82%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;width:14.37%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;Corporate&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:2.82%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;width:13.72%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;Consolidated&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:34.37%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;Revenue&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.82%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.39%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 1,438,617&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.82%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.39%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 373,749&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.82%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.65%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; &#x2014;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.82%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.99%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 1,812,366&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:34.37%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;Gross Profit&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.39%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 292,372&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.39%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 89,342&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.65%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; &#x2014;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.99%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 381,714&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:34.37%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:11pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:11pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:11pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.39%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:11pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:11pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:11pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.39%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:11pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:11pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:11pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.65%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:11pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:11pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:11pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.99%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:11pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:34.37%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="11" style="vertical-align:bottom;white-space:nowrap;width:62.8%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;Three Months Ended September 30, 2023&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:34.37%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:2.82%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;width:13.11%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;Mechanical Segment&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:2.82%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;width:13.11%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;Electrical Segment&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:2.82%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;width:14.37%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;Corporate&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:2.82%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;width:13.72%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;Consolidated&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:34.37%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;Revenue&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.82%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.39%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 1,031,310&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.82%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.39%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 346,814&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.82%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.65%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; &#x2014;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.82%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.99%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 1,378,124&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:34.37%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;Gross Profit&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.39%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 210,147&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.39%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 67,352&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.65%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; &#x2014;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.99%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 277,499&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:34.37%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.39%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.39%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.65%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.99%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:34.37%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="11" style="vertical-align:bottom;white-space:nowrap;width:62.8%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;Nine Months Ended September 30, 2024&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:34.37%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:2.82%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;width:13.11%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;Mechanical Segment&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:2.82%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;width:13.11%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;Electrical Segment&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:2.82%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;width:14.37%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;Corporate&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:2.82%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;width:13.72%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;Consolidated&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:34.37%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;Revenue&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.82%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.39%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 4,075,305&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.82%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.39%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 1,084,367&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.82%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.65%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; &#x2014;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.82%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.99%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 5,159,672&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:34.37%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;Gross Profit&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.39%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 789,056&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.39%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 253,617&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.65%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; &#x2014;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.99%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 1,042,673&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:34.37%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.39%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.39%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.65%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.99%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:34.37%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="11" style="vertical-align:bottom;white-space:nowrap;width:62.8%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;Nine Months Ended September 30, 2023&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:34.37%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:2.82%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;width:13.11%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;Mechanical Segment&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:2.82%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;width:13.11%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;Electrical Segment&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:2.82%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;width:14.37%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;Corporate&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:2.82%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;width:13.72%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;Consolidated&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:34.37%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;Revenue&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.82%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.39%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 2,925,848&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.82%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.39%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 923,346&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.82%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.65%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; &#x2014;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.82%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.99%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 3,849,194&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:34.37%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;Gross Profit&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.39%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 547,695&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.39%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 163,129&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.65%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; &#x2014;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.99%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 710,824&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;</us-gaap:SegmentReportingDisclosureTextBlock>
    <us-gaap:NumberOfReportableSegments
      contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ"
      decimals="INF"
      id="Narr_b9v_a6TmEESQ24HBUCTZ2w"
      unitRef="Unit_Standard_segment_3_qs4qRnNUKHCam52rVs-g">2</us-gaap:NumberOfReportableSegments>
    <us-gaap:NumberOfReportableSegments
      contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ"
      decimals="INF"
      id="Narr_WAxJ52AkkkapG2P6fr05ag"
      unitRef="Unit_Standard_segment_3_qs4qRnNUKHCam52rVs-g">2</us-gaap:NumberOfReportableSegments>
    <us-gaap:ScheduleOfSegmentReportingInformationBySegmentTextBlock
      contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ"
      id="Group_1nG2WzMQq0S8HOZOIEqlVA">The following tables present information about our reportable segments (in thousands):&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:89%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;width:34.37%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.39%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.39%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.65%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.99%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:34.37%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="11" style="vertical-align:bottom;white-space:nowrap;width:62.8%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;Three Months Ended September 30, 2024&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:34.37%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:2.82%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;width:13.11%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;Mechanical Segment&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:2.82%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;width:13.11%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;Electrical Segment&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:2.82%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;width:14.37%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;Corporate&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:2.82%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;width:13.72%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;Consolidated&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:34.37%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;Revenue&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.82%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.39%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 1,438,617&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.82%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.39%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 373,749&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.82%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.65%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; &#x2014;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.82%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.99%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 1,812,366&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:34.37%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;Gross Profit&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.39%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 292,372&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.39%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 89,342&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.65%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; &#x2014;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.99%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 381,714&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:34.37%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:11pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:11pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:11pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.39%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:11pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:11pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:11pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.39%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:11pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:11pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:11pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.65%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:11pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:11pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:11pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.99%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:11pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:34.37%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="11" style="vertical-align:bottom;white-space:nowrap;width:62.8%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;Three Months Ended September 30, 2023&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:34.37%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:2.82%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;width:13.11%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;Mechanical Segment&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:2.82%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;width:13.11%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;Electrical Segment&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:2.82%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;width:14.37%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;Corporate&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:2.82%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;width:13.72%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;Consolidated&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:34.37%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;Revenue&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.82%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.39%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 1,031,310&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.82%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.39%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 346,814&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.82%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.65%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; &#x2014;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.82%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.99%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 1,378,124&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:34.37%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;Gross Profit&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.39%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 210,147&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.39%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 67,352&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.65%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; &#x2014;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.99%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 277,499&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:34.37%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.39%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.39%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.65%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.99%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:34.37%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="11" style="vertical-align:bottom;white-space:nowrap;width:62.8%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;Nine Months Ended September 30, 2024&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:34.37%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:2.82%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;width:13.11%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;Mechanical Segment&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:2.82%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;width:13.11%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;Electrical Segment&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:2.82%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;width:14.37%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;Corporate&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:2.82%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;width:13.72%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;Consolidated&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:34.37%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;Revenue&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.82%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.39%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 4,075,305&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.82%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.39%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 1,084,367&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.82%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.65%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; &#x2014;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.82%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.99%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 5,159,672&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:34.37%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;Gross Profit&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.39%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 789,056&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.39%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 253,617&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.65%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; &#x2014;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.99%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 1,042,673&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:34.37%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.39%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.39%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.65%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.99%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:34.37%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="11" style="vertical-align:bottom;white-space:nowrap;width:62.8%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;Nine Months Ended September 30, 2023&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:34.37%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:2.82%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;width:13.11%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;Mechanical Segment&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:2.82%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;width:13.11%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;Electrical Segment&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:2.82%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;width:14.37%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;Corporate&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:2.82%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;width:13.72%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;Consolidated&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:34.37%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;Revenue&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.82%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.39%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 2,925,848&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.82%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.39%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 923,346&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.82%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.65%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; &#x2014;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.82%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.99%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 3,849,194&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:34.37%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;Gross Profit&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.39%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 547,695&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.39%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 163,129&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.65%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; &#x2014;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.99%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 710,824&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</us-gaap:ScheduleOfSegmentReportingInformationBySegmentTextBlock>
    <us-gaap:Revenues
      contextRef="Duration_7_1_2024_To_9_30_2024_srt_ConsolidationItemsAxis_us-gaap_OperatingSegmentsMember_us-gaap_StatementBusinessSegmentsAxis_fix_MechanicalSegmentMember_ipGvn2J_yUG_njJ09q4Lag"
      decimals="-3"
      id="Tc_97BdTWTKY0-Av3PacvO2Xg_3_3"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">1438617000</us-gaap:Revenues>
    <us-gaap:Revenues
      contextRef="Duration_7_1_2024_To_9_30_2024_srt_ConsolidationItemsAxis_us-gaap_OperatingSegmentsMember_us-gaap_StatementBusinessSegmentsAxis_fix_ElectricalSegmentMember_oQ76muCgDEywAlwL2zQzkw"
      decimals="-3"
      id="Tc_4-juUL_zOE6cAvZKxeUNCA_3_6"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">373749000</us-gaap:Revenues>
    <us-gaap:Revenues
      contextRef="Duration_7_1_2024_To_9_30_2024_XquWrHsdeEmkK9F8qXf6qA"
      decimals="-3"
      id="Tc_gyd-Ege5P0uyYaRbb_4IQQ_3_12"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">1812366000</us-gaap:Revenues>
    <us-gaap:GrossProfit
      contextRef="Duration_7_1_2024_To_9_30_2024_srt_ConsolidationItemsAxis_us-gaap_OperatingSegmentsMember_us-gaap_StatementBusinessSegmentsAxis_fix_MechanicalSegmentMember_ipGvn2J_yUG_njJ09q4Lag"
      decimals="-3"
      id="Tc_vcI3MaTUr0uAr5CZYiazjQ_4_3"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">292372000</us-gaap:GrossProfit>
    <us-gaap:GrossProfit
      contextRef="Duration_7_1_2024_To_9_30_2024_srt_ConsolidationItemsAxis_us-gaap_OperatingSegmentsMember_us-gaap_StatementBusinessSegmentsAxis_fix_ElectricalSegmentMember_oQ76muCgDEywAlwL2zQzkw"
      decimals="-3"
      id="Tc_h4WhtHFmI0mdkV-otWTjtQ_4_6"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">89342000</us-gaap:GrossProfit>
    <us-gaap:GrossProfit
      contextRef="Duration_7_1_2024_To_9_30_2024_XquWrHsdeEmkK9F8qXf6qA"
      decimals="-3"
      id="Tc_MXcywhMabEubqQie2kdQ_A_4_12"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">381714000</us-gaap:GrossProfit>
    <us-gaap:Revenues
      contextRef="Duration_7_1_2023_To_9_30_2023_srt_ConsolidationItemsAxis_us-gaap_OperatingSegmentsMember_us-gaap_StatementBusinessSegmentsAxis_fix_MechanicalSegmentMember_YShAl0xQB0KQs9SdK5emuw"
      decimals="-3"
      id="Tc_qiPdZWKRWUuBADqkZI8IYw_8_3"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">1031310000</us-gaap:Revenues>
    <us-gaap:Revenues
      contextRef="Duration_7_1_2023_To_9_30_2023_srt_ConsolidationItemsAxis_us-gaap_OperatingSegmentsMember_us-gaap_StatementBusinessSegmentsAxis_fix_ElectricalSegmentMember_uyYACQYB90KayXA18v6uBQ"
      decimals="-3"
      id="Tc_heB1bUxbj0izOHRIgI-2hw_8_6"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">346814000</us-gaap:Revenues>
    <us-gaap:Revenues
      contextRef="Duration_7_1_2023_To_9_30_2023_S4fUa5HYuk6ZPxhUrn5m5w"
      decimals="-3"
      id="Tc_MlPQ0lqiLk23UHOnElzR0g_8_12"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">1378124000</us-gaap:Revenues>
    <us-gaap:GrossProfit
      contextRef="Duration_7_1_2023_To_9_30_2023_srt_ConsolidationItemsAxis_us-gaap_OperatingSegmentsMember_us-gaap_StatementBusinessSegmentsAxis_fix_MechanicalSegmentMember_YShAl0xQB0KQs9SdK5emuw"
      decimals="-3"
      id="Tc__zG5lBS5GUyRsQDq0JXE5w_9_3"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">210147000</us-gaap:GrossProfit>
    <us-gaap:GrossProfit
      contextRef="Duration_7_1_2023_To_9_30_2023_srt_ConsolidationItemsAxis_us-gaap_OperatingSegmentsMember_us-gaap_StatementBusinessSegmentsAxis_fix_ElectricalSegmentMember_uyYACQYB90KayXA18v6uBQ"
      decimals="-3"
      id="Tc_PizT0TCbl0qcKXoP8VBj2w_9_6"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">67352000</us-gaap:GrossProfit>
    <us-gaap:GrossProfit
      contextRef="Duration_7_1_2023_To_9_30_2023_S4fUa5HYuk6ZPxhUrn5m5w"
      decimals="-3"
      id="Tc_oodxg3M8qUq4nUucpWrjpA_9_12"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">277499000</us-gaap:GrossProfit>
    <us-gaap:Revenues
      contextRef="Duration_1_1_2024_To_9_30_2024_srt_ConsolidationItemsAxis_us-gaap_OperatingSegmentsMember_us-gaap_StatementBusinessSegmentsAxis_fix_MechanicalSegmentMember_AXOzBdIvRUiN5O9WEm4Teg"
      decimals="-3"
      id="Tc_CGnf07IKh0qr-2pDng7kIQ_13_3"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">4075305000</us-gaap:Revenues>
    <us-gaap:Revenues
      contextRef="Duration_1_1_2024_To_9_30_2024_srt_ConsolidationItemsAxis_us-gaap_OperatingSegmentsMember_us-gaap_StatementBusinessSegmentsAxis_fix_ElectricalSegmentMember_PRfP2cG01k6HY7-Zoc8duA"
      decimals="-3"
      id="Tc_LdXLNSi0gEas2qzDjqHlQA_13_6"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">1084367000</us-gaap:Revenues>
    <us-gaap:Revenues
      contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ"
      decimals="-3"
      id="Tc_z1Z7iK3WukGv_AO2rBdH9A_13_12"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">5159672000</us-gaap:Revenues>
    <us-gaap:GrossProfit
      contextRef="Duration_1_1_2024_To_9_30_2024_srt_ConsolidationItemsAxis_us-gaap_OperatingSegmentsMember_us-gaap_StatementBusinessSegmentsAxis_fix_MechanicalSegmentMember_AXOzBdIvRUiN5O9WEm4Teg"
      decimals="-3"
      id="Tc_Q13aAJfNokSwG2JadFiiBw_14_3"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">789056000</us-gaap:GrossProfit>
    <us-gaap:GrossProfit
      contextRef="Duration_1_1_2024_To_9_30_2024_srt_ConsolidationItemsAxis_us-gaap_OperatingSegmentsMember_us-gaap_StatementBusinessSegmentsAxis_fix_ElectricalSegmentMember_PRfP2cG01k6HY7-Zoc8duA"
      decimals="-3"
      id="Tc_vsp3DRHtrECVVPJBKaz7KA_14_6"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">253617000</us-gaap:GrossProfit>
    <us-gaap:GrossProfit
      contextRef="Duration_1_1_2024_To_9_30_2024_tfSEWWeDc0SiasED_myrtQ"
      decimals="-3"
      id="Tc_tImKRcsi9UqgORHCiG7JiA_14_12"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">1042673000</us-gaap:GrossProfit>
    <us-gaap:Revenues
      contextRef="Duration_1_1_2023_To_9_30_2023_srt_ConsolidationItemsAxis_us-gaap_OperatingSegmentsMember_us-gaap_StatementBusinessSegmentsAxis_fix_MechanicalSegmentMember_SM13mUb_6EqmmKe2QkBVTA"
      decimals="-3"
      id="Tc_H8wTljSjzEWfhbaXLnGbtQ_18_3"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">2925848000</us-gaap:Revenues>
    <us-gaap:Revenues
      contextRef="Duration_1_1_2023_To_9_30_2023_srt_ConsolidationItemsAxis_us-gaap_OperatingSegmentsMember_us-gaap_StatementBusinessSegmentsAxis_fix_ElectricalSegmentMember__3WjLNReXU2bdGGOMVYI3Q"
      decimals="-3"
      id="Tc_Z5aXcwuuzU2JCWFxKCTSSw_18_6"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">923346000</us-gaap:Revenues>
    <us-gaap:Revenues
      contextRef="Duration_1_1_2023_To_9_30_2023_0vpBpKZIxEC_KY5z5G8rKA"
      decimals="-3"
      id="Tc_qjk4rVndOkudYAPX4VXorA_18_12"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">3849194000</us-gaap:Revenues>
    <us-gaap:GrossProfit
      contextRef="Duration_1_1_2023_To_9_30_2023_srt_ConsolidationItemsAxis_us-gaap_OperatingSegmentsMember_us-gaap_StatementBusinessSegmentsAxis_fix_MechanicalSegmentMember_SM13mUb_6EqmmKe2QkBVTA"
      decimals="-3"
      id="Tc_6EfZAN1Iw0W0p1z1eQQMIg_19_3"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">547695000</us-gaap:GrossProfit>
    <us-gaap:GrossProfit
      contextRef="Duration_1_1_2023_To_9_30_2023_srt_ConsolidationItemsAxis_us-gaap_OperatingSegmentsMember_us-gaap_StatementBusinessSegmentsAxis_fix_ElectricalSegmentMember__3WjLNReXU2bdGGOMVYI3Q"
      decimals="-3"
      id="Tc_E_fmkhwqQkKVMgeE0dwbEQ_19_6"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">163129000</us-gaap:GrossProfit>
    <us-gaap:GrossProfit
      contextRef="Duration_1_1_2023_To_9_30_2023_0vpBpKZIxEC_KY5z5G8rKA"
      decimals="-3"
      id="Tc_IZgaTl5pxEWMMn_iixpjOA_19_12"
      unitRef="Unit_Standard_USD_m6DpoVA0b0mSIIfBVJ-RxQ">710824000</us-gaap:GrossProfit>
    <ecd:NonRule10b51ArrAdoptedFlag
      contextRef="Duration_7_1_2024_To_9_30_2024_XquWrHsdeEmkK9F8qXf6qA"
      id="Narr_7JYl1hnZPEqzxd41in8jvw">false</ecd:NonRule10b51ArrAdoptedFlag>
    <ecd:Rule10b51ArrAdoptedFlag
      contextRef="Duration_7_1_2024_To_9_30_2024_XquWrHsdeEmkK9F8qXf6qA"
      id="Narr_KAOAUNWYU06QsQKcoU5TOw">false</ecd:Rule10b51ArrAdoptedFlag>
    <ecd:NonRule10b51ArrTrmntdFlag
      contextRef="Duration_7_1_2024_To_9_30_2024_XquWrHsdeEmkK9F8qXf6qA"
      id="Narr_rBeJfYT9QkO8hHtNiT8vAw">false</ecd:NonRule10b51ArrTrmntdFlag>
    <ecd:Rule10b51ArrTrmntdFlag
      contextRef="Duration_7_1_2024_To_9_30_2024_XquWrHsdeEmkK9F8qXf6qA"
      id="Narr_DytBEf-cQE6q13XHErLxew">false</ecd:Rule10b51ArrTrmntdFlag>
</xbrl>
</XML>
</TEXT>
</DOCUMENT>
</SEC-DOCUMENT>
